Restructure Analyzer CLI, enhance Windows scripts, and improve CI/CD#16
Open
pvagnozzi wants to merge 14 commits intoexein-io:mainfrom
Open
Restructure Analyzer CLI, enhance Windows scripts, and improve CI/CD#16pvagnozzi wants to merge 14 commits intoexein-io:mainfrom
pvagnozzi wants to merge 14 commits intoexein-io:mainfrom
Conversation
- 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.
…yml workflow syntax)
…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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
MS Windows support