CI/CD Pipelines
Relevant source files
The following files were used as context for generating this wiki page:
The CI/CD pipelines for the OpenHWP project are designed to ensure code quality, automate testing, and streamline the distribution of the application across multiple platforms. The system relies heavily on the Deno toolchain and GitHub-integrated workflows to manage everything from local development checks to automated packaging of production installers.
As the project is currently in its early stages, the CI/CD infrastructure focuses on baseline verification—such as linting and formatting—and outlines a roadmap for cross-platform binary builds and automated versioning based on commit standards.
Development Verification Flow
Before any code is merged into the main branch, it must pass a series of automated checks. These checks are standardized through the Deno CLI to maintain consistency across developer environments and the CI server.
Required Checks
The following tasks are executed to validate contributions:
| Task | Command | Description |
|---|---|---|
| Linting | deno lint | Analyzes code for potential errors and adherence to coding standards. |
| Formatting | deno fmt --check | Ensures code style matches the project's formatting rules. |
| Testing | deno test | Executes the test suite to verify functional correctness. |
Sources: CONTRIBUTING.md:21-25, CONTRIBUTING.md:31-33
Local Environment Setup
The project uses orca.yaml to automate worktree setup. When a new worktree is created, the system automatically caches dependencies to ensure the CI environment matches the local development state.
scripts:
setup: |
set -e
bunx @pleaseai/worktreeinclude "$ORCA_ROOT_PATH" "$ORCA_WORKTREE_PATH"
[ -f deno.json ] && deno install || true
Sources: orca.yaml:17-21
Automation Roadmap and Release Pipeline
The OpenHWP pipeline is designed to handle complex packaging requirements for macOS, Windows, and Linux. This includes generating platform-specific installers and managing versioning automatically.
Automated Versioning
The pipeline uses Conventional Commits to determine version increments and generate changelogs.
- Feat: Triggers a minor version bump.
- Fix: Triggers a patch version bump.
- BREAKING CHANGE: Triggers a major version bump.
Sources: CONTRIBUTING.md:37-40
Build and Packaging Workflow
The build pipeline utilizes deno desktop to produce standalone binaries and installers. In a CI environment, these tasks are responsible for creating signed and notarized artifacts.
The diagram shows the progression from a code push to the generation of platform-specific installers.
Sources: README.en.md:72-76, README.md:104-108
CI/CD Architecture Components
The pipeline architecture is divided between the Deno toolchain and external engine dependencies.
Key Components
- Deno Toolchain: Acts as the primary engine for linting, testing, and building. The project requires Deno ≥ 2.9.0.
- Chromium (CEF) Backend: Specified in
deno.jsonwith"backend": "cef", ensuring that the rendering environment in CI matches the production environment across all operating systems. - Packaging CI: A dedicated stage in the pipeline for signing and notarizing
.dmg(macOS),.msi(Windows), and.deb/.AppImage/.rpm (Linux) files.
Sources: README.en.md:25-27, README.en.md:62-64, README.md:88-90
Pull Request Lifecycle
The CI/CD system enforces a strict lifecycle for external contributions to prevent "drive-by" AI-generated code and ensure all changes align with project goals.
The sequence diagram illustrates the gatekeeping mechanism where CI status must be "green" before a maintainer proceeds with a squash-merge.
Sources: CONTRIBUTING.md:44-55
Security and Vulnerability Handling
Security fixes are prioritized within the CI/CD cycle for the latest major versions. The pipeline does not publicly disclose vulnerabilities; instead, it utilizes GitHub's private vulnerability reporting system. Once a fix is verified through the CI pipeline and released, credits are automatically added to the security advisory.
Sources: SECURITY.md:5-10, SECURITY.md:14-20
The CI/CD pipelines in OpenHWP provide a robust foundation for a cross-platform desktop application by leveraging Deno's native capabilities for verification and the Chromium Embedded Framework for consistent rendering across deployment targets.