From a94006599e9364b16fb948e16a80165663d543dd Mon Sep 17 00:00:00 2001 From: Floris Bruynooghe Date: Thu, 11 Jan 2024 14:26:18 +0100 Subject: [PATCH] chore(ci): Do not test nightly rust on every PR (#1940) ## Description Normal CI jobs for PRs now only run using the stable rust compiler, this gives fewer surprises to users. Instead the beta compiler is run in a new workflow which runs once a week. When the beta workflow fails we get a post in a discord channel. ## Notes & open questions The required checks for branch protection have changed again. We no longer need the nightly checks in those. ## Change checklist - [x] Self-review. --- .github/workflows/beta.yaml | 40 ++++++++++++++++++++++++++++++++++++ .github/workflows/tests.yaml | 10 ++++++--- 2 files changed, 47 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/beta.yaml diff --git a/.github/workflows/beta.yaml b/.github/workflows/beta.yaml new file mode 100644 index 0000000000..cc8988c853 --- /dev/null +++ b/.github/workflows/beta.yaml @@ -0,0 +1,40 @@ +# Run tests using the beta Rust compiler + +name: Beta Rust + +on: + schedule: + # 06:50 UTC every Monday + - cron: '50 6 * * 1' + workflow_dispatch: + +concurrency: + group: beta-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + tests: + uses: './.github/workflows/tests.yaml' + with: + rust-version: beta + notify: + needs: tests + if: ${{ always() }} + runs-on: ubuntu-latest + steps: + - name: Extract test results + run: | + printf '${{ toJSON(needs) }}\n' + result=$(echo '${{ toJSON(needs) }}' | jq -r .tests.result) + echo TESTS_RESULT=$result + echo "TESTS_RESULT=$result" >>"$GITHUB_ENV" + - name: Notify discord on failure + uses: n0-computer/discord-webhook-notify@v1 + if: ${{ env.TESTS_RESULT == 'failure' }} + with: + severity: error + details: | + Rustc beta tests failed + See https://github.com/n0-computer/iroh/actions/workflows/beta.yaml + webhookUrl: ${{ secrets.DISCORD_N0_GITHUB_CHANNEL_WEBHOOK_URL }} + diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 89951e066c..40cbed459d 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -5,6 +5,10 @@ name: Tests on: workflow_call: inputs: + rust-version: + description: 'The version of the rust compiler to run' + type: string + default: 'stable' flaky: description: 'Whether to also run flaky tests' type: boolean @@ -29,7 +33,7 @@ jobs: fail-fast: false matrix: name: [ubuntu-latest, macOS-arm-latest] - rust: [nightly, stable] + rust: [ '${{ inputs.rust-version }}' ] features: [all, none, default] include: - name: ubuntu-latest @@ -52,7 +56,7 @@ jobs: with: ref: ${{ inputs.git-ref }} - - name: Install ${{ matrix.rust }} + - name: Install ${{ matrix.rust }} rust uses: dtolnay/rust-toolchain@master with: toolchain: ${{ matrix.rust }} @@ -114,7 +118,7 @@ jobs: fail-fast: false matrix: name: [windows-latest] - rust: [nightly, stable] + rust: [ '${{ inputs.rust-version}}' ] features: [all, none, default] target: - x86_64-pc-windows-msvc