Skip to content

Commit

Permalink
[ci] Roll pinned nightly toolchain automatically
Browse files Browse the repository at this point in the history
Closes #348
  • Loading branch information
joshlf committed Sep 21, 2023
1 parent cc7a0eb commit 214f020
Showing 1 changed file with 54 additions and 0 deletions.
54 changes: 54 additions & 0 deletions .github/workflows/roll-pinned-toolchain-versions.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Roll pinned toolchain versions
on:
schedule:
- cron: '29 15 * * *'
# TODO: Remove this before merging!!!
pull_request:

# TODO: Once we confirm this works, try changing this to `read-all` to see if
# the job still works.
permissions: write-all

jobs:
roll:
name: Roll pinned toolchain versions
runs-on: ubuntu-latest
steps:
- name: "Checkout code"
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
# TODO: Once we confirm this works, try uncommenting this to see if the
# job still works.
# with:
# persist-credentials: false
- name: "Calculate target version"
# Use yesterday's date (`-d '-1 day'`) so we're sure the nightly for that
# date has actually been published yet. This allows us to not worry
# about what time of day this job runs.
run: echo "ZC_TARGET_NIGHTLY=nightly-$(date -d '-1 day' +%Y-%m-%d)" >> $GITHUB_ENV
- name: Install Rust with ${{ env.ZC_TARGET_NIGHTLY }} toolchain
uses: dtolnay/rust-toolchain@00b49be78f40fba4e87296b2ead62868750bdd83 # stable
with:
toolchain: ${{ env.ZC_TARGET_NIGHTLY }}
- name: "Update files"
run: |
set -eox pipefail
# Confirm that `Cargo.toml` lists the pinned nightly version in the
# expected format. This is a prerequisite for the subsequent `sed`
# command. If this fails, the preceding `set -eo pipefail` will cause
# the script to exit with an error.
REGEX='^pinned-nightly = "[a-z0-9-]*"$'
grep "$REGEX" Cargo.toml >/dev/null
sed -i -e "s/$REGEX/pinned-nightly = \"$ZC_TARGET_NIGHTLY\"/" Cargo.toml
# Confirm that the update didn't bork `Cargo.toml`.
grep "$REGEX" Cargo.toml >/dev/null
# Update `.stderr` files as needed for the new nightly version.
TRYBUILD=overwrite ./cargo.sh +nightly test --all-features --package zerocopy
TRYBUILD=overwrite ./cargo.sh +nightly test --all-features --package zerocopy-derive
- name: "Submit PR"
uses: peter-evans/create-pull-request@153407881ec5c347639a548ade7d8ad1d6740e38 # v5.0.2
with:
commit-message: "[ci] Roll pinned nightly toolchain"

0 comments on commit 214f020

Please sign in to comment.