Skip to content

Continuous Integration

pepedinho edited this page May 12, 2026 · 1 revision

Continuous Integration (CI/CD)

Walkman is specifically designed to run in automated environments like GitHub Actions, GitLab CI, or Jenkins.

Because Walkman is decoupled from your OS repository, it must be installed on the CI runner dynamically. Cargo makes this trivial.

GitHub Actions Example

Below is a standard workflow snippet for a GitHub Actions pipeline. It assumes your OS has been built and the required artifacts (e.g., the .iso file) are present in the runner's workspace.

name: OS Integration Tests

on: [push, pull_request]

jobs:
  integration-tests:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout OS Repository
        uses: actions/checkout@v4

      - name: Install System Dependencies
        run: sudo apt-get update && sudo apt-get install -y qemu-system-x86

      - name: Build Test OS
        run: make iso-debug # Ensure serial output is enabled

      - name: Install Walkman
        run: |
          # Download and compile Walkman directly from its repository
          cargo install --git [https://github.com/Auri-OS/walkman.git](https://github.com/Auri-OS/walkman.git) --tag v0.1.0

      - name: Run Test Suite
        run: |
          # Run all tests in the directory with the No-UI flag
          walkman tests/ --nui

Failing the Pipeline

Walkman returns a clean standard exit code:

  • 0 if all tests pass.
  • 1 if any test fails, or if a configuration file is invalid.

This ensures that your CI pipeline will automatically halt and be marked as "Failed" if Walkman detects a regression in your OS.

Clone this wiki locally