feat: Support running CI locally with `act`

Disable problematic jobs that involve Github Actions caching or `cross`
whenever the environment is set to ACT. This allows running the CI
pipeline locally and hopefully speeds up PR cycle times by reducing
unexpected CI pipeline results.
This commit is contained in:
Andrew Ahlers 2022-02-17 00:15:42 +01:00
parent 0c5b695194
commit 006193f5b6
5 changed files with 17 additions and 1 deletions

1
.actrc Normal file
View File

@ -0,0 +1 @@
-e contrib/act/event.json

View File

@ -5,6 +5,7 @@ on: [push, pull_request]
jobs: jobs:
fuzz: fuzz:
if: ${{ !github.event.act }}
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
env: env:
HFUZZ_BUILD_ARGS: "--features honggfuzz_fuzz" HFUZZ_BUILD_ARGS: "--features honggfuzz_fuzz"
@ -41,6 +42,7 @@ jobs:
path: executed_${{ matrix.fuzz_target }} path: executed_${{ matrix.fuzz_target }}
verify-execution: verify-execution:
if: ${{ !github.event.act }}
needs: fuzz needs: fuzz
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:

View File

@ -64,6 +64,7 @@ jobs:
Cross: Cross:
name: Cross testing name: Cross testing
if: ${{ !github.event.act }}
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout Crate - name: Checkout Crate
@ -101,7 +102,7 @@ jobs:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Set up QEMU - name: Set up QEMU
run: sudo apt update && sudo apt install qemu-system-arm gcc-arm-none-eabi run: sudo apt update && sudo apt install -y qemu-system-arm gcc-arm-none-eabi
- name: Checkout Toolchain - name: Checkout Toolchain
uses: actions-rs/toolchain@v1 uses: actions-rs/toolchain@v1
with: with:

View File

@ -114,6 +114,15 @@ Please try to address them, otherwise your PR might get closed without merging
after a longer time of inactivity. If your PR isn't ready for review yet please after a longer time of inactivity. If your PR isn't ready for review yet please
mark it by prefixing the title with `WIP: `. mark it by prefixing the title with `WIP: `.
### CI Pipeline
The CI pipeline requires approval before being run on each MR.
In order to speed up the review process the CI pipeline can be run locally using
[act](https://github.com/nektos/act). The `fuzz` and `Cross` jobs will be
skipped when using `act` due to caching being unsupported at this time. We do
not *actively* support `act` but will merge PRs fixing `act` issues.
## Policy on Altcoins/Altchains ## Policy on Altcoins/Altchains
Patches which add support for non-Bitcoin cryptocurrencies by adding constants Patches which add support for non-Bitcoin cryptocurrencies by adding constants

3
contrib/act/event.json Normal file
View File

@ -0,0 +1,3 @@
{
"act": true
}