Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 0 additions & 37 deletions .github/workflows/build.yml

This file was deleted.

164 changes: 164 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
name: CI

on:
push:
branches: [main]
paths-ignore:
- "**/*.md"
- "docs/**"
- "LICENSE*"
- ".gitignore"
pull_request:
branches: [main]
paths-ignore:
- "**/*.md"
- "docs/**"
- "LICENSE*"
- ".gitignore"

env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: 1

jobs:
fmt:
name: Format
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- name: Check formatting
run: cargo fmt -- --check

clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- uses: Swatinem/rust-cache@v2
- name: Run clippy
run: cargo clippy --workspace --all-targets -- -D warnings

audit:
name: Security Audit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Install cargo-audit
run: cargo install cargo-audit
- name: Run cargo-audit
run: cargo audit

cargo-test:
name: Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Run tests
run: cargo test --verbose

coverage:
name: Coverage
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Install tarpaulin
uses: taiki-e/install-action@cargo-tarpaulin
- name: Generate coverage
run: cargo tarpaulin
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
files: ./cobertura.xml
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
verbose: true

build-musl:
name: Build and Cache
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build all binaries (musl static)
run: |
docker run --rm \
-v ${{ github.workspace }}:/work \
-w /work \
messense/rust-musl-cross:x86_64-musl \
cargo build --release --features agent \
--bin containerd-shim-reaper-v2 \
--bin reaper-runtime \
--bin reaper-agent \
--target x86_64-unknown-linux-musl
- uses: actions/upload-artifact@v4
with:
name: musl-binaries
path: |
target/x86_64-unknown-linux-musl/release/containerd-shim-reaper-v2
target/x86_64-unknown-linux-musl/release/reaper-runtime
target/x86_64-unknown-linux-musl/release/reaper-agent
retention-days: 1

kind-integration:
name: kind-integration
needs: build-musl
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: actions/download-artifact@v4
with:
name: musl-binaries
path: target/x86_64-unknown-linux-musl/release/

- name: Make binaries executable
run: chmod +x target/x86_64-unknown-linux-musl/release/*

- name: Install kubectl
uses: azure/setup-kubectl@v3
with:
version: "v1.30.0"

- name: Install kind
run: |
[ -x "$(command -v kind)" ] && exit 0
curl -Lo ./kind "https://kind.sigs.k8s.io/dl/v0.23.0/kind-linux-amd64"
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind

- name: Install Ansible
run: pip install ansible

- name: Run integration tests
uses: nick-fields/retry@v3
with:
timeout_minutes: 20
max_attempts: 2
command: ./scripts/run-integration-tests.sh --skip-cargo

- name: Upload integration test logs
if: always()
uses: actions/upload-artifact@v4
continue-on-error: true
with:
name: integration-test-logs
path: /tmp/reaper-integration-logs/
retention-days: 7

playground-release:
name: Playground Release Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Test --release resolution modes
run: ./scripts/test-playground-release.sh
94 changes: 0 additions & 94 deletions .github/workflows/integration.yml

This file was deleted.

Loading