CI #992
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: | |
push: { branches: [main] } | |
pull_request: | |
schedule: [cron: "40 1 * * *"] | |
jobs: | |
install: | |
name: Rust ${{matrix.rust || '(default)'}} (toolchain-file=${{matrix.write-toolchain-file}}) (${{matrix.os}}) | |
runs-on: ${{matrix.os}} | |
strategy: | |
fail-fast: false | |
max-parallel: 5 | |
matrix: | |
os: | |
- ubuntu-latest | |
- windows-latest | |
- macos-latest | |
write-toolchain-file: | |
- false | |
- true | |
rust: | |
# use stable toolchain as default | |
- null | |
# Test that the sparse registry check works. | |
# 1.66 and 1.67 don't support stable sparse registry. | |
- "1.66" | |
- "nightly" | |
- "beta" | |
- "stable" | |
steps: | |
- uses: actions/checkout@v4 | |
# Test toolchain file support | |
- name: Write rust-toolchain.toml | |
if: matrix.write-toolchain-file | |
shell: bash | |
run: | | |
cat <<EOF >>rust-toolchain.toml | |
[toolchain] | |
channel = "nightly-2024-01-10" | |
components = [ "rustfmt", "rustc-dev" ] | |
targets = [ "wasm32-unknown-unknown", "thumbv7m-none-eabi" ] | |
profile = "minimal" | |
EOF | |
- id: toolchain | |
name: Run actions-rust-lang/setup-rust-toolchain ${{matrix.rust || 'on toolchain file'}} | |
uses: ./ | |
with: | |
toolchain: ${{matrix.rust}} | |
components: clippy | |
- name: Check ${{'${{steps.toolchain.outputs.rustc-version}}'}} | |
run: echo '${{steps.toolchain.outputs.rustc-version}}' | |
- name: Check ${{'${{steps.toolchain.outputs.cargo-version}}'}} | |
run: echo '${{steps.toolchain.outputs.cargo-version}}' | |
- name: Check ${{'${{steps.toolchain.outputs.rustup-version}}'}} | |
run: echo '${{steps.toolchain.outputs.rustup-version}}' | |
- name: Check lack of toolchain input or file results in stable | |
if: matrix.write-toolchain-file == false && matrix.rust == null | |
shell: bash | |
run: |- | |
rustcv="$(rustc --version)" | |
[[ "$rustcv" != *"nightly"* && "$rustcv" != *"beta"* ]] | |
- name: Check toolchain file is being overridden | |
if: matrix.write-toolchain-file | |
shell: bash | |
run: |- | |
rustcv="$(rustc --version)" | |
[[ ! ( "$rustcv" == *"nightly"* && "$rustcv" == *"2024-01-10"* ) ]] | |
- shell: bash | |
run: rustc --version && cargo --version | |
# Test with creating a small project | |
- run: cargo init . --bin --name ci | |
# Add tiny empty crate. | |
# This checks that registry access works. | |
- run: cargo add serde_as | |
- run: cargo clippy | |
cache: | |
name: Cache | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Rust | |
uses: ./ | |
with: | |
components: clippy | |
cache: true | |
cache-workspaces: |- | |
./test-workspace | |
- run: cargo clippy --manifest-path=./test-workspace/Cargo.toml |