fix(cri): auto-create missing HostPath dirs + zombie-proof sandbox liveness (#445 #461) #877
Workflow file for this run
This file contains hidden or 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
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| jobs: | |
| lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: "1.94.0" | |
| components: rustfmt, clippy | |
| - run: cargo fmt --check | |
| - run: cargo clippy -- -D warnings | |
| - run: cargo clippy --features embedded-wasm -- -D warnings | |
| unit-tests: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: "1.94.0" | |
| - uses: Swatinem/rust-cache@v2 | |
| - run: cargo test --lib | |
| - run: cargo test --lib --features embedded-wasm | |
| integration-tests: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: "1.94.0" | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Install system dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y nftables iproute2 passt | |
| - name: Install protoc (>=23 for debug_redact support) | |
| run: | | |
| PROTOC_VERSION=25.3 | |
| ARCH=$(dpkg --print-architecture) | |
| case "$ARCH" in amd64) PA=x86_64 ;; arm64) PA=aarch_64 ;; esac | |
| curl -sL "https://github.com/protocolbuffers/protobuf/releases/download/v${PROTOC_VERSION}/protoc-${PROTOC_VERSION}-linux-${PA}.zip" -o /tmp/protoc.zip | |
| sudo unzip -q /tmp/protoc.zip bin/protoc -d /usr/local | |
| sudo chmod +x /usr/local/bin/protoc | |
| - name: Build | |
| run: cargo build -p pelagos -p pelagos-dockerd -p pelagos-cri | |
| - name: Build rootfs | |
| run: sudo ./scripts/build-rootfs-tarball.sh | |
| - name: Set up pelagos system directories | |
| run: sudo ./scripts/setup.sh --no-user | |
| - name: Configure registry mirror (ECR Public — avoid Docker Hub rate limits) | |
| run: | | |
| sudo install -d /etc/pelagos | |
| sudo install -m 0644 ci/registries.toml /etc/pelagos/registries.toml | |
| - name: Reset test environment | |
| run: sudo ./scripts/reset-test-env.sh | |
| - name: Run integration tests | |
| run: sudo -E env "PATH=$PATH" cargo test --test integration_tests -- --test-threads=1 | |
| e2e-tests: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: "1.94.0" | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Install system dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y nftables iproute2 passt | |
| - name: Build rootfs | |
| run: sudo ./scripts/build-rootfs-tarball.sh | |
| - name: Set up pelagos system directories | |
| run: sudo ./scripts/setup.sh --no-user | |
| - name: Configure registry mirror (ECR Public — avoid Docker Hub rate limits) | |
| run: | | |
| sudo install -d /etc/pelagos | |
| sudo install -m 0644 ci/registries.toml /etc/pelagos/registries.toml | |
| - name: Reset test environment | |
| run: sudo ./scripts/reset-test-env.sh | |
| - name: Run e2e tests | |
| run: sudo -E env "PATH=$PATH" bash scripts/test-e2e.sh | |
| wasm-e2e-tests: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: "1.94.0" | |
| targets: wasm32-wasip1 | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Install wasmtime | |
| run: | | |
| curl -fsSL https://wasmtime.dev/install.sh | bash | |
| echo "$HOME/.wasmtime/bin" >> "$GITHUB_PATH" | |
| - name: Build pelagos | |
| run: cargo build | |
| - name: Set up pelagos system directories | |
| run: sudo ./scripts/setup.sh --no-user | |
| - name: Run Wasm e2e tests | |
| run: sudo -E env "PATH=$PATH" bash scripts/test-wasm-e2e.sh | |
| wasm-embedded-e2e-tests: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: "1.94.0" | |
| targets: wasm32-wasip1,wasm32-wasip2 | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Install wasmtime | |
| run: | | |
| curl -fsSL https://wasmtime.dev/install.sh | bash | |
| echo "$HOME/.wasmtime/bin" >> "$GITHUB_PATH" | |
| - name: Set up pelagos system directories | |
| run: sudo ./scripts/setup.sh --no-user | |
| - name: Run embedded Wasm e2e tests | |
| run: sudo -E env "PATH=$PATH" bash scripts/test-wasm-embedded-e2e.sh |