CI #43
This file contains 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
# This file is automatically generated from "src/bin/gen_github_yaml.rs". | |
# Do not modify it directly. | |
name: CI | |
on: | |
pull_request: {} | |
push: | |
branches: | |
- main | |
schedule: | |
- cron: 0 16 * * * | |
workflow_dispatch: {} | |
jobs: | |
build-macos-13-stable: | |
name: Build & check (macos-13, Rust stable) | |
runs-on: macos-13 | |
steps: | |
- name: Check out sources | |
uses: actions/checkout@v4 | |
- name: Install Rust stable toolchain | |
run: | | |
rustup toolchain install stable --profile minimal --component clippy,rustfmt | |
rustup default stable | |
- name: Use Rust/Cargo cache | |
uses: actions/cache@v4 | |
with: | |
key: cargo-macos-13-stable-${{ hashFiles('Cargo.lock') }} | |
path: | | |
~/.cargo/registry | |
~/.cargo/git/ | |
target/ | |
restore-keys: cargo-macos-13-stable- | |
- name: Run cargo build | |
run: cargo build | |
- name: Run cargo test | |
run: cargo test | |
env: | |
RUST_BACKTRACE: '1' | |
- name: Save build artifact | |
run: | | |
tar -C .. --create --file debug-dist.tar.zst \ | |
cubicle/packages/ \ | |
cubicle/src/bin/system_test/github/ \ | |
cubicle/target/debug/cub \ | |
cubicle/target/debug/system_test | |
- name: Upload build artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
if-no-files-found: error | |
name: debug-dist-macos-13-stable | |
path: debug-dist.tar.zst | |
build-ubuntu-22-04-nightly: | |
name: Build & check (ubuntu-22.04, Rust nightly) | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out sources | |
uses: actions/checkout@v4 | |
- name: Install Rust nightly toolchain | |
run: | | |
rustup toolchain install nightly --profile minimal --component clippy,rustfmt | |
rustup default nightly | |
- name: Use Rust/Cargo cache | |
uses: actions/cache@v4 | |
with: | |
key: cargo-ubuntu-22.04-nightly-${{ hashFiles('Cargo.lock') }} | |
path: | | |
~/.cargo/registry | |
~/.cargo/git/ | |
target/ | |
restore-keys: cargo-ubuntu-22.04-nightly- | |
- name: Run cargo build | |
run: cargo build | |
- name: Run cargo test | |
run: cargo test | |
env: | |
RUST_BACKTRACE: '1' | |
- name: Save build artifact | |
run: | | |
tar -C .. --create --file debug-dist.tar.zst \ | |
cubicle/packages/ \ | |
cubicle/src/bin/system_test/github/ \ | |
cubicle/target/debug/cub \ | |
cubicle/target/debug/system_test | |
- name: Upload build artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
if-no-files-found: error | |
name: debug-dist-ubuntu-22.04-nightly | |
path: debug-dist.tar.zst | |
build-ubuntu-22-04-stable: | |
name: Build & check (ubuntu-22.04, Rust stable) | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Check out sources | |
uses: actions/checkout@v4 | |
- name: Install Rust stable toolchain | |
run: | | |
rustup toolchain install stable --profile minimal --component clippy,rustfmt | |
rustup default stable | |
- name: Use Rust/Cargo cache | |
uses: actions/cache@v4 | |
with: | |
key: cargo-ubuntu-22.04-stable-${{ hashFiles('Cargo.lock') }} | |
path: | | |
~/.cargo/registry | |
~/.cargo/git/ | |
target/ | |
restore-keys: cargo-ubuntu-22.04-stable- | |
- name: Run cargo build | |
run: cargo build | |
- name: Run cargo test | |
run: cargo test | |
env: | |
RUST_BACKTRACE: '1' | |
- name: Run cargo fmt | |
run: cargo fmt --all -- --check | |
- name: Run clippy | |
run: cargo clippy -- -D warnings | |
- name: Check GitHub YAML | |
run: | | |
cargo run --bin gen_github_yaml > .github/workflows/main.gen.yaml | |
diff .github/workflows/main.yaml .github/workflows/main.gen.yaml | |
- name: Run shellcheck | |
run: | | |
curl -LO https://github.com/koalaman/shellcheck/releases/download/v0.9.0/shellcheck-v0.9.0.linux.x86_64.tar.xz | |
tar -xvf shellcheck-v0.9.0.linux.x86_64.tar.xz | |
PATH="$PWD/shellcheck-v0.9.0:$PATH" ./shellcheck.sh | |
- name: Install cargo audit | |
run: cargo install cargo-audit | |
- name: Run cargo audit | |
run: cargo audit | |
- name: Save build artifact | |
run: | | |
tar -C .. --create --file debug-dist.tar.zst \ | |
cubicle/packages/ \ | |
cubicle/src/bin/system_test/github/ \ | |
cubicle/target/debug/cub \ | |
cubicle/target/debug/system_test | |
- name: Upload build artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
if-no-files-found: error | |
name: debug-dist-ubuntu-22.04-stable | |
path: debug-dist.tar.zst | |
system_test-macos-13-docker: | |
name: System tests (macos-13, docker) | |
needs: | |
- build-macos-13-stable | |
runs-on: macos-13 | |
steps: | |
- name: Install Docker | |
run: brew install docker | |
- name: Install Colima | |
run: | | |
brew install --overwrite python@3.11 | |
brew install --overwrite python@3.12 | |
brew install colima | |
- name: Start Colima | |
run: colima start | |
- name: Docker hello world | |
run: docker run --rm debian:12 echo 'Hello world' | |
- name: Download build artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: debug-dist-macos-13-stable | |
- name: Unpack build artifact | |
run: tar --directory .. --extract --verbose --file debug-dist.tar.zst | |
- name: Run cub list | |
run: ./target/debug/cub --config 'src/bin/system_test/github/docker.toml' list | |
env: | |
RUST_BACKTRACE: '1' | |
- name: Run system test | |
run: ./target/debug/system_test --config 'src/bin/system_test/github/docker.toml' | |
env: | |
INSTA_WORKSPACE_ROOT: . | |
RUST_BACKTRACE: '1' | |
system_test-ubuntu-22-04-bubblewrap: | |
name: System tests (ubuntu-22.04, bubblewrap) | |
needs: | |
- build-ubuntu-22-04-stable | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Install Bubblewrap and minor dependencies | |
run: sudo apt-get install -y bubblewrap pv | |
- name: Download build artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: debug-dist-ubuntu-22.04-stable | |
- name: Unpack build artifact | |
run: tar --directory .. --extract --verbose --file debug-dist.tar.zst | |
- name: Run cub list | |
run: ./target/debug/cub --config 'src/bin/system_test/github/bubblewrap.toml' list | |
env: | |
RUST_BACKTRACE: '1' | |
- name: Run system test | |
run: ./target/debug/system_test --config 'src/bin/system_test/github/bubblewrap.toml' | |
env: | |
INSTA_WORKSPACE_ROOT: . | |
RUST_BACKTRACE: '1' | |
system_test-ubuntu-22-04-docker: | |
name: System tests (ubuntu-22.04, docker) | |
needs: | |
- build-ubuntu-22-04-stable | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Docker hello world | |
run: docker run --rm debian:12 echo 'Hello world' | |
- name: Download build artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: debug-dist-ubuntu-22.04-stable | |
- name: Unpack build artifact | |
run: tar --directory .. --extract --verbose --file debug-dist.tar.zst | |
- name: Run cub list | |
run: ./target/debug/cub --config 'src/bin/system_test/github/docker.toml' list | |
env: | |
RUST_BACKTRACE: '1' | |
- name: Run system test | |
run: ./target/debug/system_test --config 'src/bin/system_test/github/docker.toml' | |
env: | |
INSTA_WORKSPACE_ROOT: . | |
RUST_BACKTRACE: '1' | |
system_test-ubuntu-22-04-docker-bind: | |
name: System tests (ubuntu-22.04, docker-bind) | |
needs: | |
- build-ubuntu-22-04-stable | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Docker hello world | |
run: docker run --rm debian:12 echo 'Hello world' | |
- name: Download build artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: debug-dist-ubuntu-22.04-stable | |
- name: Unpack build artifact | |
run: tar --directory .. --extract --verbose --file debug-dist.tar.zst | |
- name: Run cub list | |
run: ./target/debug/cub --config 'src/bin/system_test/github/docker-bind.toml' list | |
env: | |
RUST_BACKTRACE: '1' | |
- name: Run system test | |
run: ./target/debug/system_test --config 'src/bin/system_test/github/docker-bind.toml' | |
env: | |
INSTA_WORKSPACE_ROOT: . | |
RUST_BACKTRACE: '1' | |
system_test-ubuntu-22-04-user: | |
name: System tests (ubuntu-22.04, user) | |
needs: | |
- build-ubuntu-22-04-stable | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Install minor dependencies | |
run: sudo apt-get install -y pv | |
- name: Download build artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: debug-dist-ubuntu-22.04-stable | |
- name: Unpack build artifact | |
run: tar --directory .. --extract --verbose --file debug-dist.tar.zst | |
- name: Run cub list | |
run: ./target/debug/cub --config 'src/bin/system_test/github/user.toml' list | |
env: | |
RUST_BACKTRACE: '1' | |
- name: Run system test | |
run: ./target/debug/system_test --config 'src/bin/system_test/github/user.toml' | |
env: | |
INSTA_WORKSPACE_ROOT: . | |
RUST_BACKTRACE: '1' |