-
Notifications
You must be signed in to change notification settings - Fork 270
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Re-write CI using the new maintainer tools script. A few things to note: - Put sanitizer and wasm jobs in their own scripts - Utilize `extra_tests.sh` for additional feature combos - We are exceeding the 20 job limit, see the README Unless I'm made a mistake this shouldn't reduce the test coverage in any way.
- Loading branch information
Showing
14 changed files
with
566 additions
and
243 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
# rust-bitcoin workflow notes | ||
|
||
We are attempting to run max 20 parallel jobs using GitHub actions (usage limit for free tier). | ||
|
||
ref: https://docs.github.com/en/actions/learn-github-actions/usage-limits-billing-and-administration | ||
|
||
The minimal/recent lock files are handled by CI (`rust.yml`). | ||
|
||
## Jobs | ||
|
||
Run from `rust.yml` unless stated otherwise. Total 21 jobs but | ||
`Prepare` is quick and must be run first anyway. | ||
|
||
0. `Prepare` | ||
1. `Stable - minimal` | ||
2. `Stable - recent` | ||
3. `Nightly - minimal` | ||
4. `Nightly - recent` | ||
5. `MSRV - minimal` | ||
6. `MSRV - recent` | ||
7. `Lint` | ||
8. `Docs` | ||
9. `Docsrs` | ||
10. `Bench` | ||
11. `Format` | ||
12. `ASAN` | ||
13. `Arch32Bit` | ||
14. `WASM` | ||
15. `NoStd` | ||
<!-- Jobs run from `cross.yaml` --> | ||
16. `Cross testing - aarch64-unknown-linux-gnu` | ||
17. `Cross testing - i686-unknown-linux-gnu` | ||
18. `Cross testing - x86_64-pc-windows-gnu` | ||
19. `Cross testing - x86_64-unknown-linux-gnu` | ||
20. `Cross testing - aarch64-unknown-linux-musl` | ||
21. `Cross testing - arm-unknown-linux-gnueabi` | ||
22. `Cross testing - arm-unknown-linux-gnueabihf` | ||
23. `Cross testing - armv7-unknown-linux-gnueabihf` | ||
24. `Cross testing - powerpc-unknown-linux-gnu` | ||
25. `Cross testing - powerpc64le-unknown-linux-gnu` | ||
26. `Cross testing - riscv64gc-unknown-linux-gnu` | ||
27. `Cross testing - s390x-unknown-linux-gnu` | ||
28. `Cross testing - x86_64-unknown-linux-musl` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
name: Update Nightly rustc | ||
on: | ||
schedule: | ||
- cron: "0 0 * * 1,4" # runs every Monday and Thursday at 00:00 | ||
workflow_dispatch: # allows manual triggering | ||
jobs: | ||
format: | ||
name: Update nightly rustc | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: dtolnay/rust-toolchain@nightly | ||
- name: Update rust.yml to use latest nightly | ||
run: | | ||
set -x | ||
# Not every night has a nightly, so extract the date from whatever | ||
# version of the compiler dtolnay/rust-toolchain gives us. | ||
NIGHTLY_DATE=$(rustc +nightly --verbose --version | sed -ne 's/^commit-date: //p') | ||
# Update the nightly version in the reference file. | ||
echo "nightly-${NIGHTLY_DATE}" > nightly-version | ||
echo "nightly_date=${NIGHTLY_DATE}" >> $GITHUB_ENV | ||
# Some days there is no new nightly. In this case don't make an empty PR. | ||
if ! git diff --exit-code > /dev/null; then | ||
echo "Updated nightly. Opening PR." | ||
echo "changes_made=true" >> $GITHUB_ENV | ||
else | ||
echo "Attempted to update nightly but the latest-nightly 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.APOELSTRA_CREATE_PR_TOKEN }} | ||
author: Update Nightly Rustc Bot <[email protected]> | ||
committer: Update Nightly Rustc Bot <[email protected]> | ||
title: Automated daily update to rustc (to nightly-${{ env.nightly_date }}) | ||
body: | | ||
Automated update to Github CI workflow `rust.yml` by [create-pull-request](https://github.com/peter-evans/create-pull-request) GitHub action | ||
commit-message: Automated update to Github CI to rustc nightly-${{ env.nightly_date }} | ||
branch: create-pull-request/daily-nightly-update |
Oops, something went wrong.