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
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
--- /dev/null
+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 <bot@example.com>
+ committer: Update Rustc Bot <bot@example.com>
+ 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