Skip to content

Commit 62e68bd

Browse files
committed
Merge branch 'main' into marko/add-trivy-scan
# Conflicts: # CHANGELOG.md # Makefile
2 parents d4b15fc + 2c75e9e commit 62e68bd

256 files changed

Lines changed: 17267 additions & 3109 deletions

File tree

Some content is hidden

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

.github/workflows/benchmark.yml

Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
---
2+
name: Benchmarks
3+
permissions: {}
4+
"on":
5+
push:
6+
branches:
7+
- main
8+
pull_request:
9+
branches:
10+
- main
11+
paths:
12+
- 'test/e2e/benchmark/**'
13+
- 'test/e2e/evm_contract_bench_test.go'
14+
- 'test/e2e/evm_test_common.go'
15+
- 'test/e2e/sut_helper.go'
16+
- 'block/internal/executing/**'
17+
- '.github/workflows/benchmark.yml'
18+
workflow_dispatch:
19+
20+
jobs:
21+
evm-benchmark:
22+
name: EVM Contract Benchmark
23+
runs-on: ubuntu-latest
24+
timeout-minutes: 30
25+
steps:
26+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
27+
- name: Set up Go
28+
uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6.3.0
29+
with:
30+
go-version-file: ./go.mod
31+
- name: Set up Docker Buildx
32+
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
33+
- name: Install just
34+
uses: extractions/setup-just@v3
35+
- name: Build binaries
36+
run: just build-evm build-da
37+
- name: Run EVM benchmarks
38+
run: |
39+
cd test/e2e && go test -tags evm -bench=. -benchmem -run='^$' \
40+
-timeout=10m --evm-binary=../../build/evm | tee output.txt
41+
- name: Run Block Executor benchmarks
42+
run: |
43+
go test -bench=BenchmarkProduceBlock -benchmem -run='^$' \
44+
./block/internal/executing/... > block_executor_output.txt
45+
- name: Upload benchmark results
46+
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
47+
with:
48+
name: evm-benchmark-results
49+
path: |
50+
test/e2e/output.txt
51+
block_executor_output.txt
52+
53+
spamoor-benchmark:
54+
name: Spamoor Trace Benchmark
55+
runs-on: ubuntu-latest
56+
timeout-minutes: 30
57+
steps:
58+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
59+
- name: Set up Go
60+
uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6.3.0
61+
with:
62+
go-version-file: ./go.mod
63+
- name: Set up Docker Buildx
64+
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
65+
- name: Install just
66+
uses: extractions/setup-just@v3
67+
- name: Build binaries
68+
run: just build-evm build-da
69+
- name: Run Spamoor smoke test
70+
run: |
71+
cd test/e2e && BENCH_JSON_OUTPUT=spamoor_bench.json go test -tags evm \
72+
-run='^TestSpamoorSuite$/^TestSpamoorSmoke$' -v -timeout=15m \
73+
./benchmark/ --evm-binary=../../../build/evm
74+
- name: Upload benchmark results
75+
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
76+
with:
77+
name: spamoor-benchmark-results
78+
path: test/e2e/benchmark/spamoor_bench.json
79+
80+
# TODO: wire up to publish results once additional tests are in place.
81+
erc20-benchmark:
82+
name: ERC20 Throughput Benchmark
83+
runs-on: ubuntu-latest
84+
timeout-minutes: 20
85+
steps:
86+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
87+
- name: Set up Go
88+
uses: actions/setup-go@7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5 # v6.2.0
89+
with:
90+
go-version-file: ./go.mod
91+
- name: Set up Docker Buildx
92+
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
93+
- name: Install just
94+
uses: extractions/setup-just@v3
95+
- name: Build binaries
96+
run: just build-evm build-da
97+
- name: Run ERC20 throughput test
98+
run: |
99+
cd test/e2e && go test -tags evm \
100+
-run='^TestSpamoorSuite$/^TestERC20Throughput$' -v -timeout=15m \
101+
./benchmark/ --evm-binary=../../../build/evm
102+
103+
# single job to push all results to gh-pages sequentially, avoiding race conditions
104+
publish-benchmarks:
105+
name: Publish Benchmark Results
106+
needs: [evm-benchmark, spamoor-benchmark]
107+
runs-on: ubuntu-latest
108+
permissions:
109+
contents: write
110+
issues: write
111+
pull-requests: write
112+
steps:
113+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
114+
- name: Download EVM benchmark results
115+
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
116+
with:
117+
name: evm-benchmark-results
118+
- name: Download Spamoor benchmark results
119+
uses: actions/download-artifact@70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3 # v8.0.0
120+
with:
121+
name: spamoor-benchmark-results
122+
path: test/e2e/benchmark/
123+
124+
# only update the benchmark baseline on push/dispatch, not on PRs
125+
- name: Store EVM Contract Roundtrip result
126+
if: always()
127+
uses: benchmark-action/github-action-benchmark@a7bc2366eda11037936ea57d811a43b3418d3073 # v1.21.0
128+
with:
129+
name: EVM Contract Roundtrip
130+
tool: 'go'
131+
output-file-path: test/e2e/output.txt
132+
auto-push: ${{ github.event_name != 'pull_request' }}
133+
save-data-file: ${{ github.event_name != 'pull_request' }}
134+
github-token: ${{ secrets.GITHUB_TOKEN }}
135+
alert-threshold: '150%'
136+
fail-on-alert: true
137+
comment-on-alert: true
138+
139+
# delete local gh-pages so the next benchmark action step fetches fresh from remote
140+
- name: Reset local gh-pages branch
141+
if: always()
142+
run: git branch -D gh-pages || true
143+
144+
- name: Store Block Executor result
145+
if: always()
146+
uses: benchmark-action/github-action-benchmark@a7bc2366eda11037936ea57d811a43b3418d3073 # v1.21.0
147+
with:
148+
name: Block Executor Benchmark
149+
tool: 'go'
150+
output-file-path: block_executor_output.txt
151+
auto-push: ${{ github.event_name != 'pull_request' }}
152+
save-data-file: ${{ github.event_name != 'pull_request' }}
153+
github-token: ${{ secrets.GITHUB_TOKEN }}
154+
alert-threshold: '150%'
155+
fail-on-alert: true
156+
comment-on-alert: true
157+
158+
# delete local gh-pages so the next benchmark action step fetches fresh from remote
159+
- name: Reset local gh-pages branch
160+
if: always()
161+
run: git branch -D gh-pages || true
162+
163+
- name: Store Spamoor Trace result
164+
if: always()
165+
uses: benchmark-action/github-action-benchmark@a7bc2366eda11037936ea57d811a43b3418d3073 # v1.21.0
166+
with:
167+
name: Spamoor Trace Benchmarks
168+
tool: 'customSmallerIsBetter'
169+
output-file-path: test/e2e/benchmark/spamoor_bench.json
170+
auto-push: ${{ github.event_name != 'pull_request' }}
171+
save-data-file: ${{ github.event_name != 'pull_request' }}
172+
github-token: ${{ secrets.GITHUB_TOKEN }}
173+
alert-threshold: '150%'
174+
fail-on-alert: false
175+
comment-on-alert: true

.github/workflows/claude-code-review.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727

2828
steps:
2929
- name: Checkout repository
30-
uses: actions/checkout@v6
30+
uses: actions/checkout@v6.0.2
3131
with:
3232
fetch-depth: 1
3333

.github/workflows/claude.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
actions: read # Required for Claude to read CI results on PRs
2727
steps:
2828
- name: Checkout repository
29-
uses: actions/checkout@v6
29+
uses: actions/checkout@v6.0.2
3030
with:
3131
fetch-depth: 1
3232

.github/workflows/dependabot-auto-fix.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,27 +14,27 @@ jobs:
1414
if: github.actor == 'dependabot[bot]'
1515
runs-on: ubuntu-latest
1616
steps:
17-
- uses: actions/checkout@v6
17+
- uses: actions/checkout@v6.0.2
1818
with:
1919
ref: ${{ github.head_ref }}
2020

21-
- uses: actions/setup-go@v6
21+
- uses: actions/setup-go@v6.3.0
2222
with:
23-
check-latest: true
23+
go-version-file: ./go.mod
2424

25-
- name: Install make (if missing)
26-
run: sudo apt-get update && sudo apt-get install -y make
25+
- name: Install just
26+
uses: extractions/setup-just@v3
2727

2828
- name: Run dependency update
29-
run: make deps
29+
run: just deps
3030

3131
- name: Commit and push changes
3232
run: |
3333
if [ -n "$(git status --porcelain)" ]; then
3434
git config user.name "github-actions[bot]"
3535
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
3636
git add -A
37-
git commit -m "chore: run make deps after Dependabot update"
37+
git commit -m "chore: run just deps after Dependabot update"
3838
git push
3939
else
4040
echo "No changes to commit."

.github/workflows/docker-build-push.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
app: ${{ fromJson(inputs.apps) }}
2929
steps:
3030
- name: Checkout code
31-
uses: actions/checkout@v6
31+
uses: actions/checkout@v6.0.2
3232

3333
- name: Set up Docker Buildx
3434
uses: docker/setup-buildx-action@v3

.github/workflows/docker-tests.yml

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,15 @@ jobs:
2222
name: Docker E2E Tests
2323
runs-on: ubuntu-latest
2424
steps:
25-
- uses: actions/checkout@v6
25+
- uses: actions/checkout@v6.0.2
2626
- name: set up go
27-
uses: actions/setup-go@v6
27+
uses: actions/setup-go@v6.3.0
2828
with:
2929
go-version-file: ./test/docker-e2e/go.mod
30+
- name: Install just
31+
uses: extractions/setup-just@v3
3032
- name: Run Docker E2E Tests
31-
run: make test-docker-e2e
33+
run: just test-docker-e2e
3234
env:
3335
EV_NODE_IMAGE_REPO: ghcr.io/${{ github.repository_owner }}/ev-node-testapp
3436
EV_NODE_IMAGE_TAG: ${{ inputs.image-tag }}
@@ -39,13 +41,15 @@ jobs:
3941
contents: read
4042
runs-on: ubuntu-latest
4143
steps:
42-
- uses: actions/checkout@v6
44+
- uses: actions/checkout@v6.0.2
4345
- name: set up go
44-
uses: actions/setup-go@v6
46+
uses: actions/setup-go@v6.3.0
4547
with:
4648
go-version-file: ./test/docker-e2e/go.mod
49+
- name: Install just
50+
uses: extractions/setup-just@v3
4751
- name: Run Docker Upgrade E2E Tests
48-
run: make test-docker-upgrade-e2e
52+
run: just test-docker-upgrade-e2e
4953
env:
5054
EVM_IMAGE_REPO: ghcr.io/${{ github.repository_owner }}/ev-node-evm
5155
EVM_NODE_IMAGE_TAG: ${{ inputs.image-tag }}
@@ -56,13 +60,15 @@ jobs:
5660
contents: read
5761
runs-on: ubuntu-latest
5862
steps:
59-
- uses: actions/checkout@v6
63+
- uses: actions/checkout@v6.0.2
6064
- name: set up go
61-
uses: actions/setup-go@v6
65+
uses: actions/setup-go@v6.3.0
6266
with:
6367
go-version-file: ./test/docker-e2e/go.mod
68+
- name: Install just
69+
uses: extractions/setup-just@v3
6470
- name: Run Docker Compat E2E Tests
65-
run: make test-docker-compat
71+
run: just test-docker-compat
6672
env:
6773
SEQUENCER_EVM_IMAGE_REPO: ghcr.io/${{ github.repository_owner }}/ev-node-evm
6874
SEQUENCER_EVM_IMAGE_TAG: main # TODO: set this to the last released tag

.github/workflows/docs_build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
runs-on: ubuntu-latest
1717
steps:
1818
- name: Checkout
19-
uses: actions/checkout@v6
19+
uses: actions/checkout@v6.0.2
2020
- name: Setup Node
2121
uses: actions/setup-node@v6
2222
with:

.github/workflows/docs_deploy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
runs-on: ubuntu-latest
2626
steps:
2727
- name: Checkout
28-
uses: actions/checkout@v6
28+
uses: actions/checkout@v6.0.2
2929
with:
3030
fetch-depth: 0 # Not needed if lastUpdated is not enabled
3131
# - uses: pnpm/action-setup@v2 # Uncomment this if you're using pnpm

.github/workflows/docs_preview.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
permissions: write-all
2222
steps:
2323
- name: Checkout
24-
uses: actions/checkout@v6
24+
uses: actions/checkout@v6.0.2
2525

2626
- name: Setup Node
2727
uses: actions/setup-node@v6

.github/workflows/lint.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ jobs:
1212
name: golangci-lint
1313
runs-on: ubuntu-latest
1414
steps:
15-
- uses: actions/checkout@v6
16-
- uses: actions/setup-go@v6
15+
- uses: actions/checkout@v6.0.2
16+
- uses: actions/setup-go@v6.3.0
1717
with:
1818
go-version-file: ./go.mod
1919
# This steps sets the GIT_DIFF environment variable to true
@@ -29,14 +29,14 @@ jobs:
2929
- uses: golangci/golangci-lint-action@v9.2.0
3030
with:
3131
version: latest
32-
args: --timeout 10m
32+
args: --timeout 10m ./...
3333
github-token: ${{ secrets.github_token }}
3434
if: env.GIT_DIFF
3535

3636
hadolint:
3737
runs-on: ubuntu-latest
3838
steps:
39-
- uses: actions/checkout@v6
39+
- uses: actions/checkout@v6.0.2
4040
- uses: hadolint/hadolint-action@v3.3.0
4141
with:
4242
recursive: true
@@ -45,7 +45,7 @@ jobs:
4545
yamllint:
4646
runs-on: ubuntu-latest
4747
steps:
48-
- uses: actions/checkout@v6
48+
- uses: actions/checkout@v6.0.2
4949
with:
5050
fetch-depth: 0
5151
- uses: technote-space/get-diff-action@v6.1.2
@@ -59,7 +59,7 @@ jobs:
5959
markdown-lint:
6060
runs-on: ubuntu-latest
6161
steps:
62-
- uses: actions/checkout@v6
62+
- uses: actions/checkout@v6.0.2
6363
with:
6464
fetch-depth: 0
6565
- uses: technote-space/get-diff-action@v6.1.2
@@ -74,15 +74,15 @@ jobs:
7474
runs-on: ubuntu-latest
7575
steps:
7676
- name: checkout
77-
uses: actions/checkout@v6
77+
uses: actions/checkout@v6.0.2
7878
with:
7979
fetch-depth: 0
8080
- uses: technote-space/get-diff-action@v6.1.2
8181
with:
8282
PATTERNS: |
8383
.goreleaser.yaml
8484
.goreleaser.yml
85-
- uses: goreleaser/goreleaser-action@v6
85+
- uses: goreleaser/goreleaser-action@v7
8686
with:
8787
version: latest
8888
args: check

0 commit comments

Comments
 (0)