Skip to content

[SharovBot] fix(commitment): count first-nibble branches in CanDoConcurrentNext to fix flaky test #10254

[SharovBot] fix(commitment): count first-nibble branches in CanDoConcurrentNext to fix flaky test

[SharovBot] fix(commitment): count first-nibble branches in CanDoConcurrentNext to fix flaky test #10254

name: Kurtosis Assertoor GitHub Action
env:
DOCKERHUB_REPOSITORY: "erigontech/erigon"
APP_REPO: "erigontech/erigon"
# Pinned versions of third-party containers — bump here when upgrading.
# These are cached via actions/cache (docker save/load) to avoid re-pulling
# on every run and to eliminate Docker Hub rate-limit exposure.
LIGHTHOUSE_IMAGE: "sigp/lighthouse:v7.0.1"
TEKU_IMAGE: "consensys/teku:25.9.1"
ASSERTOOR_IMAGE: "ethpandaops/assertoor:v0.0.17"
on:
push:
branches:
- main
- 'release/**'
pull_request:
branches:
- main
workflow_call:
workflow_dispatch:
jobs:
assertoor_regular_test:
runs-on: ubuntu-latest
concurrency:
group: >-
${{
(github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/')) &&
format('{0}-{1}-{2}', github.workflow, 'regular', github.run_id) ||
format('{0}-{1}-{2}', github.workflow, 'regular', github.ref)
}}
cancel-in-progress: true
steps:
- name: Fast checkout git repository
uses: actions/checkout@v6
- name: Conditional Docker Login
# Only login if we can. Workflow works without it but we want to avoid
# rate limiting by Docker Hub when possible. External repos don't
# have access to our Docker secrets.
# continue-on-error: transient Docker Hub network timeouts should not
# abort the entire workflow — the run proceeds without login (unlogged pull).
if: |
github.repository == 'erigontech/erigon' &&
github.actor != 'dependabot[bot]' &&
(github.event_name != 'pull_request' || !github.event.pull_request.head.repo.fork)
continue-on-error: true
uses: docker/login-action@v3
with:
username: ${{ secrets.ORG_DOCKERHUB_ERIGONTECH_USERNAME }}
password: ${{ secrets.ORG_DOCKERHUB_ERIGONTECH_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Restore cached third-party containers
id: cache-cl-images
uses: actions/cache@v4
with:
path: /tmp/docker-cache
key: docker-cl-${{ env.LIGHTHOUSE_IMAGE }}-${{ env.TEKU_IMAGE }}-${{ env.ASSERTOOR_IMAGE }}
- name: Load cached containers into daemon
if: steps.cache-cl-images.outputs.cache-hit == 'true'
run: |
docker load -i /tmp/docker-cache/lighthouse.tar
docker load -i /tmp/docker-cache/teku.tar
docker load -i /tmp/docker-cache/assertoor.tar
- name: Pull third-party containers and save to cache
if: steps.cache-cl-images.outputs.cache-hit != 'true'
run: |
mkdir -p /tmp/docker-cache
docker pull ${{ env.LIGHTHOUSE_IMAGE }}
docker pull ${{ env.TEKU_IMAGE }}
docker pull ${{ env.ASSERTOOR_IMAGE }}
docker save ${{ env.LIGHTHOUSE_IMAGE }} -o /tmp/docker-cache/lighthouse.tar
docker save ${{ env.TEKU_IMAGE }} -o /tmp/docker-cache/teku.tar
docker save ${{ env.ASSERTOOR_IMAGE }} -o /tmp/docker-cache/assertoor.tar
- name: Build erigon Docker image (with BuildKit layer cache)
uses: docker/build-push-action@v6
with:
context: .
load: true
tags: test/erigon:current
cache-from: type=gha,scope=kurtosis-erigon-build
cache-to: type=gha,mode=max,scope=kurtosis-erigon-build
- name: Run regular Kurtosis + assertoor tests
uses: ethpandaops/kurtosis-assertoor-github-action@v1
with:
enclave_name: "kurtosis-run1-${{ github.run_id }}"
ethereum_package_args: ".github/workflows/kurtosis/regular-assertoor.io"
ethereum_package_branch: "5.0.1"
kurtosis_extra_args: --verbosity detailed --cli-log-level trace
persistent_logs: "true"
assertoor_pectra_test:
runs-on: ubuntu-latest
concurrency:
group: >-
${{
(github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/')) &&
format('{0}-{1}-{2}', github.workflow, 'pectra', github.run_id) ||
format('{0}-{1}-{2}', github.workflow, 'pectra', github.ref)
}}
cancel-in-progress: true
steps:
- name: Fast checkout git repository
uses: actions/checkout@v6
- name: Conditional Docker Login
# Only login if we can. Workflow works without it but we want to avoid
# rate limiting by Docker Hub when possible. External repos don't
# have access to our Docker secrets.
# continue-on-error: transient Docker Hub network timeouts should not
# abort the entire workflow — the run proceeds without login (unlogged pull).
if: |
github.repository == 'erigontech/erigon' &&
github.actor != 'dependabot[bot]' &&
(github.event_name != 'pull_request' || !github.event.pull_request.head.repo.fork)
continue-on-error: true
uses: docker/login-action@v3
with:
username: ${{ secrets.ORG_DOCKERHUB_ERIGONTECH_USERNAME }}
password: ${{ secrets.ORG_DOCKERHUB_ERIGONTECH_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Restore cached third-party containers
id: cache-cl-images
uses: actions/cache@v4
with:
path: /tmp/docker-cache
key: docker-cl-${{ env.LIGHTHOUSE_IMAGE }}-${{ env.TEKU_IMAGE }}-${{ env.ASSERTOOR_IMAGE }}
- name: Load cached containers into daemon
if: steps.cache-cl-images.outputs.cache-hit == 'true'
run: |
docker load -i /tmp/docker-cache/lighthouse.tar
docker load -i /tmp/docker-cache/teku.tar
docker load -i /tmp/docker-cache/assertoor.tar
- name: Pull third-party containers and save to cache
if: steps.cache-cl-images.outputs.cache-hit != 'true'
run: |
mkdir -p /tmp/docker-cache
docker pull ${{ env.LIGHTHOUSE_IMAGE }}
docker pull ${{ env.TEKU_IMAGE }}
docker pull ${{ env.ASSERTOOR_IMAGE }}
docker save ${{ env.LIGHTHOUSE_IMAGE }} -o /tmp/docker-cache/lighthouse.tar
docker save ${{ env.TEKU_IMAGE }} -o /tmp/docker-cache/teku.tar
docker save ${{ env.ASSERTOOR_IMAGE }} -o /tmp/docker-cache/assertoor.tar
- name: Build erigon Docker image (with BuildKit layer cache)
uses: docker/build-push-action@v6
with:
context: .
load: true
tags: test/erigon:current
cache-from: type=gha,scope=kurtosis-erigon-build
cache-to: type=gha,mode=max,scope=kurtosis-erigon-build
- name: Run Pectra Kurtosis + assertoor tests
uses: ethpandaops/kurtosis-assertoor-github-action@v1
with:
enclave_name: "kurtosis-run2-${{ github.run_id }}"
ethereum_package_args: ".github/workflows/kurtosis/pectra.io"
ethereum_package_branch: "5.0.1"
kurtosis_extra_args: --verbosity detailed --cli-log-level trace
persistent_logs: "true"