Skip to content

Restructure Analyzer CLI, enhance Windows scripts, and improve CI/CD#16

Open
pvagnozzi wants to merge 14 commits intoexein-io:mainfrom
pvagnozzi:main
Open

Restructure Analyzer CLI, enhance Windows scripts, and improve CI/CD#16
pvagnozzi wants to merge 14 commits intoexein-io:mainfrom
pvagnozzi:main

Conversation

@pvagnozzi
Copy link
Copy Markdown

@pvagnozzi pvagnozzi commented Mar 21, 2026

MS Windows support

- Introduced a new `src/lib.rs` file to serve as the shared library surface for the Analyzer CLI binary and test suite.
- Updated `src/main.rs` to utilize the new library structure, removing direct module imports and replacing them with calls to the `analyzer_cli` library.
- Added support for localized output in the CLI, including a new `language` argument for user-defined language preferences.
- Enhanced output formatting functions in `src/output.rs` to support internationalization and improved visual representation.
- Created a comprehensive test suite, including end-to-end tests for CLI commands and integration tests for configuration commands.
- Implemented unit tests for configuration resolution and output formatting to ensure correctness and reliability.
- Introduced `build.ps1` for building the project using Docker or Podman.
- Added `release.ps1` for creating Windows release binaries and packaging them.
- Created `test.ps1` for running tests and linting in a containerized environment.
- Implemented `runtime.ps1` for shared utilities across command scripts.
- Developed `setup-dev.ps1` for bootstrapping a Windows developer workstation with necessary tools and configurations.
- Removed legacy `release.ps1` and `test.ps1` scripts to streamline the codebase.
- Refactored `scan.rs` to improve score formatting and reduce redundancy in rendering functions.
- Updated `output.rs` to change atomic operation ordering for better thread safety.
- Deleted Windows binaries for both amd64 and x86 architectures.
- Removed Windows zip archives for analyzer-cli.
- Added a comprehensive API reference document for the Analyzer CLI, detailing endpoints, authentication, and usage.
- Updated development bootstrap scripts for improved clarity and organization.
- Refactored release scripts for Linux, macOS, and Windows to streamline cross-compilation and packaging processes.
- ci.yml: add stable branch to triggers, add ci aggregate gate job
  for use as required status check in branch protection rules
- release.yml: rewrite to use containerised cross-compile pipeline;
  triggers on push to main/stable/develop and v* tags; publishes
  GitHub Release with all 8 platform archives; Homebrew update on
  main/tag only
- versioning.yml: add stable branch to push and PR triggers
- GitVersion.yml: add stable branch config (release branch, Patch
  increment, source-branches: main)
- release.yml: fix homebrew job needs (add version), fix tag naming to
  use GitVersion semVer directly (no -main suffix; pre-release info is
  already encoded by GitVersion for non-main branches)
- codeql.yml: add stable to push and PR branch triggers
- dependency-review.yml: add stable to PR branch trigger
Use mapfile to collect archive paths (handles spaces), create the GitHub
Release first with '|| true' to tolerate concurrent main/stable runs
targeting the same semver tag, then always upload with --clobber.
…o.toml

GitVersion 6.x config parsing is failing in CI (incompatible config schema).
Replace with a direct shell computation:
- base version read from Cargo.toml
- build number from git rev-list --count HEAD
- semVer = base on main, base-stable.N on stable, base-branch.N elsewhere
This is reliable, dependency-free, and matches what the release scripts need.
The job-level output 'stamp' was referencing steps.compute.outputs.stamp
which is empty. The date stamp is written by the separate 'stamp' step
so it must be referenced as steps.stamp.outputs.stamp.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant