Skip to content

Commit ae26aa5

Browse files
committed
Merge branch 'main' into feat/bls-glue
2 parents c44f427 + f9358b9 commit ae26aa5

File tree

1,765 files changed

+56417
-44096
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,765 files changed

+56417
-44096
lines changed
Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
---
2+
name: 'assemble'
3+
description: 'Composite action to assemble the artifacts for the targer environment'
4+
5+
inputs:
6+
release_tag_prefix:
7+
description: 'Custom release tag prefix'
8+
required: true
9+
compile_release_notes:
10+
description: 'Compile release notes or not'
11+
required: false
12+
default: 'false'
13+
14+
outputs:
15+
workflow_id:
16+
description: workflow id
17+
value: ${{ steps.workflowdetails.outputs.id }}
18+
19+
build_date:
20+
description: build date
21+
value: ${{ steps.workflowdetails.outputs.build_date }}
22+
23+
dockertag:
24+
description: docker tag
25+
value: ${{ steps.dockertag.outputs.dockertag }}
26+
27+
dockerimage:
28+
description: docker image
29+
value: ${{ steps.dockerimage.outputs.dockerimage }}
30+
31+
releasetag:
32+
description: release tag
33+
value: ${{ steps.releasetag.outputs.releasetag }}
34+
35+
tracer_plugin_version:
36+
description: tracer plugin version
37+
value: ${{ steps.dotenv.outputs.LINEA_TRACER_PLUGIN_VERSION }}
38+
39+
runs:
40+
using: "composite"
41+
steps:
42+
- name: Checkout tools repo
43+
uses: actions/checkout@v4
44+
with:
45+
repository: Consensys/docs-gha
46+
path: .docs-gha
47+
48+
- name: get workflow_details
49+
id: workflowdetails
50+
shell: bash
51+
run: |
52+
echo "id=${{ github.run_id }}" >> $GITHUB_OUTPUT
53+
echo "build_date=$(date --rfc-3339=date)" >> $GITHUB_OUTPUT
54+
55+
- name: get versions via dotenv
56+
id: dotenv
57+
uses: falti/dotenv-action@v1
58+
with:
59+
path: linea-besu-package/versions.env
60+
mode: development
61+
keys-case: lower
62+
log-variables: true
63+
load-mode: strict
64+
65+
- name: Set timestamp
66+
id: timestamp
67+
shell: bash
68+
run: |
69+
echo "TIMESTAMP=$(date -u +%Y%m%d%H%M%S)" >> $GITHUB_OUTPUT
70+
71+
- name: Compute commit hash
72+
id: commithash
73+
shell: bash
74+
run: |
75+
# For PR, GITHUB_SHA is NOT the last commit pushed onto the PR branch - https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows#pull_request
76+
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
77+
echo "commithash=$(git rev-parse --short=7 ${{ github.event.pull_request.head.sha }})" >> $GITHUB_OUTPUT
78+
else
79+
echo "commithash=$(git rev-parse --short=7 $GITHUB_SHA)" >> $GITHUB_OUTPUT
80+
fi
81+
82+
- name: set docker tag
83+
id: dockertag
84+
shell: bash
85+
run: |
86+
if [ -n "${{ inputs.release_tag_prefix }}" ]; then
87+
echo "dockertag=${{ inputs.release_tag_prefix }}-${{ steps.timestamp.outputs.TIMESTAMP }}-${{ steps.commithash.outputs.commithash }}" >> $GITHUB_OUTPUT
88+
else
89+
echo "dockertag=${{ steps.dotenv.outputs.LINEA_TRACER_PLUGIN_VERSION }}-${{ steps.timestamp.outputs.TIMESTAMP }}-${{ steps.commithash.outputs.commithash }}" >> $GITHUB_OUTPUT
90+
fi
91+
92+
- name: set release tag
93+
id: releasetag
94+
shell: bash
95+
run: |
96+
echo "releasetag=${{ steps.dockertag.outputs.dockertag }}" >> $GITHUB_OUTPUT
97+
98+
- name: set docker image
99+
id: dockerimage
100+
shell: bash
101+
run: |
102+
echo "dockerimage=consensys/linea-besu-package:${{ steps.dockertag.outputs.dockertag }}" >> "$GITHUB_OUTPUT"
103+
104+
- name: assemble the packages to linea-besu and show folder structure
105+
shell: bash
106+
run: |
107+
cd linea-besu-package
108+
make assemble
109+
mv ./tmp/besu ./linea-besu
110+
sudo apt update
111+
sudo apt-get install --no-install-recommends --assume-yes tree
112+
tree .
113+
114+
- name: compile release notes
115+
id: release_create_artifacts
116+
if: ${{ inputs.compile_release_notes == 'true' }}
117+
shell: bash
118+
run: |
119+
mkdir release && cd release
120+
tar -czvf linea-besu-package-${{ steps.dockertag.outputs.dockertag }}.tar.gz ../linea-besu-package/linea-besu/
121+
122+
echo "# Release Artifact: Linea Besu Package" > output.md
123+
echo "**Name:** linea-besu-package-${{ steps.dockertag.outputs.dockertag }}.tar.gz" >> output.md
124+
echo "**SHA256:** $(sha256sum linea-besu-package-${{ steps.dockertag.outputs.dockertag }}.tar.gz | awk '{ print $1 }' )" >> output.md
125+
echo "**From:** [${{ github.ref_name }} (${{ github.event_name }})](https://github.com/Consensys/linea-monorepo/actions/runs/${{ github.run_id }})" >> output.md
126+
echo "" >> output.md
127+
128+
echo "### Besu and Plugin Details" >> output.md
129+
echo "| Module | Version | SHA-256 |" >> output.md
130+
echo "|--------|---------|--------------|" >> output.md
131+
echo "| linea-besu | ${{ steps.dotenv.outputs.LINEA_BESU_TAR_GZ }} | $(sha256sum /tmp/${{ steps.dotenv.outputs.LINEA_BESU_FILENAME_PREFIX }}-${{ steps.dotenv.outputs.LINEA_BESU_TAR_GZ }}.tar.gz | awk '{ print $1 }' ) |" >> output.md
132+
echo "| linea-sequencer-plugin | ${{ steps.dotenv.outputs.LINEA_SEQUENCER_PLUGIN_VERSION }} | $(sha256sum ../linea-besu-package/linea-besu/besu/plugins/linea-sequencer-v${{ steps.dotenv.outputs.LINEA_SEQUENCER_PLUGIN_VERSION }}.jar | awk '{ print $1 }' ) |" >> output.md
133+
echo "| linea-tracer-plugin | ${{ steps.dotenv.outputs.LINEA_TRACER_PLUGIN_VERSION }} | $(sha256sum ../linea-besu-package/linea-besu/besu/plugins/linea-tracer-${{ steps.dotenv.outputs.LINEA_TRACER_PLUGIN_VERSION }}.jar | awk '{ print $1 }' ) |" >> output.md
134+
echo "| linea-finalized-tag-updater-plugin | ${{ steps.dotenv.outputs.LINEA_FINALIZED_TAG_UPDATER_PLUGIN_VERSION }} | $(sha256sum ../linea-besu-package/linea-besu/besu/plugins/linea-finalized-tag-updater-v${{ steps.dotenv.outputs.LINEA_FINALIZED_TAG_UPDATER_PLUGIN_VERSION }}.jar | awk '{ print $1 }' ) |" >> output.md
135+
echo "| linea-staterecovery-plugin | ${{ steps.dotenv.outputs.LINEA_STATERECOVERY_PLUGIN_VERSION }} | $(sha256sum ../linea-besu-package/linea-besu/besu/plugins/linea-staterecovery-besu-plugin-v${{ steps.dotenv.outputs.LINEA_STATERECOVERY_PLUGIN_VERSION }}.jar | awk '{ print $1 }' ) |" >> output.md
136+
echo "| shomei-plugin | ${{ steps.dotenv.outputs.SHOMEI_PLUGIN_VERSION }} | $(sha256sum ../linea-besu-package/linea-besu/besu/plugins/besu-shomei-plugin-v${{ steps.dotenv.outputs.SHOMEI_PLUGIN_VERSION }}.jar | awk '{ print $1 }' ) |" >> output.md
137+
echo "" >> output.md

.github/workflows/bridge-ui-e2e-tests.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,9 @@ jobs:
5858
NEXT_PUBLIC_QUICKNODE_ID: ${{ secrets.PUBLIC_BRIDGE_UI_QUICKNODE_ID }}
5959
NEXT_PUBLIC_DYNAMIC_ENVIRONMENT_ID: ${{ secrets.PUBLIC_DYNAMIC_SANDBOX_ENVIRONMENT_ID }}
6060
NEXT_PUBLIC_LIFI_API_KEY: ${{ secrets.PUBLIC_LIFI_API_KEY }}
61+
NEXT_PUBLIC_LIFI_INTEGRATOR_NAME: ${{ secrets.PUBLIC_LIFI_INTEGRATOR_NAME }}
6162
NEXT_PUBLIC_ONRAMPER_API_KEY: ${{ secrets.PUBLIC_ONRAMPER_API_KEY }}
63+
NEXT_PUBLIC_LAYERSWAP_API_KEY: ${{ secrets.PUBLIC_LAYERSWAP_API_KEY }}
6264

6365
- name: Install linux dependencies
6466
run: |
@@ -79,6 +81,7 @@ jobs:
7981
CI: "false"
8082
NEXT_PUBLIC_INFURA_ID: ${{ secrets.PUBLIC_BRIDGE_UI_INFURA_ID }}
8183
NEXT_PUBLIC_LIFI_API_KEY: "placeholder"
84+
NEXT_PUBLIC_LIFI_INTEGRATOR_NAME: "placeholder"
8285
NEXT_PUBLIC_WALLET_CONNECT_ID: "placeholder"
8386
NEXT_PUBLIC_DYNAMIC_ENVIRONMENT_ID: "placeholder"
8487
NEXT_PUBLIC_QUICKNODE_ID: "placeholder"

.github/workflows/bridge-ui-publish.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ jobs:
5454
with:
5555
context: .
5656
file: ./bridge-ui/Dockerfile
57-
platforms: linux/amd64,linux/arm64
57+
platforms: linux/amd64
5858
push: ${{ env.DOCKERHUB_USERNAME != '' && env.DOCKERHUB_TOKEN != '' }}
5959
tags: consensys/linea-bridge-ui:${{ env.DOCKER_TAG }}
6060
build-args: |
@@ -64,7 +64,9 @@ jobs:
6464
NEXT_PUBLIC_QUICKNODE_ID=${{ env.NEXT_PUBLIC_QUICKNODE_ID }}
6565
NEXT_PUBLIC_DYNAMIC_ENVIRONMENT_ID=${{ env.NEXT_PUBLIC_DYNAMIC_ENVIRONMENT_ID }}
6666
NEXT_PUBLIC_LIFI_API_KEY=${{ env.NEXT_PUBLIC_LIFI_API_KEY }}
67+
NEXT_PUBLIC_LIFI_INTEGRATOR_NAME=${{ env.NEXT_PUBLIC_LIFI_INTEGRATOR_NAME }}
6768
NEXT_PUBLIC_ONRAMPER_API_KEY=${{ env.NEXT_PUBLIC_ONRAMPER_API_KEY }}
69+
NEXT_PUBLIC_LAYERSWAP_API_KEY=${{ env.NEXT_PUBLIC_LAYERSWAP_API_KEY }}
6870
cache-from: type=registry,ref=consensys/linea-bridge-ui:buildcache
6971
cache-to: type=registry,ref=consensys/linea-bridge-ui:buildcache,mode=max
7072
env:
@@ -73,7 +75,9 @@ jobs:
7375
NEXT_PUBLIC_QUICKNODE_ID: ${{ secrets.PUBLIC_BRIDGE_UI_QUICKNODE_ID }}
7476
NEXT_PUBLIC_DYNAMIC_ENVIRONMENT_ID: ${{ secrets.PUBLIC_DYNAMIC_ENVIRONMENT_ID }}
7577
NEXT_PUBLIC_LIFI_API_KEY: ${{ secrets.PUBLIC_LIFI_API_KEY }}
78+
NEXT_PUBLIC_LIFI_INTEGRATOR_NAME: ${{ secrets.PUBLIC_LIFI_INTEGRATOR_NAME }}
7679
NEXT_PUBLIC_ONRAMPER_API_KEY: ${{ secrets.PUBLIC_ONRAMPER_API_KEY }}
80+
NEXT_PUBLIC_LAYERSWAP_API_KEY: ${{ secrets.PUBLIC_LAYERSWAP_API_KEY }}
7781

7882
test-build:
7983
if: github.event.pull_request.head.repo.fork == true
@@ -92,3 +96,5 @@ jobs:
9296

9397
- name: Test Build Bridge UI
9498
run: pnpm run -F bridge-ui build;
99+
env:
100+
NODE_OPTIONS: --max-old-space-size=8192 # Temporary fix for out of memory error

.github/workflows/build-and-publish.yml

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,6 @@ on:
2222
prover_changed:
2323
required: true
2424
type: string
25-
traces_api_facade_changed:
26-
required: true
27-
type: string
2825
transaction_exclusion_api_changed:
2926
required: true
3027
type: string
@@ -37,9 +34,6 @@ on:
3734
postman_image_tagged:
3835
required: true
3936
type: string
40-
traces_api_facade_image_tagged:
41-
required: true
42-
type: string
4337
transaction_exclusion_api_image_tagged:
4438
required: true
4539
type: string
@@ -80,16 +74,6 @@ jobs:
8074
push_image: ${{ inputs.push_image }}
8175
secrets: inherit
8276

83-
traces-api-facade:
84-
uses: ./.github/workflows/traces-api-facade-build-and-publish.yml
85-
if: ${{ always() && (inputs.traces_api_facade_changed == 'true' || inputs.traces_api_facade_image_tagged != 'true') }}
86-
with:
87-
commit_tag: ${{ inputs.commit_tag }}
88-
develop_tag: ${{ inputs.develop_tag }}
89-
image_name: consensys/linea-traces-api-facade
90-
push_image: ${{ inputs.push_image }}
91-
secrets: inherit
92-
9377
transaction_exclusion_api:
9478
uses: ./.github/workflows/transaction-exclusion-api-build-and-publish.yml
9579
if: ${{ always() && (inputs.transaction_exclusion_api_changed == 'true' || inputs.transaction_exclusion_api_image_tagged != 'true') }}

.github/workflows/codecov-external-pr.yml

Lines changed: 51 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -6,69 +6,66 @@ on:
66
types:
77
- completed
88

9+
permissions:
10+
# Required to read uploaded artifact from another workflow run
11+
actions: read
12+
contents: read
13+
914
jobs:
10-
filter-commit-changes:
11-
if: github.event.pull_request.head.repo.fork == true
15+
get-commit-tag:
16+
if: github.event.workflow_run.head_repository.fork == true
1217
runs-on: gha-runner-scale-set-ubuntu-22.04-amd64-small
13-
name: Filter commit changes
18+
name: get-commit-tag
1419
outputs:
15-
coordinator: ${{ steps.filter.outputs.coordinator }}
16-
smart-contracts: ${{ steps.filter.outputs.smart-contracts }}
20+
commit-tag: ${{ steps.compute-commit-tag.outputs.COMMIT_TAG }}
1721
steps:
1822
- name: Checkout
1923
uses: actions/checkout@v4
20-
- name: Filter commit changes
21-
uses: dorny/paths-filter@v3
22-
id: filter
2324
with:
24-
base: ${{ github.ref }}
25-
list-files: "json"
26-
filters: |
27-
coordinator:
28-
- 'coordinator/**'
29-
- 'testdata/**'
30-
- 'buildSrc/**'
31-
- 'jvm-libs/**'
32-
- 'gradle/**'
33-
- 'build.gradle'
34-
- 'gradle.properties'
35-
- 'settings.gradle'
36-
- '.github/workflows/coordinator-*.yml'
37-
- '.github/workflows/build-and-publish.yml'
38-
- '.github/workflows/main.yml'
39-
- '.github/workflows/reuse-*.yml'
40-
- 'config/common/traces-limits-v1.toml'
41-
- 'config/common/traces-limits-v2.toml'
42-
- 'config/coordinator/**'
43-
- 'e2e/**'
44-
- 'docker/compose-*.yml'
45-
smart-contracts:
46-
- 'contracts/**'
47-
- 'testdata/**'
48-
- 'prover/**'
49-
- '.github/workflows/main.yml'
50-
- '.github/workflows/run-smc-tests.yml'
25+
repository: ${{ github.event.workflow_run.head_repository.full_name }}
26+
ref: ${{ github.event.workflow_run.head_sha }}
27+
fetch-depth: 0
28+
- name: Compute commit tag
29+
shell: bash
30+
id: compute-commit-tag
31+
# COMMIT_TAG will be the commit SHA of the workflow run that triggered this workflow
32+
# - For a new commit on a PR branch, COMMIT_TAG = head of PR branch
33+
#
34+
# Note that we cannot use GITHUB_SHA here because it will always reference the head of main branch
35+
# Since we intend for this workflow to run only for PRs from an external fork, we want COMMIT_TAG to match the PR branch head
36+
run: |
37+
echo "COMMIT_TAG=$(git rev-parse --short=7 ${{ github.event.workflow_run.head_sha }})" >> $GITHUB_OUTPUT
38+
- name: Show commit tag
39+
run: |
40+
echo "COMMIT_TAG: ${{ steps.compute-commit-tag.outputs.COMMIT_TAG }}"
41+
42+
# Ideally we would use dorny/paths-filter@v3 to conditionally trigger an upload job based on file changes
43+
# However there is a limitation in Github Actions where workflows triggered by a `workflow_run` event have no access to metadata on external fork PRs - https://github.com/orgs/community/discussions/25220
44+
# Hence we are unable to find the base commit (the common ancestor commit between the PR branch and main branch) without using very clunky workarounds
45+
# Hence we cannot provide the correct set of 'before' and 'after' commits for dorny/paths-filter@v3 to accurately assess PR file changes
46+
# So instead we unconditionally use 'continue-on-error: true' and try to download every possible test coverage report that we want to upload to Codecov
5147

5248
upload-codecov-coordinator:
53-
needs: [ filter-commit-changes ]
54-
if: ${{ needs.filter-commit-changes.outputs.coordinator == 'true' }}
49+
needs: [ get-commit-tag ]
5550
runs-on: gha-runner-scale-set-ubuntu-22.04-amd64-small
5651
name: upload-codecov-coordinator
5752
env:
5853
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
5954
steps:
60-
- name: Checkout
61-
uses: actions/checkout@v4
62-
- name: Compute and save COMMIT_TAG
63-
run: |
64-
echo COMMIT_TAG=$(git rev-parse --short "$GITHUB_SHA") >> $GITHUB_ENV
6555
- name: Download Jacoco test coverage report (from coordinator-testing.yml)
56+
continue-on-error: true
6657
uses: actions/download-artifact@v4
58+
id: coordinator-report-download
6759
with:
68-
name: jacocoRootReport-${{ env.COMMIT_TAG }}.xml
60+
name: jacocoRootReport-${{ needs.get-commit-tag.outputs.commit-tag }}.xml
6961
path: |
70-
${{ github.workspace }}/jacocoRootReport.xml
62+
${{ github.workspace }}
63+
# Required to download artifacts from another workflow run
64+
github-token: ${{ secrets.GITHUB_TOKEN }}
65+
# Gets run id of the precedeing workflow that triggered this workflow_run
66+
run-id: ${{ github.event.workflow_run.id }}
7167
- uses: codecov/codecov-action@v5
68+
if: ${{ steps.coordinator-report-download.outcome == 'success' }}
7269
with:
7370
fail_ci_if_error: true
7471
files: ${{ github.workspace }}/jacocoRootReport.xml
@@ -79,25 +76,26 @@ jobs:
7976
token: ${{ secrets.CODECOV_TOKEN }}
8077

8178
upload-codecov-smart-contracts:
82-
needs: [ filter-commit-changes ]
83-
if: ${{ needs.filter-commit-changes.outputs.smart-contracts == 'true' }}
79+
needs: [ get-commit-tag ]
8480
runs-on: gha-runner-scale-set-ubuntu-22.04-amd64-small
8581
name: upload-codecov-smart-contracts
8682
env:
8783
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
8884
steps:
89-
- name: Checkout
90-
uses: actions/checkout@v4
91-
- name: Compute and save COMMIT_TAG
92-
run: |
93-
echo COMMIT_TAG=$(git rev-parse --short "$GITHUB_SHA") >> $GITHUB_ENV
9485
- name: Download smart contract coverage report (from run-smc.tests.yml)
86+
id: smc-report-download
87+
continue-on-error: true
9588
uses: actions/download-artifact@v4
9689
with:
97-
name: smart-contract-coverage-${{ env.COMMIT_TAG }}.json
90+
name: smart-contract-coverage-${{ needs.get-commit-tag.outputs.commit-tag }}.json
9891
path: |
99-
${{ github.workspace }}/coverage-final.json
92+
${{ github.workspace }}
93+
# Required to download artifacts from another workflow run
94+
github-token: ${{ secrets.GITHUB_TOKEN }}
95+
# Gets run id of the precedeing workflow that triggered this workflow_run
96+
run-id: ${{ github.event.workflow_run.id }}
10097
- uses: codecov/codecov-action@v5
98+
if: ${{ steps.smc-report-download.outcome == 'success' }}
10199
with:
102100
fail_ci_if_error: true
103101
files: ${{ github.workspace }}/coverage-final.json

.github/workflows/coordinator-build-and-publish.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ jobs:
7575
- name: Setup Gradle
7676
# Configure Gradle for optimal use in GiHub Actions, including caching of downloaded dependencies.
7777
# See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md
78-
uses: gradle/actions/setup-gradle@cc4fc85e6b35bafd578d5ffbc76a5518407e1af0 #v4.2.1
78+
uses: gradle/actions/setup-gradle@8379f6a1328ee0e06e2bb424dadb7b159856a326 # 4.4.0
7979
- name: Build dist
8080
run: |
8181
./gradlew coordinator:app:installDist

.github/workflows/coordinator-testing.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
- name: Setup Gradle
3737
# Configure Gradle for optimal use in GiHub Actions, including caching of downloaded dependencies.
3838
# See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md
39-
uses: gradle/actions/setup-gradle@cc4fc85e6b35bafd578d5ffbc76a5518407e1af0 #v4.2.1
39+
uses: gradle/actions/setup-gradle@8379f6a1328ee0e06e2bb424dadb7b159856a326 # 4.4.0
4040
# Install pnpm to compile smart contracts
4141
- name: Setup nodejs environment
4242
uses: ./.github/actions/setup-nodejs

0 commit comments

Comments
 (0)