name: Daily compatibility check against latest substrate

on:
  schedule:
    # Run at 8am every day, well after the new binary is built
    - cron: "0 8 * * *"

env:
  CARGO_TERM_COLOR: always

jobs:
  tests:
    name: Cargo test
    runs-on: ubuntu-latest
    steps:
      - name: Checkout sources
        uses: actions/checkout@v4

      - name: Use substrate and polkadot node binaries
        uses: ./.github/workflows/actions/use-nodes

      - name: Install Rust stable toolchain
        uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: stable
          override: true

      - name: Rust Cache
        uses: Swatinem/rust-cache@9d47c6ad4b02e050fd481d890b2ea34778fd09d6 # v2.7.8

      - name: Cargo test
        uses: actions-rs/cargo@v1.0.3
        with:
          command: test
          args: --all-targets --workspace

      # If any previous step fails, create a new Github issue to notify us about it.
      - if: ${{ failure() }}
        uses: JasonEtco/create-an-issue@1b14a70e4d8dc185e5cc76d3bec9eab20257b2c5 # v2.9.2
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          # Use this issue template:
          filename: .github/issue_templates/nightly_run_failed.md
          # Update existing issue if found; hopefully will make it clearer
          # that it is still an issue:
          update_existing: true
          # Look for new *open* issues in this search (we want to
          # create a new one if we only find closed versions):
          search_existing: open
