name: CI on: push: { branches: [main] } pull_request: schedule: [cron: "40 1 * * *"] jobs: install: name: Rust ${{matrix.rust || '(toolchain file)'}} ${{matrix.os}} runs-on: ${{matrix.os}} strategy: fail-fast: false matrix: rust: # Test with toolchain file override - null # Test that the sparse registry check works. # 1.66 and 1.67 don't support stable sparse registry. - "1.66" - "nightly" - "beta" - "stable" os: - ubuntu-latest - windows-latest - macos-latest steps: - uses: actions/checkout@v4 # Test toolchain file support - name: Write rust-toolchain.toml if: matrix.rust == null shell: bash run: | cat <>rust-toolchain.toml [toolchain] channel = "nightly-2024-01-11" 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}}' - 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 - id: toolchain name: Install Rust uses: ./ with: components: clippy cache: true cache-workspaces: |- ./test-workspace - run: cargo clippy --manifest-path=./test-workspace/Cargo.toml