diff --git a/.github/workflows/cont_integration.yml b/.github/workflows/cont_integration.yml index ef6fc8da1..b41406617 100644 --- a/.github/workflows/cont_integration.yml +++ b/.github/workflows/cont_integration.yml @@ -4,6 +4,17 @@ name: CI jobs: + prepare: + runs-on: ubuntu-latest + outputs: + rust_version: ${{ steps.read_toolchain.outputs.rust_version }} + steps: + - name: "Checkout repo" + uses: actions/checkout@v4 + - name: "Read rust version" + id: read_toolchain + run: echo "rust_version=$(cat rust-version)" >> $GITHUB_OUTPUT + build-test: name: Build and test runs-on: ubuntu-latest @@ -116,12 +127,13 @@ jobs: run: cargo fmt --all -- --config format_code_in_doc_comments=true --check clippy_check: + needs: prepare runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - uses: actions-rs/toolchain@v1 with: - toolchain: 1.78.0 + toolchain: ${{ needs.prepare.outputs.rust_version }} components: clippy override: true - name: Rust Cache diff --git a/.github/workflows/cron-update-rust.yml b/.github/workflows/cron-update-rust.yml new file mode 100644 index 000000000..3801f78a8 --- /dev/null +++ b/.github/workflows/cron-update-rust.yml @@ -0,0 +1,42 @@ +name: Update rust version +on: + schedule: + - cron: "0 0 15 * *" # At 00:00 on day-of-month 15. + workflow_dispatch: # allows manual triggering +jobs: + format: + name: Update rustc + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - name: Update rust-version to use latest stable + run: | + set -x + # Extract the version from whatever version of the compiler dtolnay/rust-toolchain gives us. + RUST_VERSION=$(rustc --verbose --version | sed -ne 's/^release: //p') + # Update the version in the reference file. + echo "${RUST_VERSION}" > rust-version + echo "rust_version=${RUST_VERSION}" >> $GITHUB_ENV + # In case of no new version don't make an empty PR. + if ! git diff --exit-code > /dev/null; then + echo "Updated rustc. Opening PR." + echo "changes_made=true" >> $GITHUB_ENV + else + echo "Attempted to update rustc but the latest stable date did not change. Not opening any PR." + echo "changes_made=false" >> $GITHUB_ENV + fi + - name: Create Pull Request + if: env.changes_made == 'true' + uses: peter-evans/create-pull-request@v6 + with: + token: ${{ secrets.GITHUB_TOKEN }} + author: Update Rustc Bot + committer: Update Rustc Bot + branch: create-pull-request/update-rust-version + title: | + ci: automated update to rustc ${{ env.rust_version }} + commit-message: | + ci: automated update to rustc ${{ env.rust_version }} + body: | + Automated update to Github CI workflow `cont_integration.yml` by [create-pull-request](https://github.com/peter-evans/create-pull-request) GitHub action diff --git a/rust-version b/rust-version new file mode 100644 index 000000000..b3a8c61e6 --- /dev/null +++ b/rust-version @@ -0,0 +1 @@ +1.79.0