name: Rust Build on: push: branches: - main - devel pull_request: branches: - main - devel jobs: setup_ssh: runs-on: ubuntu-24.04 services: ssh-agent: image: alpine:latest entrypoint: ["/bin/sh", "-c", "apk update && apk add openssh-client && eval \"$(ssh-agent -s)\" && ssh-add - <<< \"${{ secrets.MYREPO_TOKEN }}\" && ssh-keyscan git.kundeng.us ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLl/OZiKVDxwnyvMxa+rjKvDpKqTxH1GWuGuDPLmENGQMbTVulajZWr9x8Q1cotoJiHZkt7DA5vczcjB/4lwgWA= >> ~/.ssh/known_hosts && tail -f /dev/null"] options: --name ssh-agent steps: - name: Checkout repository uses: actions/checkout@v3 check: name: Check needs: setup_ssh runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1 with: toolchain: 1.85.0 - run: | export SSH_AUTH_SOCK=/ssh-agent/ssh-agent.sock cargo check test: name: Test Suite needs: setup_ssh runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1 with: toolchain: 1.85.0 - run: | export SSH_AUTH_SOCK=/ssh-agent/ssh-agent.sock cargo test fmt: name: Rustfmt needs: setup_ssh runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1 with: toolchain: 1.85.0 - run: rustup component add rustfmt - run: | export SSH_AUTH_SOCK=/ssh-agent/ssh-agent.sock cargo fmt --all -- --check clippy: name: Clippy needs: setup_ssh runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1 with: toolchain: 1.85.0 - run: rustup component add clippy - run: | export SSH_AUTH_SOCK=/ssh-agent/ssh-agent.sock cargo clippy -- -D warnings build: name: build needs: setup_ssh runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1 with: toolchain: 1.85.0 - run: | export SSH_AUTH_SOCK=/ssh-agent/ssh-agent.sock cargo build --release