Update README.md overview section #3629
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: | |
merge_group: | |
pull_request: | |
schedule: | |
- cron: "0 3 * * 3" | |
workflow_dispatch: | |
concurrency: | |
group: ci-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
CARGO_TERM_COLOR: always | |
jobs: | |
test: | |
strategy: | |
fail-fast: ${{ github.event_name == 'merge_group' }} | |
matrix: | |
environment: [ubuntu-latest, macos-latest, windows-latest] | |
test: [ci, other, third_party_0, third_party_1, trycmd] | |
runs-on: ${{ matrix.environment }} | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Log github refs | |
if: ${{ matrix.test == 'ci' }} | |
run: | | |
echo '```' >> "$GITHUB_STEP_SUMMARY" | |
echo 'github.ref: ${{ github.ref }}' >> "$GITHUB_STEP_SUMMARY" | |
echo 'github.sha: ${{ github.sha }}' >> "$GITHUB_STEP_SUMMARY" | |
echo '```' >> "$GITHUB_STEP_SUMMARY" | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v3 | |
with: | |
path: | | |
~/.avm | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
~/.dylint_drivers/ | |
~/.rustup/toolchains/ | |
target/dylint/ | |
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
- name: Rustup | |
run: rustup update | |
- name: Install CI tools | |
if: ${{ matrix.environment == 'ubuntu-latest' && matrix.test == 'ci' }} | |
run: | | |
rustup +nightly component add clippy rustfmt | |
cargo install cargo-dylint --git=https://github.com/trailofbits/dylint --no-default-features --features=metadata-cli || true | |
cargo install dylint-link || true | |
cargo install cargo-hack || true | |
cargo install cargo-license || true | |
cargo install cargo-sort || true | |
cargo install cargo-udeps --locked || true | |
cargo install cargo-unmaintained || true | |
# smoelius: `modules` test is disabled. | |
# cargo install cargo-modules --locked --version=^0.11 || true | |
- name: Install testing tools | |
if: ${{ matrix.test != 'ci' }} | |
uses: ./.github/workflows/install-testing-tools | |
- name: Enable debug logging | |
if: ${{ runner.debug == 1 }} | |
run: echo 'RUST_LOG=debug' >> "$GITHUB_ENV" | |
- name: Test | |
run: | | |
if [[ '${{ matrix.test }}' != 'other' ]]; then | |
cargo test -p necessist --test ${{ matrix.test }} --features=strict -- --nocapture | |
else | |
cargo test -p necessist --test general | |
cargo test -p necessist-core | |
cargo test -p necessist-frameworks | |
fi | |
all-checks: | |
needs: [test] | |
runs-on: ubuntu-latest | |
# smoelius: From "Defining prerequisite jobs" | |
# (https://docs.github.com/en/actions/using-jobs/using-jobs-in-a-workflow#defining-prerequisite-jobs): | |
# > If you would like a job to run even if a job it is dependent on did not succeed, use the | |
# > `always()` conditional expression in `jobs.<job_id>.if`. | |
if: ${{ always() }} | |
steps: | |
- name: Check results | |
if: ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }} | |
run: exit 1 |