CI #628
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 | |
concurrency: | |
group: ci-${{ github.ref }} | |
cancel-in-progress: true | |
on: | |
merge_group: | |
pull_request: | |
branches: [ master ] | |
workflow_dispatch: | |
inputs: | |
verbose: | |
description: "Set --verbose to get verbose build output" | |
required: false | |
default: "" | |
jobs: | |
rustfmt: | |
name: Rustfmt (${{ matrix.os }}) | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
rust: [stable] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Rust stable | |
uses: dtolnay/rust-toolchain@stable | |
- name: check fmt | |
run: make check-fmt RUSTV=${{ matrix.rust }} | |
clippy: | |
name: Clippy (${{ matrix.os }}) | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
rust: [stable] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Rust stable | |
uses: dtolnay/rust-toolchain@stable | |
- name: check clippy | |
run: make check-clippy | |
test: | |
name: Smoke test (${{ matrix.os }}, ${{ matrix.node-version }}) | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
# os: [ubuntu-latest, windows-latest, macOS-latest] | |
os: [ubuntu-latest, macOS-13] | |
rust: [stable] | |
node-version: [ '16', '18', '20' ] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Rust stable | |
uses: dtolnay/rust-toolchain@stable | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
key: ${{ matrix.os }} | |
- name: Install nj-cli build | |
run: cargo install --path nj-cli | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- name: All Tests | |
run: make test-all | |
done: | |
name: Done | |
needs: [rustfmt, clippy, test] | |
runs-on: ubuntu-latest | |
if: always() | |
steps: | |
- name: Dump needs context | |
env: | |
CONTEXT: ${{ toJson(needs) }} | |
run: | | |
echo -e "\033[33;1;4mDump context\033[0m" | |
echo -e "$CONTEXT\n" | |
- name: Report failure on cancellation | |
if: ${{ contains(needs.*.result, 'cancelled') || cancelled() }} | |
run: exit 1 | |
- name: Failing test and build | |
if: ${{ contains(needs.*.result, 'failure') }} | |
run: exit 1 | |
- name: Don't allow skipped | |
if: ${{ contains(needs.*.result, 'skipped') && github.event_name == 'merge_group' }} | |
run: exit 1 | |
- name: Successful test and build | |
if: ${{ !(contains(needs.*.result, 'failure')) }} | |
run: exit 0 |