name: CI
on:
push:
branches:
- develop
- master
paths:
- "src/**"
- "Cargo.toml"
- "Cargo.lock"
- "README.md"
- ".github/workflows/ci.yml"
- ".github/workflows/demo-test.yml"
- ".github/workflows/release.yml"
pull_request:
paths:
- "src/**"
- "Cargo.toml"
- "Cargo.lock"
- "README.md"
- ".github/workflows/ci.yml"
- ".github/workflows/demo-test.yml"
- ".github/workflows/release.yml"
workflow_dispatch:
jobs:
rust-ci:
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends libssl-dev pkg-config
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- name: cargo fmt --check
run: cargo fmt --check
- name: cargo clippy
run: cargo clippy --all-targets --all-features -- -D warnings
- name: cargo test
run: cargo test
rootless-smoke:
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends libssl-dev pkg-config
- name: Run rootless smoke tests in the dev container
run: docker compose -f docker/dev/compose.yml run --rm childflow-dev cargo test --test rootless_proxy -- --nocapture