Skip to content

Update Rust crate indicatif to v0.18.1 (#179) #561

Update Rust crate indicatif to v0.18.1 (#179)

Update Rust crate indicatif to v0.18.1 (#179) #561

Workflow file for this run

name: test
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
on:
pull_request:
push:
branches:
- trunk
workflow_dispatch:
defaults:
run:
shell: bash
env:
CARGO_TERM_COLOR: always
ROW_COLOR: always
CLICOLOR: 1
jobs:
unit_test:
name: Unit test [${{ matrix.mode }}-rust-${{ matrix.rust }}-${{ matrix.os }}]
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-24.04
- macos-14
rust:
- 1.88.0
- 1.89.0
mode:
- debug
include:
# Add a release build on linux with the latest version of rust
- os: ubuntu-24.04
rust: 1.89.0
mode: release
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Configure Rust
id: rust_toolchain
uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921
with:
toolchain: ${{ matrix.rust }}
- name: Cache
uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2.8.1
with:
key: ${{ matrix.mode }}
cache-bin: false
- name: Build
run: cargo build ${{ matrix.mode == 'release' && '--release' || '' }} --verbose
- name: Run tests
run: cargo test ${{ matrix.mode == 'release' && '--release' || '' }} --verbose
execute_tutorials:
name: Execute tutorials
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Configure Rust
id: rust_toolchain
uses: dtolnay/rust-toolchain@6d653acede28d24f02e3cd41383119e8b1b35921
with:
toolchain: 1.89.0
- name: Cache
uses: Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2.8.1
with:
cache-bin: false
- name: Install
run: cargo install --path . --locked --verbose
- name: Run hello.sh
run: bash hello.sh
working-directory: doc/src/guide/tutorial
env:
ROW_YES: "true"
- name: Run group.sh
run: bash group.sh
working-directory: doc/src/guide/tutorial
env:
ROW_YES: "true"
# The signac test requires python
- name: Set up Python
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
with:
python-version: "3.14"
- name: Set up Python environment
uses: glotzerlab/workflows/setup-uv@894d9678188a02b06560fdeb2b9ba98d016cd371 # 0.10.0
with:
lockfile: ".github/workflows/signac-requirements.txt"
- name: Run signac.sh
run: bash signac.sh
working-directory: doc/src/guide/python
env:
ROW_YES: "true"
build_documentation:
name: Build documentation
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Set up mdbook
uses: glotzerlab/workflows/setup-mdbook@894d9678188a02b06560fdeb2b9ba98d016cd371 # 0.10.0
- name: Build documentation
run: mdbook build doc
env:
RUST_LOG: "mdbook=info"
- name: Check links
uses: lycheeverse/lychee-action@885c65f3dc543b57c898c8099f4e08c8afd178a2 # v2.6.1
with:
args: -n .
fail: true
tests_complete:
name: All tests
if: always()
needs: [unit_test, execute_tutorials, build_documentation]
runs-on: ubuntu-24.04
steps:
- run: jq --exit-status 'all(.result == "success")' <<< '${{ toJson(needs) }}'
- name: Done
run: exit 0