Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
120 commits
Select commit Hold shift + click to select a range
e506b57
feat(estimator): uses the pessimistic estimate for CPW
AlexandreBelling Sep 4, 2025
553b1a8
feat(msethash): implements the multiset hash
AlexandreBelling Sep 4, 2025
0489c2c
feat(hierarchical): implement the hierarchical aggregation
AlexandreBelling Sep 16, 2025
40be437
tmp
AlexandreBelling Sep 27, 2025
8166f4d
feat(hierarchical): implements the segment counting
AlexandreBelling Sep 29, 2025
2f4aede
feat(segment-counting): adds the prover action for the hierarchical c…
AlexandreBelling Sep 29, 2025
d1cbec1
feat: adds the LPP commitment set for GL and LPP
AlexandreBelling Sep 30, 2025
02bd412
remove the segment index checker and the adjust the lpp commitment set
AlexandreBelling Sep 30, 2025
84cd3b2
feat: implements the merkle proof verification merkle proof
AlexandreBelling Sep 30, 2025
348ef5b
feat(mset): implements the general multiset hash for GL
AlexandreBelling Oct 1, 2025
b64fbd3
feat: adds the global sent/receive in the general multiset hash
AlexandreBelling Oct 1, 2025
bc3fc6a
feat: assignment of the n0/n1 hash in the multiset
AlexandreBelling Oct 1, 2025
fc9b106
feat: check of the n0/n1 hash in the multiset hash
AlexandreBelling Oct 1, 2025
08c7154
feat: add checks for isFirst and isLast
AlexandreBelling Oct 1, 2025
1dab7ab
adds the functional inputs
AlexandreBelling Oct 1, 2025
cda5de5
feat; add the dummy public inputs for LPP
AlexandreBelling Oct 1, 2025
fcededf
feat: adds the log-derivative/grand-prod/horner
AlexandreBelling Oct 1, 2025
3284be8
do the multiset hash for the shared randomness
AlexandreBelling Oct 1, 2025
d268310
feat: adds the gnark implementation of the GL and LPP module
AlexandreBelling Oct 1, 2025
aa108c6
fixup: add getPublicInputListGnark
AlexandreBelling Oct 1, 2025
0f0b21c
activate the prover and verifier actions
AlexandreBelling Oct 1, 2025
41cbcaf
fixup: bug in the noHash/N1Hash inclusion
AlexandreBelling Oct 1, 2025
7f67add
adds a merkle tree verification abstraction
AlexandreBelling Oct 2, 2025
cdcc6aa
comment out the old conglomeration and fixup the tests for compilation
AlexandreBelling Oct 3, 2025
ff195b0
fixup: small bug in the discoverer for small modules
AlexandreBelling Oct 8, 2025
9df3214
fix: remove bad logs
AlexandreBelling Oct 8, 2025
f63ecc8
fixup: declare and condition the N0Hash column when Horner exists only
AlexandreBelling Oct 8, 2025
1ce3596
minor updates to debug the GL and LPP modules
AlexandreBelling Oct 8, 2025
d2f9e0c
fixup: declarePiColumnAtRound
AlexandreBelling Oct 9, 2025
4fea77f
fixup: moduleGL when no global values are sent or received
AlexandreBelling Oct 9, 2025
c4122b8
fixup: the basic test passes
AlexandreBelling Oct 9, 2025
9a8dded
test that the mset cancels out
AlexandreBelling Oct 9, 2025
938642a
- remove CompiledDefault
AlexandreBelling Oct 10, 2025
6e73d4f
Prover/Support Proof and Verifying Key Cols Expr for Stitcher (#1399)
arijitdutta67 Sep 24, 2025
5fa4fc9
Prover/Support Non Power of Two Column Opening to Optimise Performanc…
arijitdutta67 Aug 21, 2025
0fa9643
phase out the old "expand" verifier column to use the one with zeroes…
AlexandreBelling Oct 10, 2025
a2d7cbb
feat: log the profile for MPTS
AlexandreBelling Oct 10, 2025
f35f683
perf: optimize the compilation parameters for the limitless prover
AlexandreBelling Oct 10, 2025
752d3ab
add in the gnark verifier action and check that it compiles
AlexandreBelling Oct 11, 2025
405cb86
fix: bug in stitching compiler
AlexandreBelling Oct 13, 2025
bb4c159
create a conglomeration test
AlexandreBelling Oct 13, 2025
2380c86
debugging the conglomeration proof generation
AlexandreBelling Oct 13, 2025
3413949
fix: the value in numModule GetVKMerkleProof
AlexandreBelling Oct 13, 2025
daab99b
the conglomeration test is passing
AlexandreBelling Oct 13, 2025
fa64f9f
clean the zkevm package
AlexandreBelling Oct 14, 2025
14b3878
debugging the serialization wizard
AlexandreBelling Oct 14, 2025
652c443
small optims: special handling of constant columns in the stitcher
AlexandreBelling Oct 14, 2025
fdffbd9
fixup: use aggregationArity for the loop bound
AlexandreBelling Oct 14, 2025
52a46e0
feat: add a fixed nb public input option to plonk in wizard
AlexandreBelling Oct 15, 2025
82f8b08
fix: check that we don't serialize empty columns
AlexandreBelling Oct 15, 2025
071fec8
fix: stackedColumn makes the optional params be pointers
AlexandreBelling Oct 15, 2025
dea8e0c
feat: implements the outer-proof for the new limitless prover
AlexandreBelling Oct 15, 2025
88a036a
fix: PackValue support nil pointers
AlexandreBelling Oct 15, 2025
1302e05
add testcase for the nil query problem
AlexandreBelling Oct 15, 2025
59f9443
Prover/hierarchical debugging files (#1616)
AlexandreBelling Oct 23, 2025
233a663
fix all backend compiler errors except run conglomeration
srinathln7 Oct 16, 2025
eb04b14
fix compiler warnings
srinathln7 Oct 16, 2025
0a30ff6
implement conglomeration pipeline
srinathln7 Oct 16, 2025
1ecd934
fix pipelining of conglomeration
srinathln7 Oct 16, 2025
e66b30a
use same ctx obj for entire flow
srinathln7 Oct 17, 2025
1d1e85a
clear stack once the conglomeration is done
srinathln7 Oct 17, 2025
0a993a0
Prover/experiment expression profiling (#1585)
AlexandreBelling Oct 21, 2025
cffa6ff
set debug mode to false in config
srinathln7 Oct 21, 2025
61eb7e3
rm unused testing.T ptr in conglomeration
srinathln7 Oct 23, 2025
530f47c
fix all compiler errors in serialization
srinathln7 Oct 23, 2025
bb3a863
(refactor): mv writing perf logs to util/profling pkg
srinathln7 Oct 23, 2025
816c554
replace protocol/serialization with latest optimized ser - incl custo…
srinathln7 Oct 23, 2025
d1e819c
all serialization tests pass
srinathln7 Oct 23, 2025
ab0798c
(fix): bug in loading compiled conglomeration asset
srinathln7 Oct 23, 2025
f5a9367
(feat): add fn to load verf. merkle tree seperately
srinathln7 Oct 23, 2025
8b8f7d9
Srinath/hier cong rebased (#1638)
srinathln7 Oct 27, 2025
964688d
add return after recover
srinathln7 Oct 27, 2025
808b4a0
use chan ptr for cong. proof
srinathln7 Oct 27, 2025
89e529e
rm `mt` ineffassign
srinathln7 Oct 28, 2025
6bd6bc7
(compiler err) init files for dist-prover-hier-cong
srinathln7 Oct 28, 2025
4cdb0a4
add more updated files fir dist-hier-cong
srinathln7 Oct 28, 2025
88d616d
fix compiler err in setup
srinathln7 Oct 28, 2025
9f97101
rm GL commit files
srinathln7 Oct 28, 2025
2f9610f
fix GL/LPP prover errors
srinathln7 Oct 28, 2025
b2eb557
Prover: Implement hierarchical conglomeration backend and optimize se…
srinathln7 Oct 29, 2025
99e0fcb
uncomment the outer-proof
AlexandreBelling Oct 29, 2025
305669b
(fix): selfrecursion multilayer serdetest
srinathln7 Oct 29, 2025
abb594b
skip conglomeration, dist wizard tests for CI
srinathln7 Oct 29, 2025
56ec26c
deref stack column.Natural ptr when propogating
srinathln7 Oct 29, 2025
bac7260
Merge branch 'prover/multiset-hashfunction' into prover/dist-prover-h…
srinathln7 Oct 30, 2025
ac1b77c
rm redundant Vector variable
srinathln7 Oct 30, 2025
8237549
fix compiler errs - backend
srinathln7 Oct 30, 2025
3c4451d
rm returning dummy outer proof in backend
srinathln7 Oct 30, 2025
4126b7e
pipeline cong. backend for dist. prover
srinathln7 Oct 30, 2025
65bc3f5
fix: outer-proof is now working
AlexandreBelling Oct 30, 2025
3ea64a1
Merge branch 'prover/multiset-hashfunction' of github.com:Consensys/l…
AlexandreBelling Oct 30, 2025
6a8b0e7
rm commits dir for rnd beacon
srinathln7 Oct 30, 2025
df75961
config changes for dist hier. cong
srinathln7 Oct 30, 2025
fb75452
Merge branch 'prover/multiset-hashfunction' into prover/dist-prover-h…
srinathln7 Oct 30, 2025
697c37e
adjust assest resolver for cong. hier
srinathln7 Oct 30, 2025
47a1c4f
fix bugs on backend - hier cong
srinathln7 Oct 30, 2025
6edd5c3
set GL job priority to be higher than LPP priority
srinathln7 Oct 30, 2025
28abf5e
sh script to run stateless workers
srinathln7 Oct 30, 2025
7d5c8b7
adjust config
srinathln7 Oct 30, 2025
f633db0
fix bug in LPP prover
srinathln7 Oct 30, 2025
3429bd2
Prover/dist prover latest (#1720)
srinathln7 Nov 11, 2025
ee00581
(fix): stop infinte loop in bootstrapper if trace file is not found
srinathln7 Nov 12, 2025
e446c17
(fix): register horner query params
srinathln7 Nov 13, 2025
b4878a5
adjust config mainnet
srinathln7 Nov 13, 2025
cf3d716
(fix): bug while displaying segmented module names
srinathln7 Nov 14, 2025
9aceebd
(fix): add pragma to mimc codehash fix
srinathln7 Nov 14, 2025
9c08294
add pragma handler for mimccodehash
srinathln7 Nov 19, 2025
5555be5
commit test_config files
srinathln7 Nov 19, 2025
9d0108f
add devnet cfg for test files
srinathln7 Nov 19, 2025
fa6903b
add expr docs 0 build & deploy new img
srinathln7 Nov 21, 2025
5dc5cc1
(fix): use defInp.ModuleIdx instead of segmentIndexInt to cal num of …
srinathln7 Nov 24, 2025
7d3fc76
stream decompression using io.ReadCloser
srinathln7 Nov 21, 2025
a4ca90e
(feat): add polling as fall back mechanism for fs.Notify
srinathln7 Nov 24, 2025
6b8b103
rm hardcode GOMEMLIMIT
srinathln7 Nov 25, 2025
982c889
rm fsnotify(inotify) completely and rely only on polling mechanism
srinathln7 Nov 26, 2025
2c0cb72
keep file in req dir after bootstrap job
srinathln7 Nov 26, 2025
9c1803f
(fix): always wait until all GL witness arrive before starting to wri…
srinathln7 Nov 27, 2025
0cc7dab
(fix): use seperate ctx for GL and LPP prover
srinathln7 Nov 27, 2025
04842f0
change bootstrap partial success suffix
srinathln7 Nov 27, 2025
50153b8
rename ExceDoneSuffix to BootstrapPartialSuffix
srinathln7 Nov 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ prover/symbolic/testdata/**/*.cbor binary
prover/prover-assets/**/**/**/*.bin binary
prover/prover-assets/**/**/**/**/*.bin binary
prover/prover-assets/kzgsrs/* binary
prover/zkevm/arithmetization/*.bin binary

*.woff2 binary

2 changes: 1 addition & 1 deletion .github/actions/setup-nodejs/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ inputs:
pnpm-version:
description: 'The version of pnpm to use'
required: true
default: '9.14.4'
default: '10.18.3'
pnpm-install-options:
description: 'The options to pass to pnpm install'
required: true
Expand Down
25 changes: 14 additions & 11 deletions .github/workflows/bridge-ui-e2e-tests.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Run Bridge UI E2E Tests
name: Bridge UI E2E Tests

permissions:
contents: read
Expand All @@ -23,7 +23,7 @@ on:
jobs:
run-e2e-tests:
if: github.event.pull_request.head.repo.fork == false
runs-on: gha-runner-scale-set-ubuntu-22.04-amd64-large
runs-on: gha-runner-scale-set-ubuntu-22.04-amd64-xl
steps:
- name: Checkout
uses: actions/checkout@v4
Expand Down Expand Up @@ -62,41 +62,44 @@ jobs:
env:
NEXT_PUBLIC_WALLET_CONNECT_ID: ${{ secrets.PUBLIC_WALLET_CONNECT_ID }}
NEXT_PUBLIC_INFURA_ID: ${{ secrets.PUBLIC_BRIDGE_UI_INFURA_ID }}
NEXT_PUBLIC_ALCHEMY_API_KEY: ${{ secrets.NEXT_PUBLIC_ALCHEMY_API_KEY }}
NEXT_PUBLIC_QUICKNODE_ID: ${{ secrets.PUBLIC_BRIDGE_UI_QUICKNODE_ID }}
NEXT_PUBLIC_DYNAMIC_ENVIRONMENT_ID: ${{ secrets.PUBLIC_DYNAMIC_SANDBOX_ENVIRONMENT_ID }}
NEXT_PUBLIC_WEB3_AUTH_CLIENT_ID: ${{ secrets.NEXT_PUBLIC_WEB3_AUTH_TESTNET_CLIENT_ID }}
NEXT_PUBLIC_LIFI_API_KEY: ${{ secrets.PUBLIC_LIFI_API_KEY }}
NEXT_PUBLIC_LIFI_INTEGRATOR_NAME: ${{ secrets.PUBLIC_LIFI_INTEGRATOR_NAME }}
NEXT_PUBLIC_ONRAMPER_API_KEY: ${{ secrets.PUBLIC_ONRAMPER_API_KEY }}
NEXT_PUBLIC_LAYERSWAP_API_KEY: ${{ secrets.PUBLIC_LAYERSWAP_API_KEY }}
NEXT_PUBLIC_ENVIRONMENT: local
REVALIDATE_SECRET: ${{ secrets.BRIDGE_UI_REVALIDATE_SECRET }}
CONTENTFUL_SPACE_ID: ${{ secrets.CONTENTFUL_SPACE_ID }}
NEXT_PUBLIC_E2E_TEST_MODE: true
NEXT_PUBLIC_IS_CCTP_ENABLED: false

- name: Install linux dependencies
run: |
sudo apt-get install --no-install-recommends -y xvfb

- name: Run unit tests
run: pnpm run -F bridge-ui test:unit
env:
# Can run unit tests in parallel
CI: "false"
DOTENV_CONFIG_PATH: ".env.production"
NEXT_PUBLIC_INFURA_ID: ${{ secrets.PUBLIC_BRIDGE_UI_INFURA_ID }}
NEXT_PUBLIC_ALCHEMY_API_KEY: ${{ secrets.NEXT_PUBLIC_ALCHEMY_API_KEY }}
NEXT_PUBLIC_LIFI_API_KEY: "placeholder"
NEXT_PUBLIC_LIFI_INTEGRATOR_NAME: "placeholder"
NEXT_PUBLIC_WALLET_CONNECT_ID: "placeholder"
NEXT_PUBLIC_DYNAMIC_ENVIRONMENT_ID: "placeholder"
NEXT_PUBLIC_WEB3_AUTH_CLIENT_ID: "placeholder"
NEXT_PUBLIC_QUICKNODE_ID: "placeholder"
NEXT_PUBLIC_E2E_TEST_MODE: false

- name: Login to Docker Hub
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 #v3.4.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Pull all images with retry
uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 #v3.0.2
with:
Expand Down Expand Up @@ -129,21 +132,21 @@ jobs:
run: |
docker ps -la && docker images
docker container ls -a

- name: Initialize Metamask testing fixture
run: xvfb-run pnpm run -F bridge-ui build:cache
run: xvfb-run -a pnpm run -F bridge-ui build:cache
env:
E2E_TEST_SEED_PHRASE: "test test test test test test test test test test test junk"
E2E_TEST_WALLET_PASSWORD: "TestPassword!"

# Prerequisite - Testing wallet must have >0 ETH and USDC on Sepolia
- name: Run E2E tests
run: xvfb-run pnpm run -F bridge-ui test:e2e:headful
run: xvfb-run -a pnpm run -F bridge-ui test:e2e:headful
env:
# Do not run E2E tests in parallel. Especially blockchain tx where nonces can collide.
CI: "true"
DOTENV_CONFIG_PATH: ".env.test"
NEXT_PUBLIC_DYNAMIC_ENVIRONMENT_ID: ${{ secrets.PUBLIC_DYNAMIC_SANDBOX_ENVIRONMENT_ID }}
NEXT_PUBLIC_WEB3_AUTH_CLIENT_ID: ${{ secrets.NEXT_PUBLIC_WEB3_AUTH_TESTNET_CLIENT_ID }}

- name: Archive Playwright report
uses: actions/upload-artifact@v4
Expand Down
10 changes: 7 additions & 3 deletions .github/workflows/bridge-ui-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ jobs:
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 #v3.11.1

Expand All @@ -69,8 +69,9 @@ jobs:
NEXT_PUBLIC_ENVIRONMENT=${{ env.NEXT_PUBLIC_ENVIRONMENT }}
NEXT_PUBLIC_WALLET_CONNECT_ID=${{ env.NEXT_PUBLIC_WALLET_CONNECT_ID }}
NEXT_PUBLIC_INFURA_ID=${{ env.NEXT_PUBLIC_INFURA_ID }}
NEXT_PUBLIC_ALCHEMY_API_KEY=${{ env.NEXT_PUBLIC_ALCHEMY_API_KEY }}
NEXT_PUBLIC_QUICKNODE_ID=${{ env.NEXT_PUBLIC_QUICKNODE_ID }}
NEXT_PUBLIC_DYNAMIC_ENVIRONMENT_ID=${{ env.NEXT_PUBLIC_DYNAMIC_ENVIRONMENT_ID }}
NEXT_PUBLIC_WEB3_AUTH_CLIENT_ID=${{ env.NEXT_PUBLIC_WEB3_AUTH_CLIENT_ID }}
NEXT_PUBLIC_LIFI_API_KEY=${{ env.NEXT_PUBLIC_LIFI_API_KEY }}
NEXT_PUBLIC_LIFI_INTEGRATOR_NAME=${{ env.NEXT_PUBLIC_LIFI_INTEGRATOR_NAME }}
NEXT_PUBLIC_ONRAMPER_API_KEY=${{ env.NEXT_PUBLIC_ONRAMPER_API_KEY }}
Expand All @@ -79,17 +80,20 @@ jobs:
cache-to: type=registry,ref=consensys/linea-bridge-ui:buildcache,mode=max
secrets: |
"revalidate_secret=${{ env.REVALIDATE_SECRET }}"
"contentful_space_id=${{ secrets.CONTENTFUL_SPACE_ID }}"
env:
NEXT_PUBLIC_WALLET_CONNECT_ID: ${{ secrets.PUBLIC_WALLET_CONNECT_ID }}
NEXT_PUBLIC_INFURA_ID: ${{ secrets.PUBLIC_BRIDGE_UI_INFURA_ID }}
NEXT_PUBLIC_ALCHEMY_API_KEY: ${{ secrets.NEXT_PUBLIC_ALCHEMY_API_KEY }}
NEXT_PUBLIC_QUICKNODE_ID: ${{ secrets.PUBLIC_BRIDGE_UI_QUICKNODE_ID }}
NEXT_PUBLIC_DYNAMIC_ENVIRONMENT_ID: ${{ matrix.environment == 'production' && secrets.PUBLIC_DYNAMIC_ENVIRONMENT_ID || secrets.PUBLIC_DYNAMIC_SANDBOX_ENVIRONMENT_ID }}
NEXT_PUBLIC_WEB3_AUTH_CLIENT_ID: ${{ matrix.environment == 'production' && secrets.NEXT_PUBLIC_WEB3_AUTH_CLIENT_ID || secrets.NEXT_PUBLIC_WEB3_AUTH_TESTNET_CLIENT_ID }}
NEXT_PUBLIC_LIFI_API_KEY: ${{ secrets.PUBLIC_LIFI_API_KEY }}
NEXT_PUBLIC_LIFI_INTEGRATOR_NAME: ${{ secrets.PUBLIC_LIFI_INTEGRATOR_NAME }}
NEXT_PUBLIC_ONRAMPER_API_KEY: ${{ secrets.PUBLIC_ONRAMPER_API_KEY }}
NEXT_PUBLIC_LAYERSWAP_API_KEY: ${{ secrets.PUBLIC_LAYERSWAP_API_KEY }}
NEXT_PUBLIC_ENVIRONMENT: ${{ matrix.environment }}
REVALIDATE_SECRET: ${{ secrets.BRIDGE_UI_REVALIDATE_SECRET }}
CONTENTFUL_SPACE_ID: ${{ secrets.CONTENTFUL_SPACE_ID }}

test-build:
if: github.event.pull_request.head.repo.fork == true
Expand Down
16 changes: 16 additions & 0 deletions .github/workflows/build-and-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@ on:
transaction_exclusion_api_changed:
required: true
type: string
build_linea_besu_package:
required: true
type: string
coordinator_image_tagged:
required: true
type: string
Expand All @@ -42,6 +45,11 @@ on:
transaction_exclusion_api_image_tagged:
required: true
type: string
outputs:
linea_besu_package_tag:
value: ${{ jobs.linea_besu_package.outputs.linea_besu_package_tag }}
expected_traces_api_version:
value: ${{ jobs.linea_besu_package.outputs.expected_traces_api_version }}
secrets:
DOCKERHUB_USERNAME:
required: false
Expand Down Expand Up @@ -88,3 +96,11 @@ jobs:
image_name: consensys/linea-transaction-exclusion-api
push_image: ${{ inputs.push_image }}
secrets: inherit

linea_besu_package:
uses: ./.github/workflows/linea-besu-package-build-and-upload.yml
if: ${{ always() && (inputs.build_linea_besu_package == 'true') }}
with:
release_tag_prefix: ''
with_besu_fleet_plugin: false
secrets: inherit
71 changes: 69 additions & 2 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,76 @@ on:
workflow_call:

jobs:
changes:
name: Detect Changes
runs-on: gha-runner-scale-set-ubuntu-22.04-amd64-small
outputs:
languages: ${{ steps.set-matrix.outputs.languages }}
permissions:
contents: read
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0

- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 #v3.0.2
id: changes
with:
filters: |
go:
- '**/*.go'
- '**/go.mod'
- '**/go.sum'
java-kotlin:
- '**/*.java'
- '**/*.kt'
- '**/*.gradle'
- '**/*.gradle.kts'
- '**/pom.xml'
- '**/build.gradle'
- '**/gradle.properties'
- '**/settings.gradle'
- 'build.gradle'
- 'gradle.properties'
- 'settings.gradle'
javascript-typescript:
- '**/*.js'
- '**/*.ts'
- '**/*.tsx'
- '**/*.jsx'
- '**/*.json'
- '**/package.json'
- '**/tsconfig.json'
- '**/pnpm-lock.yaml'
- '**/yarn.lock'
- '**/package-lock.json'
actions:
- '.github/workflows/**'
- '.github/actions/**'
python:
- '**/*.py'
- '**/requirements.txt'
- '**/pyproject.toml'
- '**/setup.py'
- '**/Pipfile'
- name: Build matrix
id: set-matrix
run: |
languages=()
if [ "${{ steps.changes.outputs.go }}" == "true" ]; then languages+=("\"go\""); fi
if [ "${{ steps.changes.outputs.java-kotlin }}" == "true" ]; then languages+=("\"java-kotlin\""); fi
if [ "${{ steps.changes.outputs.javascript-typescript }}" == "true" ]; then languages+=("\"javascript-typescript\""); fi
if [ "${{ steps.changes.outputs.actions }}" == "true" ]; then languages+=("\"actions\""); fi
if [ "${{ steps.changes.outputs.python }}" == "true" ]; then languages+=("\"python\""); fi

echo "languages=[$(IFS=,; echo "${languages[*]}")]" >> $GITHUB_OUTPUT

analyze:
name: Analyze
runs-on: gha-runner-scale-set-ubuntu-22.04-amd64-med
needs: changes
if: ${{ needs.changes.outputs.languages != '[]' }}
permissions:
actions: read
contents: read
Expand All @@ -15,7 +82,7 @@ jobs:
strategy:
fail-fast: false
matrix:
language: [ 'go', 'java-kotlin', 'javascript-typescript', 'actions', 'python' ]
language: ${{ fromJson(needs.changes.outputs.languages) }}

steps:
- name: Checkout repository
Expand All @@ -35,7 +102,7 @@ jobs:
java-version: 21

- name: Autobuild
if: matrix.language != 'github-actions'
if: matrix.language != 'actions'
uses: github/codeql-action/autobuild@v3
env:
GITHUB_TOKEN: ${{ secrets._GITHUB_TOKEN_RELEASE_ACCESS }}
Expand Down
90 changes: 90 additions & 0 deletions .github/workflows/linea-besu-package-build-and-upload.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
name: Reusable linea-besu-package build and upload

permissions:
contents: read
actions: read
packages: read

on:
workflow_call:
inputs:
release_tag_prefix:
required: true
type: string
with_besu_fleet_plugin:
required: true
type: boolean
outputs:
linea_besu_package_tag:
value: ${{ jobs.build-and-upload-artifact.outputs.linea_besu_package_tag }}
expected_traces_api_version:
value: ${{ jobs.build-and-upload-artifact.outputs.expected_traces_api_version }}
dockerimage:
value: ${{ jobs.build-and-upload-artifact.outputs.dockerimage }}
secrets:
DOCKERHUB_USERNAME:
required: false
DOCKERHUB_TOKEN:
required: false
FLEET_GITHUB_APP_ID:
required: false
FLEET_GITHUB_APP_PRIVATE_KEY:
required: false

jobs:
build-and-upload-artifact:
runs-on: gha-runner-scale-set-ubuntu-22.04-amd64-med
outputs:
linea_besu_package_tag: ${{ steps.assemble.outputs.dockertag }}
expected_traces_api_version: ${{ steps.assemble.outputs.tracer_plugin_version }}
dockerimage: ${{ steps.assemble.outputs.dockerimage }}
steps:
- name: checkout
uses: actions/checkout@v4

- name: build the linea artifacts
id: assemble
uses: ./.github/actions/linea-besu-package/assemble
with:
release_tag_prefix: ${{ inputs.release_tag_prefix }}
fetch_besu_fleet_plugin: ${{ inputs.with_besu_fleet_plugin }}
fleet_github_app_id: ${{ secrets.FLEET_GITHUB_APP_ID }}
fleet_github_app_private_key: ${{ secrets.FLEET_GITHUB_APP_PRIVATE_KEY }}

- name: set up docker buildx
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 #v3.11.1

- name: set docker build args
run: |
echo "Building docker tag: ${{ steps.assemble.outputs.dockertag }}"
echo "Building docker image: ${{ steps.assemble.outputs.dockerimage }}"

- name: build the combined manifest
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 #v6.18.0
env:
DOCKER_BUILD_SUMMARY: false
with:
context: linea-besu-package/linea-besu/.
platforms: linux/amd64
provenance: false
build-args: |
VERSION=${{ steps.assemble.outputs.dockertag }}
VCS_REF=${{ github.sha }}
BUILD_DATE=${{ steps.assemble.outputs.build_date }}
load: true
push: false
tags: |
consensys/linea-besu-package:${{ steps.assemble.outputs.dockertag }}

- name: Save Docker image as artifact
run: |
docker images
docker save consensys/linea-besu-package:${{ steps.assemble.outputs.dockertag }} | gzip > linea-besu-package-image.tar.gz
shell: bash

- name: Upload Docker image artifact
uses: actions/upload-artifact@v4
with:
name: linea-besu-package
path: linea-besu-package-image.tar.gz
retention-days: 1
Loading