Skip to content

Restore Taiko FCU timestamp validation allowing equal timestamps #405

Restore Taiko FCU timestamp validation allowing equal timestamps

Restore Taiko FCU timestamp validation allowing equal timestamps #405

Workflow file for this run

name: "Taiko Integration Tests"
on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
paths:
- "src/Nethermind/Nethermind.Taiko/**"
- ".github/workflows/ci-taiko.yml"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
integration_tests:
if: >-
${{ github.event.pull_request.draft == false
&& !startsWith(github.head_ref, 'release-please') }}
name: Integration tests
runs-on: [ubuntu-latest]
timeout-minutes: 20
env:
TAIKO_MONO_DIR: taiko-mono
PACAYA_FORK_TAIKO_MONO_DIR: pacaya-fork-taiko-mono
SHASTA_FORK_TAIKO_MONO_DIR: shasta-fork-taiko-mono
steps:
- name: Checkout Nethermind
uses: actions/checkout@v6
- name: Checkout taiko-mono
uses: actions/checkout@v6
with:
repository: taikoxyz/taiko-mono
path: ${{ env.TAIKO_MONO_DIR }}
ref: main
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version-file: ${{ env.TAIKO_MONO_DIR }}/go.mod
cache: true
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 9
run_install: false
- name: Install Node.js
uses: actions/setup-node@v5
with:
node-version: 20
cache: pnpm
cache-dependency-path: ${{ env.TAIKO_MONO_DIR }}/pnpm-lock.yaml
- name: Install dependencies
working-directory: ${{ env.TAIKO_MONO_DIR }}
shell: bash
run: pnpm install
- name: Checkout Pacaya fork
uses: actions/checkout@v6
with:
repository: taikoxyz/taiko-mono
path: >-
${{ format('{0}/{1}', env.TAIKO_MONO_DIR,
env.PACAYA_FORK_TAIKO_MONO_DIR) }}
ref: taiko-alethia-protocol-v2.3.0-devnet-shasta-test
- name: Checkout Shasta fork
uses: actions/checkout@v6
with:
repository: taikoxyz/taiko-mono
path: >-
${{ format('{0}/{1}', env.TAIKO_MONO_DIR,
env.SHASTA_FORK_TAIKO_MONO_DIR) }}
ref: taiko-alethia-protocol-v3.0.0
- name: Install pnpm dependencies for pacaya fork taiko-mono
working-directory: >-
${{ format('{0}/{1}', env.TAIKO_MONO_DIR,
env.PACAYA_FORK_TAIKO_MONO_DIR) }}
run: cd ./packages/protocol && pnpm install
- name: Install pnpm dependencies for shasta fork taiko-mono
working-directory: >-
${{ format('{0}/{1}', env.TAIKO_MONO_DIR,
env.SHASTA_FORK_TAIKO_MONO_DIR) }}
run: cd ./packages/protocol && pnpm install
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Docker Build Nethermind Client
run: |
image_name="nethermindeth/nethermind"
image_tag="${GITHUB_SHA:0:8}"
full_image="${image_name}:${image_tag}"
echo "Building Docker image: ${full_image}"
docker buildx build . \
--platform linux/amd64 \
-f Dockerfile \
-t "${full_image}" \
--load \
--build-arg BUILD_CONFIG=release \
--build-arg CI=true \
--build-arg COMMIT_HASH=${{ github.sha }} \
--build-arg SOURCE_DATE_EPOCH=$(git log -1 --format=%ct)
echo "IMAGE_TAG=${full_image}" >> $GITHUB_ENV
echo "Verifying image exists locally:"
docker images | grep "${image_name}" | grep "${image_tag}" || (echo "Error: Image not found locally" && exit 1)
- name: Install yq
run: |
sudo wget -qO /usr/local/bin/yq https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64
sudo chmod +x /usr/local/bin/yq
yq --version
- name: Update taiko-client docker-compose.yml with new image
working-directory: >-
${{ env.TAIKO_MONO_DIR }}/packages/taiko-client/internal/docker/nodes
run: |
docker_compose_file="docker-compose.yml"
if [ -f "$docker_compose_file" ]; then
echo "Current image in docker-compose.yml:"
yq eval '.services.l2_nmc.image' "$docker_compose_file"
echo "Updating docker-compose.yml with image: ${IMAGE_TAG}"
yq eval '.services.l2_nmc.image = "'"${IMAGE_TAG}"'"' -i "$docker_compose_file"
yq eval '.services.l2_nmc.pull_policy = "never"' -i "$docker_compose_file"
echo "Updated image in docker-compose.yml:"
yq eval '.services.l2_nmc.image' "$docker_compose_file"
echo "Pull policy set to:"
yq eval '.services.l2_nmc.pull_policy' "$docker_compose_file"
else
echo "Warning: docker-compose.yml not found at expected path"
exit 1
fi
- name: Run integration tests
timeout-minutes: 15
working-directory: >-
${{ env.TAIKO_MONO_DIR }}/packages/taiko-client
env:
L2_NODE: l2_nmc
run: >-
SHASTA_FORK_TAIKO_MONO=${GITHUB_WORKSPACE}/${{ format('{0}/{1}', env.TAIKO_MONO_DIR, env.SHASTA_FORK_TAIKO_MONO_DIR) }}
PACAYA_FORK_TAIKO_MONO=${GITHUB_WORKSPACE}/${{ format('{0}/{1}', env.TAIKO_MONO_DIR, env.PACAYA_FORK_TAIKO_MONO_DIR) }}
make test
- name: Codecov.io
uses: codecov/codecov-action@v5
with:
files: ${{ env.TAIKO_MONO_DIR }}/packages/taiko-client/coverage.out
flags: taiko-client
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}