Skip to content

Commit

Permalink
Add github CI workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
Phantomical committed Feb 11, 2024
1 parent 6f53851 commit fe92a50
Showing 1 changed file with 128 additions and 0 deletions.
128 changes: 128 additions & 0 deletions .github/workflows/cargo.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@

name: cargo
on:
push:
branches:
main
pull_request:

jobs:
test:
name: test-${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
- macos-latest
- windows-latest
fail-fast: false
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- uses: swlynch99/cargo-sweep-action@v1
- uses: taiki-e/install-action@cargo-nextest

- name: cargo nextest run
run: |
cargo nextest run \
--locked \
--all-targets \
--all-features \
--no-fail-fast \
--success-output final \
--final-status-level skip
shell: bash

- name: doctests
run: |
cargo test --doc \
--all-features \
--locked
shell: bash

check-powerset:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- uses: swlynch99/cargo-sweep-action@v1
- uses: taiki-e/install-action@cargo-hack

- name: check powerset
run: |
cargo hack --feature-powerset check --locked
rustfmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- uses: swlynch99/cargo-sweep-action@v1

- name: rustfmt
run: |
cargo fmt --all -- --check
clippy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- uses: Swatinem/rust-cache@v2
- uses: swlynch99/cargo-sweep-action@v1
- uses: taiki-e/install-action@v2
with:
tool: clippy-sarif,sarif-fmt

- name: cargo clippy
run: |
cargo clippy --all-targets --all-features --message-format json \
| clippy-sarif \
| tee clippy.sarif \
| sarif-fmt
continue-on-error: true

- uses: actions/upload-artifact@v4
with:
name: clippy-sarif
path: clippy.sarif

clippy-upload:
if: github.event_name == 'pull_request' || github.ref == 'reads/heads/main'
runs-on: ubuntu-latest
needs:
- clippy
permissions:
security-events: write
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: clippy-sarif
- uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: clippy.sarif

check-success:
name: verify all tests pass
runs-on: ubuntu-latest
if: always()
needs:
- test
- check-powerset
- rustfmt
- clippy

steps:
- name: fail if any dependencies failed
if: contains(needs.*.result, 'failure')
shell: bash
run: exit 1
- name: no-op
run: echo "All checks passed!"

0 comments on commit fe92a50

Please sign in to comment.