Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
8c0e63c
feat: update constraints that is merge of rc11-hotfix and rc12
amkCha Oct 14, 2025
be348a8
feat: prover columns
OlivierBBB Oct 10, 2025
24d5dff
spotless
OlivierBBB Oct 10, 2025
a63cb90
feat: prover columns in RLP_TXN
OlivierBBB Oct 10, 2025
1842612
feat: update version in gradle properties
amkCha Oct 14, 2025
f07f006
feat: update constraints
amkCha Oct 14, 2025
e0b1baa
Chore: update Besu to 25.10.0-RC2-linea1 (#2419)
fab-10 Oct 10, 2025
a9d6409
chore: update besu version to 25.10.0-linea1
letypequividelespoubelles Oct 16, 2025
2be0697
Feat/update ethereum foundation tests for prague (#2405)
amkCha Oct 13, 2025
089f2b5
chore: update besu version to 25.10.0-linea1
letypequividelespoubelles Oct 16, 2025
e4ff372
fix: ReferenceTestProtocolSchedules method used in BlockchainReferenc…
amkCha Oct 16, 2025
288b24a
feat: run unit tests for releases
amkCha Oct 17, 2025
a238f0a
fix: permissions and conditions
amkCha Oct 17, 2025
a1a1cbe
Merge branch 'beta-v4.0-rc13-branch' of github.com:Consensys/linea-tr…
letypequividelespoubelles Oct 17, 2025
4e7ad7d
chore: update besu to 25.10.0-linea2
letypequividelespoubelles Oct 17, 2025
0656299
rollback merge
letypequividelespoubelles Oct 17, 2025
be248c1
update tracer release version
letypequividelespoubelles Oct 17, 2025
223fdab
fix: amend permissions on new manual release flow to allow jar uploads
amkCha Oct 17, 2025
472535b
fix: reapply fix for ref tests after Besu update
amkCha Oct 17, 2025
4240427
Feat/update ethereum foundation tests for prague (#2405)
amkCha Oct 13, 2025
6ab013e
feat: run units and replay in // of jar building for releases
amkCha Oct 18, 2025
3edbc80
ras
OlivierBBB Oct 20, 2025
d01d8ac
feat: update release version to rc17
OlivierBBB Oct 20, 2025
5d7333f
fix: gas calculation for TX skip
DavePearce Oct 29, 2025
b90b701
update release version to rc18
DavePearce Oct 29, 2025
5d4e10f
feat: detect if accounts have code via bytecode .size() rather than .…
OlivierBBB Nov 3, 2025
e9fcf70
feat: update release version to rc20
OlivierBBB Nov 3, 2025
20b38a0
Chore: set besuVersion=25.10.0-linea3 (#2442)
fab-10 Oct 21, 2025
c887ffd
Chore: set besuVersion=25.11.0-RC1-linea2 (#2459)
fab-10 Oct 31, 2025
a231089
feat: bump releaseVersion to beta-v4.0-rc21
OlivierBBB Nov 6, 2025
167c971
fix: @karim's fix for CANCUN blockchain reference tests
OlivierBBB Nov 7, 2025
22e7978
feat: update release version to rc22
OlivierBBB Nov 7, 2025
d92ab9c
perf: rm tracePreOpcode module loop and call stateless modules only w…
letypequividelespoubelles Nov 12, 2025
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
113 changes: 112 additions & 1 deletion .github/workflows/manual-release.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# The purpose of this workflow is to upload the necessary assets when
# a release is made manually on github.
name: Manual Release Assets
permissions:
contents: write
packages: write

on:
release:
Expand All @@ -13,6 +16,9 @@ on:
default: "v1.2.3"

jobs:
# ==================================================================
# Build - for release and for tests
# ==================================================================
build:
runs-on: ubuntu-latest
steps:
Expand Down Expand Up @@ -45,8 +51,113 @@ jobs:
jar_asset: ${{ github.workspace }}/plugins/build/libs/linea-tracer-${{ steps.config.outputs.TAG }}.jar
zip_asset: ${{ github.workspace }}/plugins/build/distributions/linea-tracer-${{ steps.config.outputs.TAG }}.zip
GH_TOKEN: ${{ github.token }}

- name: Set up GCC
uses: egor-tensin/setup-gcc@eaa888eb19115a521fa72b65cd94fe1f25bbcaac #v1.3

- name: Build without tests
run: ./gradlew build -x test -x spotlessCheck
env:
JAVA_OPTS: -Xmx2g -Dorg.gradle.daemon=false

- name: Store distribution artifacts
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: distributions
path: arithmetization/build/libs

- name: Run spotless
run: ./gradlew --no-daemon --parallel clean spotlessCheck

# ==================================================================
# Unit Tests
# ==================================================================
unit-tests-london:
needs: [ build ]
uses: ./.github/workflows/reusable-unit-tests.yml
with:
zkevm_fork: LONDON
tests-with-ssh: false

unit-tests-paris:
needs: [ build ]
uses: ./.github/workflows/reusable-unit-tests.yml
with:
zkevm_fork: PARIS
tests-with-ssh: false

unit-tests-shanghai:
needs: [ build ]
uses: ./.github/workflows/reusable-unit-tests.yml
with:
zkevm_fork: SHANGHAI
tests-with-ssh: false

unit-tests-cancun:
needs: [ build ]
uses: ./.github/workflows/reusable-unit-tests.yml
with:
zkevm_fork: CANCUN
tests-with-ssh: false

unit-tests-prague:
needs: [ build ]
uses: ./.github/workflows/reusable-unit-tests.yml
with:
zkevm_fork: PRAGUE
tests-with-ssh: false

# ==================================================================
# Fast Replay Tests
# ==================================================================
replay-tests:
needs: [ build ]
runs-on: gha-runner-scale-set-ubuntu-22.04-amd64-xxl
steps:
- name: Checkout repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
submodules: false

- name: Setup Environment
uses: ./.github/actions/setup-environment
with:
enable-ssh: false

- name: Run replay tests
run: GOMEMLIMIT=26GiB ./gradlew :arithmetization:fastReplayTests
env:
JAVA_OPTS: -Dorg.gradle.daemon=false
REPLAY_TESTS_PARALLELISM: 4
GOCORSET_FLAGS: -b1024 -v --ansi-escapes=false --report --air
ZKEVM_FORK: LONDON

- name: Upload test report
if: ${{ always() }}
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: replay-tests-report
path: arithmetization/build/reports/tests/**/*

- name: Upload jacoco fast replay tests coverage report
if: always()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: jacoco-fast-replay-tests-coverage-report
path: arithmetization/build/reports/jacoco/jacocoFastReplayTestsReport/**/*

- name: Upload jacoco fast replay tests exec file
if: always()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: jacoco-fast-replay-tests-exec-file
path: arithmetization/build/jacoco/fastReplayTests.exec

# ==================================================================
# Publish release post tests
# ==================================================================
publish:
needs: build
needs: [ build ]
if: github.event_name != 'pull_request'
runs-on: gha-runner-scale-set-ubuntu-22.04-amd64-med
env:
Expand Down
113 changes: 105 additions & 8 deletions .github/workflows/reference-blockchain-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,12 +70,109 @@ jobs:
failed_constraint: ${{ inputs.failed_constraint || '' }}
commit: ${{ inputs.commit || '' }}

# For Prague, we run blockchain tests coming from the execution spec tests
blockchain-reference-tests-prague:
uses: ./.github/workflows/reusable-blockchain-tests.yml
secrets: inherit
with:
zkevm_fork: PRAGUE
test_filter: ${{ inputs.test_filter || 'BlockchainReferenceTest_*' }}
failed_module: ${{ inputs.failed_module || '' }}
failed_constraint: ${{ inputs.failed_constraint || '' }}
commit: ${{ inputs.commit || '' }}
runs-on: gha-runner-scale-set-ubuntu-22.04-amd64-xxl
steps:
- name: Checkout repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
submodules: recursive
- name: get-branch-name
id: extract_branch
run: |
echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT

- name: Setup Test Environment
uses: ./.github/actions/setup-environment

- name: Download execution spec fixtures
run: ./gradlew :reference-tests:downloadExecutionSpecFixtures
env:
JAVA_OPTS: -Dorg.gradle.daemon=false

- name: Generate execution spec blockchain reference tests
run: ./gradlew :reference-tests:generateExecutionSpecBlockchainTests -Dorg.gradle.caching=true
env:
JAVA_OPTS: -Dorg.gradle.daemon=false

- name: Download artifact
uses: dawidd6/action-download-artifact@ac66b43f0e6a346234dd65d4d0c8fbb31cb316e5 # v11
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 execution spec blockchain tests
run: GOMAXPROCS=10 GOMEMLIMIT=20GiB ./gradlew referenceExecutionSpecBlockchainTests -x spotlessCheck --tests "${{ inputs.test_filter || 'BlockchainReferenceTest_*' }}"
timeout-minutes: 360
env:
REFERENCE_TESTS_PARALLELISM: 3
JAVA_OPTS: -Dorg.gradle.daemon=false
GOCORSET_FLAGS: -b1024 -v --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
ZKEVM_FORK: PRAGUE

- name: Upload artifact
if: always()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: failedBlockchainReferenceTests-PRAGUE.json
path: ${{ github.workspace }}/tmp/${{ steps.extract_branch.outputs.branch }}/

- name: Upload test report
if: always()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: blockchain-reference-tests-report-PRAGUE
path: reference-tests/build/reports/tests/**/*

- name: Upload jacoco exec spec blockchain tests coverage report
if: always()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: jacoco-blockchain-tests-coverage-report-PRAGUE
path: reference-tests/build/reports/jacoco/jacocoReferenceExecutionSpecBlockchainTestsReport/**/*

- name: Upload jacoco blockchain tests exec file
if: always()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: jacoco-blockchain-tests-exec-file-PRAGUE
path: reference-tests/build/jacoco/referenceExecutionSpecBlockchainTests.exec

- name: Extract Metrics
if: ${{ failure() || cancelled() }}
run: |
# Gather metrics
SUCCESS_COUNTER=$(cat $JSON_REPORT | sed -e "s/.*\"successCounter\":\([0-9]*\).*/\1/")
FAILED_COUNTER=$(cat $JSON_REPORT | sed -e "s/.*\"failedCounter\":\([0-9]*\).*/\1/")
ABORTED_COUNTER=$(cat $JSON_REPORT | sed -e "s/.*\"abortedCounter\":\([0-9]*\).*/\1/")
DISABLED_COUNTER=$(cat $JSON_REPORT | sed -e "s/.*\"disabledCounter\":\([0-9]*\).*/\1/")
# Set environment variables
echo "SUCCESS=$SUCCESS_COUNTER" >> $GITHUB_ENV
echo "FAILED=$FAILED_COUNTER" >> $GITHUB_ENV
echo "ABORTED=$ABORTED_COUNTER" >> $GITHUB_ENV
echo "DISABLED=$DISABLED_COUNTER" >> $GITHUB_ENV
env:
JSON_REPORT: ${{ github.workspace }}/tmp/${{ steps.extract_branch.outputs.branch }}/BlockchainReferenceTestOutcome.json

- name: Failure Notification
if: github.ref == 'refs/heads/arith-dev' && (failure() || cancelled())
uses: slackapi/slack-github-action@91efab103c0de0a537f72a35f6b8cda0ee76bf0a # v2.1.1
with:
webhook: ${{ secrets.SLACK_WEBHOOK_URL }}
webhook-type: webhook-trigger
payload: |
name: "Daily Blockchain"
status: "${{ env.SUCCESS }} successful, ${{ env.FAILED }} failed, ${{ env.ABORTED }} aborted, ${{ env.DISABLED }} disabled"
4 changes: 2 additions & 2 deletions .github/workflows/reusable-blockchain-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ jobs:
- name: Setup Test Environment
uses: ./.github/actions/setup-environment

- name: Generate block chain reference tests
- name: Generate blockchain reference tests
run: ./gradlew :reference-tests:generateBlockchainReferenceTests -Dorg.gradle.caching=true
env:
JAVA_OPTS: -Dorg.gradle.daemon=false
Expand Down Expand Up @@ -82,7 +82,7 @@ jobs:
if: always()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: blockchain-refrence-tests-report-${{ inputs.zkevm_fork }}
name: blockchain-reference-tests-report-${{ inputs.zkevm_fork }}
path: reference-tests/build/reports/tests/**/*

- name: Upload jacoco blockchain tests coverage report
Expand Down
35 changes: 0 additions & 35 deletions ac

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import net.consensys.linea.plugins.LineaCliOptions;
import net.consensys.linea.plugins.config.converters.AddressConverter;
import net.consensys.linea.plugins.config.converters.BytesConverter;
import org.apache.tuweni.bytes.Bytes;
import org.apache.tuweni.bytes.Bytes32;
import org.hyperledger.besu.datatypes.Address;
import picocli.CommandLine;

Expand All @@ -42,7 +42,7 @@ public class LineaL1L2BridgeSharedCliOptions implements LineaCliOptions {
paramLabel = "<HEX_STRING>",
converter = BytesConverter.class,
description = "The log topic of the L1 L2 bridge (default: ${DEFAULT-VALUE})")
private Bytes l1l2BridgeTopic = Bytes.EMPTY;
private Bytes32 l1l2BridgeTopic = Bytes32.ZERO;

private LineaL1L2BridgeSharedCliOptions() {}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,17 @@

import lombok.Builder;
import net.consensys.linea.plugins.LineaOptionsConfiguration;
import org.apache.tuweni.bytes.Bytes;
import org.apache.tuweni.bytes.Bytes32;
import org.hyperledger.besu.datatypes.Address;

/** The Linea L1 L2 bridge configuration. */
@Builder(toBuilder = true)
public record LineaL1L2BridgeSharedConfiguration(Address contract, Bytes topic)
public record LineaL1L2BridgeSharedConfiguration(Address contract, Bytes32 topic)
implements LineaOptionsConfiguration {

// = Hash(MessageSent(address,address,uint256,uint256,uint256,bytes,bytes32))
private static Bytes LINEA_L2L1TOPIC =
Bytes.fromHexString("0xe856c2b8bd4eb0027ce32eeaf595c21b0b6b4644b326e5b7bd80a1cf8db72e6c");
private static Bytes32 LINEA_L2L1TOPIC =
Bytes32.fromHexString("0xe856c2b8bd4eb0027ce32eeaf595c21b0b6b4644b326e5b7bd80a1cf8db72e6c");

private static final Address SEPOLIA_L2L1LOGS_SMC =
Address.fromHexString("0x971e727e956690b9957be6d51Ec16E73AcAC83A7");
Expand All @@ -41,6 +41,6 @@ public record LineaL1L2BridgeSharedConfiguration(Address contract, Bytes topic)
public static final LineaL1L2BridgeSharedConfiguration EMPTY =
LineaL1L2BridgeSharedConfiguration.builder()
.contract(Address.ZERO)
.topic(Bytes.EMPTY)
.topic(Bytes32.ZERO)
.build();
}
Loading
Loading