Restore Taiko FCU timestamp validation allowing equal timestamps #405
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 }} |