ZORL
zorath-env v0.3.1: Shell Completions, GitHub Action, and Cross-Platform CI/CD
5 min read

zorath-env v0.3.1: Shell Completions, GitHub Action, and Cross-Platform CI/CD

zorath-env v0.3.1 adds shell completions for bash/zsh/fish/PowerShell, an official GitHub Action, zenv example command, and Windows CI/CD support. Full changelog and upgrade guide.

zorath-envzenv releaseshell completionsgithub actionenv validation

zorath-env v0.3.1 is now available. This release adds shell completions for all major shells, an official GitHub Action for CI/CD pipelines, and the new zenv example command to generate .env.example files from your schema.

Release Highlights

  • Shell completions for bash, zsh, fish, and PowerShell
  • Official GitHub Action with prebuilt binaries for fast CI/CD
  • zenv example command to generate .env.example from schema
  • Windows support in GitHub Action
  • Version check with --check-update flag
  • 168 unit tests covering all core functionality

Shell Completions

Tab completion makes command-line tools faster to use. zorath-env now generates completion scripts for all major shells.

Bash

# System-wide
zenv completions bash > /etc/bash_completion.d/zenv

# User-only
zenv completions bash > ~/.local/share/bash-completion/completions/zenv

# Or evaluate directly in current session
eval "$(zenv completions bash)"

Zsh

# Add to fpath
zenv completions zsh > ~/.zfunc/_zenv

# Then add to .zshrc:
# fpath=(~/.zfunc $fpath)
# autoload -Uz compinit && compinit

Fish

zenv completions fish > ~/.config/fish/completions/zenv.fish

PowerShell

# Save to profile directory
zenv completions powershell > $HOME\Documents\PowerShell\zenv.ps1

# Add to $PROFILE:
# . $HOME\Documents\PowerShell\zenv.ps1

Once installed, pressing Tab completes commands, options, and arguments:

$ zenv ch<TAB>
$ zenv check

$ zenv check --<TAB>
--env     --schema     --allow-missing-env     --help

See the completions documentation for shell-specific installation details.

The zenv example Command

Generate .env.example files directly from your schema. This is the reverse of zenv init.

Basic Usage

# Output to stdout
zenv example

# Write to file
zenv example --output .env.example

Output Format

Given this schema:

{
  "DATABASE_URL": {
    "type": "url",
    "required": true,
    "description": "PostgreSQL connection string"
  },
  "PORT": {
    "type": "int",
    "default": 3000,
    "description": "HTTP server port"
  },
  "NODE_ENV": {
    "type": "enum",
    "values": ["development", "staging", "production"],
    "required": true
  }
}

Running zenv example produces:

# DATABASE_URL (url, required)
# PostgreSQL connection string
DATABASE_URL=

# PORT (int, optional)
# HTTP server port
# Default: 3000
PORT=

# NODE_ENV (enum: development, staging, production, required)
NODE_ENV=

Include Default Values

Add --include-defaults to pre-fill default values:

zenv example --include-defaults --output .env.example

Output:

# DATABASE_URL (url, required)
DATABASE_URL=

# PORT (int, optional)
PORT=3000

# NODE_ENV (enum: development, staging, production, required)
NODE_ENV=development

This keeps your .env.example files synchronized with your schema automatically. No more manual updates when configuration changes.

Official GitHub Action

Integrate environment validation into your CI/CD pipeline with the official GitHub Action:

- name: Validate environment configuration
  uses: zorl-engine/zorath-env/.github/actions/zenv-action@main
  with:
    schema: env.schema.json
    env-file: .env.example

Action Inputs

| Input | Default | Description | |-------|---------|-------------| | schema | env.schema.json | Path to schema file | | env-file | .env | Path to .env file | | allow-missing-env | true | Allow missing .env file | | version | latest | zenv version to use |

Action Outputs

| Output | Description | |--------|-------------| | valid | true if validation passed | | errors | JSON array of error messages |

Cross-Platform Support

The action supports all GitHub-hosted runners:

| Platform | Status | |----------|--------| | Linux (ubuntu-latest) | Supported | | macOS Intel (macos-13) | Supported | | macOS Apple Silicon (macos-latest) | Supported | | Windows (windows-latest) | Supported |

Prebuilt binaries are downloaded at runtime for fast execution. No Rust compilation required.

Example Workflow

name: Validate Configuration

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  validate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Validate .env configuration
        uses: zorl-engine/zorath-env/.github/actions/zenv-action@main
        with:
          schema: env.schema.json
          env-file: .env.example
          allow-missing-env: true

See the CI/CD integration guide for advanced configurations.

Version Check

Check if you are running the latest version:

$ zenv version
zenv v0.3.1

$ zenv version --check-update
zenv v0.3.1
You are on the latest version.

When an update is available:

$ zenv version --check-update
zenv v0.3.0
Latest: v0.3.1 (update available)
Run: cargo install zorath-env --force

The version check queries crates.io for the latest published version.

Test Coverage

v0.3.1 includes 168 unit tests covering all core functionality:

| Module | Tests | Coverage | |--------|-------|----------| | envfile.rs | 39 | Parser, multiline, escapes, interpolation | | schema.rs | 20 | Type parsing, inheritance, error handling | | commands/check.rs | 48 | Type validations, rules, required fields | | commands/init.rs | 22 | Type inference for all types | | commands/docs.rs | 14 | Markdown and JSON output | | commands/example.rs | 19 | .env.example generation | | commands/completions.rs | 4 | All shell completions | | commands/version.rs | 1 | Version output |

All tests pass with zero warnings on Linux, macOS, and Windows.

Full Changelog

v0.3.1 (2026-01-15)

Added:

  • Windows support in GitHub Action

Changed:

  • Updated crates.io metadata (homepage, documentation links)
  • Improved code organization

Fixed:

  • Code cleanup and dead code removal

v0.3.0 (2026-01-15)

Added:

  • zenv completions command for bash, zsh, fish, PowerShell
  • zenv example command to generate .env.example from schema
  • Official GitHub Action with prebuilt binaries
  • Cross-platform CI/CD support (Linux, macOS, Windows)

Changed:

  • Improved error messages for missing files
  • Better validation output formatting

Installation

First-Time Install

Via cargo:

cargo install zorath-env

Download binary (no Rust required):

Visit GitHub Releases and download the binary for your platform:

  • Linux: zenv-linux
  • macOS Intel: zenv-macos-intel
  • macOS Apple Silicon: zenv-macos-arm
  • Windows: zenv.exe

Upgrade

# Via cargo
cargo install zorath-env --force

# Or download latest binary from releases

Verify the installation:

$ zenv version
zenv v0.3.1

Resources


Ready to upgrade? Run cargo install zorath-env --force or download the latest binary from GitHub Releases.

Share this article

Z

ZORL Team

Building developer tools that make configuration easier. Creators of zorath-env.

Previous
Complete Guide to Type-Safe Environment Variables

Related Articles

Never miss config bugs again

Use zorath-env to validate your environment variables before they cause production issues.