name: CI

on:
  push:
    branches: [master]
  pull_request:
  schedule: [cron: "40 1 * * *"]

permissions:
  contents: read

jobs:
  install:
    name: Rust ${{matrix.rust}} on ${{matrix.name}}
    runs-on: ${{matrix.os}}-latest
    strategy:
      fail-fast: false
      matrix:
        name: [Linux]
        os: [ubuntu]
        rust: [nightly, beta, stable, 1.62.0, 1.0.0, stable 18 months ago, stable minus 8 releases]
        include:
          - name: macOS
            os: macos
            rust: nightly
          - name: macOS
            os: macos
            rust: 1.62.0
          - name: macOS
            os: macos
            rust: stable 18 months ago
          - name: macOS
            os: macos
            rust: stable minus 8 releases
          - name: Windows
            os: windows
            rust: nightly
          - name: Windows
            os: windows
            rust: 1.62.0
          - name: Windows
            os: windows
            rust: stable 18 months ago
          - name: Windows
            os: windows
            rust: stable minus 8 releases
    steps:
      - uses: actions/checkout@v3
      - uses: ./
        name: Run dtolnay/rust-toolchain${{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