name: Rust Mutation Testing on: schedule: - cron: "0 4 * * 0" # Weekly on Sunday at 4am UTC workflow_dispatch: env: GIT_SSL_NO_VERIFY: "true" NODE_TLS_REJECT_UNAUTHORIZED: "0" jobs: mutants: runs-on: ubuntu-latest timeout-minutes: 90 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Set up Rust run: | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable echo "$HOME/.cargo/bin" >> $GITHUB_PATH - name: Cache cargo registry uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3 with: path: | ~/.cargo/registry ~/.cargo/git veza-stream-server/target key: ${{ runner.os }}-cargo-mutants-${{ hashFiles('veza-stream-server/Cargo.lock') }} restore-keys: | ${{ runner.os }}-cargo-mutants- - name: Install cargo-mutants run: cargo install cargo-mutants - name: Run mutation testing run: cd veza-stream-server && cargo mutants --timeout 120 -- --lib continue-on-error: true - name: Upload mutation results if: always() uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0 with: name: mutation-results path: veza-stream-server/mutants.out/ retention-days: 30