Skip to content

Commit 3fb54fd

Browse files
committed
ci(echidna): drop nightly campaign
Contracts rarely deploy outside PRs, so keep a single time-boxed Echidna job on every pull request.
1 parent a227ca1 commit 3fb54fd

6 files changed

Lines changed: 11 additions & 106 deletions

File tree

.github/workflows/echidna-nightly.yml

Lines changed: 0 additions & 74 deletions
This file was deleted.

.github/workflows/echidna.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,16 @@ permissions:
88
contents: read
99

1010
concurrency:
11-
group: echidna-fast-${{ github.event.pull_request.number || github.ref }}
11+
group: echidna-${{ github.event.pull_request.number || github.ref }}
1212
cancel-in-progress: true
1313

1414
env:
1515
NODEJS_VERSION: '20'
1616
ECHIDNA_IMAGE: ghcr.io/crytic/echidna/echidna:v2.3.1
1717

1818
jobs:
19-
echidna-fast:
20-
name: Echidna (fast) / ${{ matrix.contract }}
19+
echidna:
20+
name: Echidna / ${{ matrix.contract }}
2121
runs-on: ubuntu-latest
2222
timeout-minutes: 20
2323
strategy:
@@ -44,9 +44,9 @@ jobs:
4444
- name: Install dependencies
4545
run: yarn install --frozen-lockfile
4646

47-
- name: Run Echidna (fast)
47+
- name: Run Echidna
4848
env:
49-
ECHIDNA_CONFIG: echidna/echidna.ci.fast.yaml
49+
ECHIDNA_CONFIG: echidna/echidna.ci.yaml
5050
ECHIDNA_CONTRACT: ${{ matrix.contract }}
5151
ECHIDNA_TIMEOUT: '900'
5252
run: yarn echidna
@@ -55,7 +55,7 @@ jobs:
5555
if: failure()
5656
uses: actions/upload-artifact@v4
5757
with:
58-
name: echidna-fast-${{ matrix.contract }}
58+
name: echidna-${{ matrix.contract }}
5959
path: |
6060
echidna/logs/
6161
echidna/corpus/by-contract/

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ Harness layout, properties, and troubleshooting are documented in [echidna/READM
119119
yarn echidna
120120
```
121121

122-
CI runs a fast Echidna campaign on pull requests and a deeper multi-seed campaign nightly. See [echidna/README.md](./echidna/README.md#ci).
122+
CI runs Echidna on every pull request. See [echidna/README.md](./echidna/README.md#ci).
123123

124124
## Run
125125

echidna/README.md

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -134,25 +134,18 @@ Config: `echidna/echidna.yaml` (`ECHIDNA_CONFIG` to override). Corpus/coverage:
134134

135135
## CI
136136

137-
Workflows: [`.github/workflows/echidna.yml`](../.github/workflows/echidna.yml) (PRs) and [`.github/workflows/echidna-nightly.yml`](../.github/workflows/echidna-nightly.yml) (schedule).
137+
Workflow: [`.github/workflows/echidna.yml`](../.github/workflows/echidna.yml). Runs on every pull request (and manual `workflow_dispatch`).
138138

139-
| Job | When | Budget | Timeout |
140-
|-----|------|--------|---------|
141-
| Fast | Every pull request | `echidna/echidna.ci.fast.yaml` (`testLimit` 4000, `seqLen` 80) | 20 minutes per harness (Echidna `--timeout` 900s) |
142-
| Nightly | 03:00 UTC + manual `workflow_dispatch` | `echidna/echidna.ci.nightly.yaml` (`testLimit` 100000, `seqLen` 320), seeds `1 2 3` | 180 minutes per harness |
143-
144-
Both jobs run one GitHub Actions matrix entry per harness so a failure names the broken invariant surface. On failure the workflow uploads `echidna/logs/`, corpus reproducers under `echidna/corpus/by-contract/`, and `crytic-export/` as artifacts.
139+
One matrix job per harness, using `echidna/echidna.ci.yaml` (`testLimit` 4000, `seqLen` 80) with a 20-minute job timeout and Echidna `--timeout` 900s. On failure the workflow uploads `echidna/logs/`, corpus reproducers under `echidna/corpus/by-contract/`, and `crytic-export/` as artifacts.
145140

146141
Reproduce a CI counterexample locally:
147142

148143
```bash
149-
ECHIDNA_CONFIG=echidna/echidna.ci.fast.yaml \
144+
ECHIDNA_CONFIG=echidna/echidna.ci.yaml \
150145
ECHIDNA_CONTRACT=EchidnaStakeRegistryHarness \
151146
yarn echidna
152147
```
153148

154-
Nightly campaigns only run automatically after this workflow is on the repository default branch (`master`). Until then, trigger **Echidna** via `workflow_dispatch`.
155-
156149
## Extend
157150

158151
1. Add `src/echidna/Echidna*Harness.sol` — auto-discovered by `scripts/echidna.sh`.

echidna/echidna.ci.nightly.yaml

Lines changed: 0 additions & 14 deletions
This file was deleted.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
testMode: property
22

3-
# PR smoke campaign: reduced budget so the job finishes inside a strict timeout.
3+
# PR campaign: reduced budget so the job finishes inside a strict timeout.
44
seqLen: 80
55
testLimit: 4000
66
shrinkLimit: 200

0 commit comments

Comments
 (0)