rust-toolchain/.github/workflows/ci.yml
2023-03-09 15:21:05 -05:00

50 lines
1.8 KiB
YAML

name: CI
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
schedule: [cron: "40 1 * * *"]
permissions:
contents: read
jobs:
install:
name: Rust ${{matrix.rust}} on ${{matrix.os == 'ubuntu' && 'Linux' || matrix.os == 'macos' && 'macOS' || matrix.os == 'windows' && 'Windows' || '???'}}
runs-on: ${{matrix.os}}-latest
strategy:
fail-fast: false
matrix:
os: [ubuntu, macos, windows]
rust: [nightly, beta, stable, 1.62.0, stable 18 months ago, stable minus 8 releases]
include:
- os: ubuntu
rust: 1.0.0
timeout-minutes: 45
steps:
- uses: actions/checkout@v3
- name: Create toolchain file
run: |
echo "[toolchain]" >> rust-toolchain.toml
echo "channel = \"${{matrix.rust}}\"" >> rust-toolchain.toml
cat rust-toolchain.toml
- uses: ./
name: Run dsherret/rust-toolchain-file${{contains(matrix.rust, ' ') && ' for ' || '@'}}${{matrix.rust}}
id: toolchain
with:
toolchain: ${{matrix.rust}}
- name: echo ${{'${{steps.toolchain.outputs.cachekey}}'}}
run: echo '${{steps.toolchain.outputs.cachekey}}'
- name: check ${{'${{steps.toolchain.outputs.cachekey}}'}}
if: matrix.rust == '1.62.0'
run: cmp -s <(echo ${{steps.toolchain.outputs.cachekey}}) <(echo 20220627a831)
shell: bash
- run: rustc --version
- run: cargo init . --bin --name CI
if: matrix.rust == 'nightly' || matrix.rust == 'beta' || matrix.rust == 'stable'
- run: cargo add syn@1
if: matrix.rust == 'nightly' || matrix.rust == 'beta' || matrix.rust == 'stable'
- run: cargo check
if: matrix.rust == 'nightly' || matrix.rust == 'beta' || matrix.rust == 'stable'