Skip to content

Commit 288b24a

Browse files
committed
feat: run unit tests for releases
1 parent e4ff372 commit 288b24a

File tree

1 file changed

+113
-1
lines changed

1 file changed

+113
-1
lines changed

.github/workflows/manual-release.yml

Lines changed: 113 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ on:
1313
default: "v1.2.3"
1414

1515
jobs:
16+
# ==================================================================
17+
# Build - for release and for tests
18+
# ==================================================================
1619
build:
1720
runs-on: ubuntu-latest
1821
steps:
@@ -45,8 +48,117 @@ jobs:
4548
jar_asset: ${{ github.workspace }}/plugins/build/libs/linea-tracer-${{ steps.config.outputs.TAG }}.jar
4649
zip_asset: ${{ github.workspace }}/plugins/build/distributions/linea-tracer-${{ steps.config.outputs.TAG }}.zip
4750
GH_TOKEN: ${{ github.token }}
51+
52+
- name: Set up GCC
53+
uses: egor-tensin/setup-gcc@eaa888eb19115a521fa72b65cd94fe1f25bbcaac #v1.3
54+
55+
- name: Build without tests
56+
run: ./gradlew build -x test -x spotlessCheck
57+
env:
58+
JAVA_OPTS: -Xmx2g -Dorg.gradle.daemon=false
59+
60+
- name: Store distribution artifacts
61+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
62+
with:
63+
name: distributions
64+
path: arithmetization/build/libs
65+
66+
- name: Run spotless
67+
run: ./gradlew --no-daemon --parallel clean spotlessCheck
68+
69+
# ==================================================================
70+
# Unit Tests
71+
# ==================================================================
72+
unit-tests-london:
73+
if: github.event.pull_request.draft == false && github.base_ref != 'main'
74+
needs: [ build ]
75+
uses: ./.github/workflows/reusable-unit-tests.yml
76+
with:
77+
zkevm_fork: LONDON
78+
tests-with-ssh: ${{ inputs.tests-with-ssh || false }}
79+
80+
unit-tests-paris:
81+
if: github.event.pull_request.draft == false && github.base_ref != 'main'
82+
needs: [ build ]
83+
uses: ./.github/workflows/reusable-unit-tests.yml
84+
with:
85+
zkevm_fork: PARIS
86+
tests-with-ssh: ${{ inputs.tests-with-ssh || false}}
87+
88+
unit-tests-shanghai:
89+
if: github.event.pull_request.draft == false && github.base_ref != 'main'
90+
needs: [ build ]
91+
uses: ./.github/workflows/reusable-unit-tests.yml
92+
with:
93+
zkevm_fork: SHANGHAI
94+
tests-with-ssh: ${{ inputs.tests-with-ssh || false}}
95+
96+
unit-tests-cancun:
97+
needs: [ build ]
98+
uses: ./.github/workflows/reusable-unit-tests.yml
99+
with:
100+
zkevm_fork: CANCUN
101+
tests-with-ssh: ${{ inputs.tests-with-ssh || false}}
102+
103+
unit-tests-prague:
104+
needs: [ build ]
105+
uses: ./.github/workflows/reusable-unit-tests.yml
106+
with:
107+
zkevm_fork: PRAGUE
108+
tests-with-ssh: ${{ inputs.tests-with-ssh || false}}
109+
110+
# ==================================================================
111+
# Fast Replay Tests
112+
# ==================================================================
113+
replay-tests:
114+
if: github.event.pull_request.draft == false && github.base_ref != 'main'
115+
needs: [ build ]
116+
runs-on: gha-runner-scale-set-ubuntu-22.04-amd64-xxl
117+
steps:
118+
- name: Checkout repository
119+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
120+
with:
121+
submodules: false
122+
123+
- name: Setup Environment
124+
uses: ./.github/actions/setup-environment
125+
with:
126+
enable-ssh: ${{ inputs.tests-with-ssh }}
127+
128+
- name: Run replay tests
129+
run: GOMEMLIMIT=26GiB ./gradlew :arithmetization:fastReplayTests
130+
env:
131+
JAVA_OPTS: -Dorg.gradle.daemon=false
132+
REPLAY_TESTS_PARALLELISM: 4
133+
GOCORSET_FLAGS: -b1024 -v --ansi-escapes=false --report --air
134+
ZKEVM_FORK: LONDON
135+
136+
- name: Upload test report
137+
if: ${{ always() }}
138+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
139+
with:
140+
name: replay-tests-report
141+
path: arithmetization/build/reports/tests/**/*
142+
143+
- name: Upload jacoco fast replay tests coverage report
144+
if: always()
145+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
146+
with:
147+
name: jacoco-fast-replay-tests-coverage-report
148+
path: arithmetization/build/reports/jacoco/jacocoFastReplayTestsReport/**/*
149+
150+
- name: Upload jacoco fast replay tests exec file
151+
if: always()
152+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
153+
with:
154+
name: jacoco-fast-replay-tests-exec-file
155+
path: arithmetization/build/jacoco/fastReplayTests.exec
156+
157+
# ==================================================================
158+
# Publish release post tests
159+
# ==================================================================
48160
publish:
49-
needs: build
161+
needs: [build, unit-tests-london, unit-tests-paris, unit-tests-shanghai, unit-tests-cancun, unit-tests-prague, replay-tests]
50162
if: github.event_name != 'pull_request'
51163
runs-on: gha-runner-scale-set-ubuntu-22.04-amd64-med
52164
env:

0 commit comments

Comments
 (0)