Skip to content

ci: fix consensus spec test failure tolerance#19854

Merged
AskAlexSharov merged 3 commits into
mainfrom
anacrolix/consensus-ci-fix
Mar 16, 2026
Merged

ci: fix consensus spec test failure tolerance#19854
AskAlexSharov merged 3 commits into
mainfrom
anacrolix/consensus-ci-fix

Conversation

@anacrolix

@anacrolix anacrolix commented Mar 12, 2026

Copy link
Copy Markdown
Contributor

Reverts #19037 and replaces the approach.

What was wrong

#19037 split the step into a separate download step (continue-on-error: true) and a test step. The download step passed as intended, but the test step ran make tests which had download-spec as a Make dependency — so it re-ran the download, which failed.

Example: https://github.com/erigontech/erigon/actions/runs/22987591330/job/66741331639#step:5:20

Fix

Revert the Makefile split (curl back inline in tests) and use a single bash if statement in the workflow:

  • If make tests fails → emit a ::warning:: annotation and skip mainnet. The step exits 0, so the job passes.
  • If make tests succeeds → run make mainnet normally. A failure here fails the job.

Transient download failures produce a visible warning rather than a failing job, and actual test regressions still fail the job.

The previous approach (#19037) split the step into a download step with
continue-on-error and a test step that only ran if download succeeded.
This was wrong: if the download failed, the test step was skipped
entirely, so mainnet tests never ran either — the job just silently
passed without doing anything useful.

The correct behaviour is to tolerate setup/download failures but still
run mainnet tests regardless, and fail the job if mainnet tests fail.

Use a bash if statement: run make tests, and if it fails emit a
::warning:: annotation and skip mainnet; if it succeeds, run mainnet
normally. This way transient CDN errors produce a visible warning
instead of a silent skip, and actual test regressions still fail the job.

Example of incorrect behaviour: https://github.com/erigontech/erigon/actions/runs/22987591330/job/66741331639#step:5:20
Reverts: #19037
@anacrolix anacrolix marked this pull request as ready for review March 12, 2026 12:15
@anacrolix anacrolix changed the base branch from main to merge-queue-test/main March 12, 2026 12:15
@anacrolix anacrolix enabled auto-merge March 12, 2026 12:16
@anacrolix anacrolix changed the base branch from merge-queue-test/main to main March 16, 2026 01:54
auto-merge was automatically disabled March 16, 2026 03:08

Merge commits are not allowed on this repository

@AskAlexSharov AskAlexSharov merged commit 18765f0 into main Mar 16, 2026
37 checks passed
@AskAlexSharov AskAlexSharov deleted the anacrolix/consensus-ci-fix branch March 16, 2026 03:08
lupin012 pushed a commit that referenced this pull request Mar 17, 2026
Reverts #19037 and replaces the approach.

## What was wrong

#19037 split the step into a separate download step (`continue-on-error:
true`) and a test step. The download step passed as intended, but the
test step ran `make tests` which had `download-spec` as a Make
dependency — so it re-ran the download, which failed.

Example:
https://github.com/erigontech/erigon/actions/runs/22987591330/job/66741331639#step:5:20

## Fix

Revert the Makefile split (curl back inline in `tests`) and use a single
bash `if` statement in the workflow:

- If `make tests` fails → emit a `::warning::` annotation and skip
mainnet. The step exits 0, so the job passes.
- If `make tests` succeeds → run `make mainnet` normally. A failure here
fails the job.

Transient download failures produce a visible warning rather than a
failing job, and actual test regressions still fail the job.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants