This repository has been archived by the owner on Dec 11, 2024. It is now read-only.
chore: Updated workflows for JIRA integration #1198
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
workflow_dispatch: | |
pull_request: | |
types: | |
- opened | |
- reopened | |
- synchronize | |
- labeled | |
push: | |
branches: | |
- main | |
- nightly | |
schedule: | |
- cron: "30 18 * * 1,4,6" # 1830 UTC every Monday, Thursday, Saturday | |
jobs: | |
tests: | |
name: Unit tests | |
if: | | |
github.event_name != 'pull_request' || | |
github.event.pull_request.author_association == 'COLLABORATOR' || | |
github.event.pull_request.author_association == 'MEMBER' || | |
github.event.pull_request.user.login == 'dependabot[bot]' || | |
contains(github.event.pull_request.labels.*.name, 'safe to test') | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [windows-latest, macos-latest, ubuntu-latest] | |
rust_version: [stable] | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install Rust toolchain | |
uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ matrix.rust_version }} | |
components: llvm-tools-preview | |
- name: Cache Rust dependencies | |
uses: Swatinem/rust-cache@v2 | |
- name: Install cargo-llvm-cov | |
uses: taiki-e/install-action@cargo-llvm-cov | |
- name: Generate code coverage | |
env: | |
RUST_BACKTRACE: "1" | |
run: cargo llvm-cov --bins --all-features --lcov --output-path lcov.info | |
# Tokens aren't available for PRs originating from forks, | |
# so we don't attempt to upload code coverage in that case. | |
- name: Upload code coverage results | |
if: | | |
github.event_name != 'pull_request' || | |
github.event.pull_request.author_association == 'COLLABORATOR' || | |
github.event.pull_request.author_association == 'MEMBER' || | |
github.event.pull_request.user.login == 'dependabot[bot]' | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: true | |
verbose: true | |
clippy_check: | |
name: Clippy | |
if: | | |
github.event_name != 'pull_request' || | |
github.event.pull_request.author_association == 'COLLABORATOR' || | |
github.event.pull_request.author_association == 'MEMBER' || | |
github.event.pull_request.user.login == 'dependabot[bot]' || | |
contains(github.event.pull_request.labels.*.name, 'safe to test') | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install Rust toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
components: clippy | |
- name: Cache Rust dependencies | |
uses: Swatinem/rust-cache@v2 | |
- name: Run Clippy | |
run: cargo clippy --all-features --all-targets -- -Dwarnings | |
cargo_fmt: | |
name: Enforce Rust code format | |
if: | | |
github.event_name != 'pull_request' || | |
github.event.pull_request.author_association == 'COLLABORATOR' || | |
github.event.pull_request.author_association == 'MEMBER' || | |
github.event.pull_request.user.login == 'dependabot[bot]' || | |
contains(github.event.pull_request.labels.*.name, 'safe to test') | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install nightly toolchain | |
uses: dtolnay/rust-toolchain@nightly | |
with: | |
components: rustfmt | |
- name: Check format | |
run: cargo +nightly fmt --all -- --check | |
cargo-deny: | |
name: License / vulnerability audit | |
if: | | |
github.event_name != 'pull_request' || | |
github.event.pull_request.author_association == 'COLLABORATOR' || | |
github.event.pull_request.author_association == 'MEMBER' || | |
github.event.pull_request.user.login == 'dependabot[bot]' || | |
contains(github.event.pull_request.labels.*.name, 'safe to test') | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
checks: | |
- advisories | |
- bans licenses sources | |
# Prevent sudden announcement of a new advisory from failing CI: | |
continue-on-error: ${{ matrix.checks == 'advisories' }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Audit crate dependencies | |
uses: EmbarkStudios/cargo-deny-action@v2 | |
with: | |
command: check ${{ matrix.checks }} | |
unused_deps: | |
name: Check for unused dependencies | |
if: | | |
github.event_name != 'pull_request' || | |
github.event.pull_request.author_association == 'COLLABORATOR' || | |
github.event.pull_request.author_association == 'MEMBER' || | |
github.event.pull_request.user.login == 'dependabot[bot]' || | |
contains(github.event.pull_request.labels.*.name, 'safe to test') | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install nightly Rust toolchain | |
uses: dtolnay/rust-toolchain@nightly | |
- name: Run cargo-udeps | |
uses: aig787/cargo-udeps-action@v1 | |
with: | |
version: latest | |
args: --all-targets --all-features |