Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

CI Pipeline

ashell uses GitHub Actions for continuous integration. All workflow files are in .github/workflows/.

Main CI Workflow (ci.yml)

Trigger: Push to main, pull requests targeting main.

Runner: ubuntu-24.04

Steps:

  1. Install dependencies: All system libraries needed for compilation

    sudo apt-get install -y pkg-config llvm-dev libclang-dev clang \
      libxkbcommon-dev libwayland-dev dbus libpipewire-0.3-dev \
      libpulse-dev libudev-dev
    
  2. Format check: cargo fmt --all -- --check

    • Fails if any code is not properly formatted.
  3. Clippy lint: cargo clippy --all-features -- -D warnings

    • Zero warnings policy. All clippy warnings are treated as errors.
  4. Build: cargo build

    • Ensures the project compiles successfully.

Nix CI (nix-ci.yml)

Verifies that the Nix flake builds correctly.

Website and Developer Guide CI

  • gh-pages-test.yml: Tests both the Docusaurus website and the mdbook developer guide build on PRs.
  • gh-pages-deploy.yml: Builds the website and developer guide, then deploys them together to GitHub Pages on push to main. The developer guide is built with mdbook build and copied into the website output at /dev-guide/.

Dependency Management (dependabot.yml)

Dependabot is configured to:

  • Check for Rust dependency updates (Cargo)
  • Check for GitHub Actions updates
  • Create PRs for available updates

All Workflows

WorkflowTriggerPurpose
ci.ymlPush/PR to mainFormat, lint, build
nix-ci.ymlPush/PRNix flake validation
release.ymlManual dispatchBuild release artifacts
pre-release.ymlPre-release tagPre-release builds
generate-installers.ymlCalled by releaseBuild .deb/.rpm packages
gh-pages-deploy.ymlPush to mainDeploy website
gh-pages-test.ymlPRTest website build
update-arch-package.ymlReleaseUpdate AUR package
release-drafter.ymlPush/PRAuto-draft release notes
remove-manifest-assets.ymlPost-releaseClean up dist manifests