Build, Release, and Script Guide
April 8, 2026 ยท View on GitHub
Local development
Frontend
pnpm -C apps install
pnpm -C apps run dev
pnpm -C apps run test
pnpm -C apps run test:ui
pnpm -C apps run build
Rust
cargo test --workspace
cargo build -p codexmanager-service --release
cargo build -p codexmanager-web --release
cargo build -p codexmanager-start --release
# Bundle frontend static assets into codexmanager-web (single-binary mode)
pnpm -C apps run build
cargo build -p codexmanager-web --release --features embedded-ui
Tauri packaging
Windows
pwsh -NoLogo -NoProfile -File scripts/rebuild.ps1 -Bundle nsis -CleanDist -Portable
Linux / macOS
./scripts/rebuild-linux.sh --bundles "appimage,deb" --clean-dist
./scripts/rebuild-macos.sh --bundles "dmg" --clean-dist
GitHub Actions
The unified release workflow is .github/workflows/release-all.yml. It is triggered through workflow_dispatch and does not run automatically.
release-all.yml
- Purpose: publish Desktop + Service artifacts for all supported platforms in one run
- Build targets:
Windows,macOS (dmg),Linux - The frontend
distis built once, then reused by the packaging jobs for each platform - Inputs:
tag: requiredref: defaults tomainprerelease: defaults toauto, options:auto | true | false
- Behavior: packages and publishes artifacts only; it no longer includes server-side test gates
Release artifacts
Desktop
- Windows:
CodexManager_<version>_x64-setup.exe,CodexManager-portable.exe - macOS:
CodexManager_<version>_aarch64.dmg,CodexManager_<version>_x64.dmg - Linux:
CodexManager_<version>_amd64.AppImage,CodexManager_<version>_amd64.deb,CodexManager-linux-portable.zip
Service
- Windows:
CodexManager-service-windows-x86_64.zip - macOS:
CodexManager-service-macos-arm64.zip,CodexManager-service-macos-x64.zip - Linux:
CodexManager-service-linux-x86_64.zip - Linux (web test bundle):
CodexManager-web-linux-x86_64.zip
Release type
- When
prerelease=auto, tags containing-are published as pre-releases. - When
prerelease=auto, tags without-are published as stable releases. - When
prerelease=true|false, the tag-based auto-detection is overridden. - Rerunning the same
tagupdates the Release metadata using the current input values. - GitHub still attaches
Source code (zip/tar.gz)automatically.
scripts/rebuild.ps1
By default, this script packages Windows builds locally. In -AllPlatforms mode, it triggers the GitHub release workflow.
Common examples
# Local Windows build
pwsh -NoLogo -NoProfile -File scripts/rebuild.ps1 -Bundle nsis -CleanDist -Portable
# Trigger the release workflow (and download artifacts)
pwsh -NoLogo -NoProfile -File scripts/rebuild.ps1 `
-AllPlatforms `
-GitRef main `
-ReleaseTag v0.1.9 `
-GithubToken <token>
# Force a pre-release
pwsh -NoLogo -NoProfile -File scripts/rebuild.ps1 `
-AllPlatforms -GitRef main -ReleaseTag v0.1.9-beta.1 -GithubToken <token> -Prerelease true
Main parameters
-Bundle nsis|msi: defaults tonsis-NoBundle: compile only, do not create an installer-CleanDist: cleanapps/outbefore building-Portable: also output a portable build-PortableDir <path>: portable build output directory, defaultportable/-AllPlatforms: trigger the release workflow-GithubToken <token>: GitHub token; if omitted, the script triesGITHUB_TOKEN/GH_TOKEN-WorkflowFile <name>: defaults torelease-all.yml-GitRef <ref>: workflow build ref; defaults to the current branch or current tag-ReleaseTag <tag>: release tag; recommended explicitly when using-AllPlatforms-Prerelease <auto|true|false>: defaults toauto-DownloadArtifacts <bool>: defaults totrue-ArtifactsDir <path>: artifact download directory, defaultartifacts/-PollIntervalSec <n>: polling interval, default10-TimeoutMin <n>: timeout in minutes, default60-DryRun: print the execution plan only
scripts/bump-version.ps1
pwsh -NoLogo -NoProfile -File scripts/bump-version.ps1 -Version 0.1.9
This updates:
- the workspace version in the root
Cargo.toml apps/src-tauri/Cargo.tomlapps/src-tauri/tauri.conf.json
Protocol regression probe
pwsh -NoLogo -NoProfile -File scripts/tests/gateway_regression_suite.ps1 `
-Base http://localhost:48760 -ApiKey <key> -Model gpt-5.3-codex
It runs the following in sequence:
chat_tools_hit_probe.ps1chat_tools_hit_probe.ps1 -Streamcodex_stream_probe.ps1
Related documents
- Release and artifacts: Release and Artifacts
- Script responsibility matrix: Script and Release Responsibility Matrix