Skip to content

Daily Reference Blockchain Tests #214

Daily Reference Blockchain Tests

Daily Reference Blockchain Tests #214

name: Daily Reference Blockchain Tests
on:
schedule:
- cron: 0 21 * * 1-5
workflow_dispatch:
inputs:
failed_module:
description: Specific module to filter from failed tests
required: false
type: string
failed_constraint:
description: Specific module constrain pair to filter from failed tests
required: false
type: string
commit:
description: Commit to download artifact from
required: false
type: string
jobs:
blockchain-reference-tests:
runs-on: [ubuntu-latest-128]
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
submodules: recursive
- name: get-branch-name
id: extract_branch
run: |
echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT
- name: Set up JDK 21
uses: actions/setup-java@v3
with:
java-version: 21
distribution: temurin
- name: Setup Go Corset
uses: ./.github/actions/setup-go-corset
- name: Generate zkevm_for_reference_tests.bin
run: cd ./linea-constraints; make zkevm_for_reference_tests.bin -B; cd ..
- name: Generate block chain reference tests
run: ./gradlew :reference-tests:generateBlockchainReferenceTests -Dorg.gradle.parallel=true -Dorg.gradle.caching=true
env:
JAVA_OPTS: -Dorg.gradle.daemon=false
CORSET_FLAGS: fields,expand,expand,expand
- name: Download artifact
uses: dawidd6/action-download-artifact@v6
if: ${{ inputs.failed_module != '' }}
with:
name: failedBlockchainReferenceTests.json
path: ${{ github.workspace }}/tmp/${{ steps.extract_branch.outputs.branch }}/
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
commit: ${{ inputs.commit || '' }}
if_no_artifact_found: ignore
- name: Rename filter input file
if: ${{ inputs.failed_module != '' }}
run: mv ${{ github.workspace }}/tmp/${{ steps.extract_branch.outputs.branch }}/failedBlockchainReferenceTests.json ${{ github.workspace }}/tmp/${{ steps.extract_branch.outputs.branch }}/failedBlockchainReferenceTests-input.json
- name: Run reference blockchain tests
run: ./gradlew referenceBlockchainTests -x spotlessCheck
timeout-minutes: 180
continue-on-error: true
env:
REFERENCE_TESTS_PARALLELISM: 7
JAVA_OPTS: -Dorg.gradle.daemon=false
CORSET_FLAGS: disable
GOCORSET_FLAGS: -wd --ansi-escapes=false --report --air
FAILED_TEST_JSON_DIRECTORY: ${{ github.workspace }}/tmp/${{ steps.extract_branch.outputs.branch }}/
FAILED_MODULE: ${{ inputs.failed_module || '' }}
FAILED_CONSTRAINT: ${{ inputs.failed_constraint || '' }}
REFERENCE_TEST_FILTER_INPUT: failedBlockchainReferenceTests.json
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: failedBlockchainReferenceTests.json
path: ${{ github.workspace }}/tmp/${{ steps.extract_branch.outputs.branch }}/
- name: Upload test report
if: always()
uses: actions/upload-artifact@v4
with:
name: blockchain-refrence-tests-report
path: reference-tests/build/reports/tests/**/*
- name: Failure Notification
if: ${{ failure() || cancelled() }}
uses: slackapi/[email protected]
with:
webhook: ${{ secrets.SLACK_WEBHOOK_URL }}
webhook-type: webhook-trigger
payload: |
name: "Daily Reference Tests"
status: "${{ job.status }}"