diff --git a/.github/workflows/audit.yml b/.github/workflows/audit.yml new file mode 100644 index 0000000..ea59106 --- /dev/null +++ b/.github/workflows/audit.yml @@ -0,0 +1,21 @@ +name: Security audit + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +on: + schedule: + - cron: '00 10 * * 3' # 06:00 GMT-4 + push: + paths: + - '**/Cargo.toml' + - '**/Cargo.lock' +jobs: + security_audit: + runs-on: ubuntu-latest + steps: + - uses: wykies/checkout@main + - uses: wykies/install-action@cargo-deny + - name: Scan for vulnerabilities + run: cargo deny check advisories \ No newline at end of file diff --git a/.github/workflows/general.yml b/.github/workflows/general.yml new file mode 100644 index 0000000..cb9dbb4 --- /dev/null +++ b/.github/workflows/general.yml @@ -0,0 +1,46 @@ +name: Rust + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +on: + push: + branches: + - main + - develop + +env: + CARGO_TERM_COLOR: always + +jobs: + test: + name: Test + runs-on: ubuntu-latest + steps: + - uses: wykies/checkout@main + - uses: wykies/setup-rust-toolchain@main + - name: Run tests + run: cargo test --all-features + + fmt: + name: Rustfmt + runs-on: ubuntu-latest + steps: + - uses: wykies/checkout@main + - uses: wykies/setup-rust-toolchain@main + with: + components: rustfmt + - name: Enforce formatting + run: cargo fmt --check + + clippy: + name: Clippy + runs-on: ubuntu-latest + steps: + - uses: wykies/checkout@main + - uses: wykies/setup-rust-toolchain@main + with: + components: clippy + - name: Linting + run: cargo clippy -- -D warnings diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..2dbd023 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,25 @@ +name: Release Build Confirmation + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +on: + push: + branches: + - main + pull_request: + branches: + - main +env: + CARGO_TERM_COLOR: always + +jobs: + release_compile: + name: ReleaseCompile + runs-on: ubuntu-latest + steps: + - uses: wykies/checkout@main + - uses: wykies/setup-rust-toolchain@main + - name: Run Release Compile + run: cargo check --all-features --release \ No newline at end of file diff --git a/.github/workflows/semver_check.yml b/.github/workflows/semver_check.yml new file mode 100644 index 0000000..c02dc6a --- /dev/null +++ b/.github/workflows/semver_check.yml @@ -0,0 +1,25 @@ +name: Check Semver + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +on: + push: + branches: + - main + pull_request: + branches: + - main +env: + CARGO_TERM_COLOR: always + + +jobs: + semver-checks: + runs-on: ubuntu-latest + steps: + - name: checkout@main + uses: wykies/checkout + - name: Check semver + uses: obi1kenobi/cargo-semver-checks-action@main