CI #591
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 ${{ matrix.rust }} | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.rust }} | |
override: true | |
- 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 ${{ matrix.rust }} | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.rust }} | |
profile: minimal | |
- 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 ${{ matrix.rust }} | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ matrix.rust }} | |
override: true | |
- 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 |