Skip to content

CI

CI #31

Workflow file for this run

# 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'