Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions ci/erigon-nimbus-sync-config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Copyright (c) 2024-2025 Status Research & Development GmbH
# Licensed under either of
# * Apache License, version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or
# http://www.apache.org/licenses/LICENSE-2.0)
# * MIT license ([LICENSE-MIT](LICENSE-MIT) or
# http://opensource.org/licenses/MIT)
# at your option. This file may not be copied, modified, or distributed except
# according to those terms.

- client: nimbus-el
dockerfile:
build_args:
tag: master
- client: erigon
128 changes: 128 additions & 0 deletions ci/hive.groovy
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
#!/usr/bin/env groovy

/*
* Copyright (c) 2019-2025 Status Research & Development GmbH
* Licensed and distributed under either of
* * MIT license (license terms in the root directory or at https://opensource.org/licenses/MIT).
* * Apache v2 license (license terms in the root directory or at https://www.apache.org/licenses/LICENSE-2.0).
* at your option. This file may not be copied, modified, or distributed except according to those terms.
*/

library '[email protected]'

pipeline {
agent { label 'linux-01' }

parameters {
string(
name: 'SIMULATION_NAME',
defaultValue: 'ethereum/eest/consume-rlp',
description: 'The name of the simulation to run'
)
string(
name: 'CLIENT_TAG',
defaultValue: 'master',
description: 'The tag/branch for the client build'
)
string(
name: 'DOCKERFILE_TYPE',
defaultValue: '',
description: 'The dockerfile type (git) or leave empty to avoid rebuild'
)
string(
name: 'FIXTURES_URL',
defaultValue: 'https://github.com/ethereum/execution-spec-tests/releases/download/pectra-devnet-6%40v1.0.0/fixtures_pectra-devnet-6.tar.gz',
description: 'URL to the fixtures tarball'
)
string(
name: 'PARALLELISM',
defaultValue: '40',
description: 'Number of parallel processes to run'
)
string(
name: 'TIMEOUT_MINUTES',
defaultValue: '20',
description: 'Timeout for each stage in minutes'
)
booleanParam(
name: 'DOCKER_BUILDOUTPUT',
defaultValue: true,
description: 'Whether to output Docker build logs'
)
}

stages {
stage('Run Hive Tests') {
parallel {
stage('sync neth-nimbus') {
steps {
timeout(time: params.TIMEOUT_MINUTES.toInteger(), unit: 'MINUTES') {
dir('/home/jenkins/hive/') {
sh """
hive \
--sim "${params.SIMULATION_NAME}" \
--client-file="${WORKSPACE}/ci/neth-nimbus-sync-config.yml" \
--sim.buildarg fixtures=${params.FIXTURES_URL} \
--sim.parallelism=${params.PARALLELISM} \
--sim.loglevel 4 \
--docker.nocache hive/clients/nimbus-el \
--docker.pull true \
${params.DOCKER_BUILDOUTPUT ? '--docker.buildoutput' : ''}
"""
}
}
}
}
stage('sync reth-nimbus') {
steps {
timeout(time: params.TIMEOUT_MINUTES.toInteger(), unit: 'MINUTES') {
dir('/home/jenkins/hive/') {
sh """
hive \
--sim "${params.SIMULATION_NAME}" \
--client-file="${WORKSPACE}/ci/reth-nimbus-sync-config.yml" \
--sim.buildarg fixtures=${params.FIXTURES_URL} \
--sim.parallelism=${params.PARALLELISM} \
--sim.loglevel 4 \
--docker.nocache hive/clients/nimbus-el \
--docker.pull true \
${params.DOCKER_BUILDOUTPUT ? '--docker.buildoutput' : ''}
"""
}
}
}
}
stage('sync erigon-nimbus') {
steps {
timeout(time: params.TIMEOUT_MINUTES.toInteger(), unit: 'MINUTES') {
dir('/home/jenkins/hive/') {
sh """
hive \
--sim "${params.SIMULATION_NAME}" \
--client-file="${WORKSPACE}/ci/erigon-nimbus-sync-config.yml" \
--sim.buildarg fixtures=${params.FIXTURES_URL} \
--sim.parallelism=${params.PARALLELISM} \
--sim.loglevel 4 \
--docker.nocache hive/clients/nimbus-el \
--docker.pull true \
${params.DOCKER_BUILDOUTPUT ? '--docker.buildoutput' : ''}
"""
}
}
}
}
}
}
}

post {
cleanup {
script {
sh './scripts/hive-cleanup.sh'
}
}
always {
archiveArtifacts artifacts: 'simulation-results/**', allowEmptyArchive: true
}
}
}
14 changes: 14 additions & 0 deletions ci/neth-nimbus-sync-config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Copyright (c) 2024-2025 Status Research & Development GmbH
# Licensed under either of
# * Apache License, version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or
# http://www.apache.org/licenses/LICENSE-2.0)
# * MIT license ([LICENSE-MIT](LICENSE-MIT) or
# http://opensource.org/licenses/MIT)
# at your option. This file may not be copied, modified, or distributed except
# according to those terms.

- client: nimbus-el
dockerfile:
build_args:
tag: master
- client: nethermind
14 changes: 14 additions & 0 deletions ci/reth-nimbus-sync-config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# Copyright (c) 2024-2025 Status Research & Development GmbH
# Licensed under either of
# * Apache License, version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or
# http://www.apache.org/licenses/LICENSE-2.0)
# * MIT license ([LICENSE-MIT](LICENSE-MIT) or
# http://opensource.org/licenses/MIT)
# at your option. This file may not be copied, modified, or distributed except
# according to those terms.

- client: nimbus-el
dockerfile:
build_args:
tag: master
- client: reth
8 changes: 8 additions & 0 deletions scripts/hive-cleanup.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/usr/bin/env bash

hive -cleanup -cleanup.older-than 5m

# for dangling Docker resources
docker image prune -f
docker volume prune -f
docker network prune -f