1515 workflow_dispatch :
1616
1717jobs :
18- build-amd64 :
19- name : Linux AMD64 release asset
20- runs-on : ubuntu-latest
21- steps :
22- - name : Checkout code
23- uses : actions/checkout@v4
24- with :
25- ref : ${{ github.ref }}
18+ matrix_config :
19+ uses : ./.github/workflows/matrix_config.yml
2620
27- - name : Extract branch name
28- id : extract_branch
29- run : echo "branch_name=${GITHUB_REF#refs/heads/}" >> $GITHUB_OUTPUT
21+ build :
22+ needs : matrix_config
3023
31- - name : Build project
32- id : make_dist
33- run : |
34- make dist-amd64
35- cd dist
36- ARCHIVE=$(echo *.tar.gz)
37- tar -xzf ${ARCHIVE}
38- NEW_ARCHIVE_DIR="nimbus-eth1-linux-amd64_${{ steps.extract_branch.outputs.branch_name }}_$(git rev-parse --short=8 HEAD)"
39- mv ${ARCHIVE%.tar.gz} ${NEW_ARCHIVE_DIR}
40- tar -czf ${NEW_ARCHIVE_DIR}.tar.gz ${NEW_ARCHIVE_DIR}
41- cp ${NEW_ARCHIVE_DIR}.tar.gz nimbus-eth1-linux-amd64-nightly-latest.tar.gz
42- echo "archive=${NEW_ARCHIVE_DIR}.tar.gz" >> $GITHUB_OUTPUT
43- echo "archive_dir=${NEW_ARCHIVE_DIR}" >> $GITHUB_OUTPUT
24+ strategy :
25+ fail-fast : false
26+ matrix : ${{ fromJSON(needs.matrix_config.outputs.matrix) }}
4427
45- - name : Upload archive artefact
46- uses : actions/upload-artifact@v4
47- with :
48- name : linux-amd64-archive
49- path : |
50- ./dist/${{ steps.make_dist.outputs.archive }}
51- ./dist/nimbus-eth1-linux-amd64-nightly-latest.tar.gz
52- retention-days : 2
28+ defaults :
29+ run :
30+ shell : bash
5331
54- - name : Upload checksum artefact
55- uses : actions/upload-artifact@v4
56- with :
57- name : linux-amd64-checksum
58- path : ./dist/${{ steps.make_dist.outputs.archive_dir }}/build/nimbus_execution_client.sha512sum
59- retention-days : 2
60-
61- build-arm64 :
62- name : Linux ARM64 release asset
32+ name : ' ${{ matrix.os }}-${{ matrix.cpu }}'
6333 runs-on : ubuntu-latest
64- steps :
65- - name : Install packages
66- env :
67- DEBIAN_FRONTEND : " noninteractive"
68- TZ : " Etc/UTC"
69- run : |
70- sudo apt-get -qq update
71- sudo apt-get -qq -y install binfmt-support qemu-user-static
72-
73- - name : Checkout code
74- uses : actions/checkout@v4
75- with :
76- ref : ${{ github.ref }}
77-
78- - name : Build project
79- id : make_dist
80- run : |
81- make dist-arm64
82- cd dist
83- ARCHIVE=$(echo *.tar.gz)
84- tar -xzf ${ARCHIVE}
85- NEW_ARCHIVE_DIR="nimbus-eth1-linux-arm64_${{ steps.extract_branch.outputs.branch_name }}_$(git rev-parse --short=8 HEAD)"
86- mv ${ARCHIVE%.tar.gz} ${NEW_ARCHIVE_DIR}
87- tar -czf ${NEW_ARCHIVE_DIR}.tar.gz ${NEW_ARCHIVE_DIR}
88- cp ${NEW_ARCHIVE_DIR}.tar.gz nimbus-eth1-linux-arm64-nightly-latest.tar.gz
89- echo "archive=${NEW_ARCHIVE_DIR}.tar.gz" >> $GITHUB_OUTPUT
90- echo "archive_dir=${NEW_ARCHIVE_DIR}" >> $GITHUB_OUTPUT
91-
92- - name : Upload archive artefact
93- uses : actions/upload-artifact@v4
94- with :
95- name : linux-arm64-archive
96- path : |
97- ./dist/${{ steps.make_dist.outputs.archive }}
98- ./dist/nimbus-eth1-linux-arm64-nightly-latest.tar.gz
99- retention-days : 2
10034
101- - name : Upload checksum artefact
102- uses : actions/upload-artifact@v4
103- with :
104- name : linux-arm64-checksum
105- path : ./dist/${{ steps.make_dist.outputs.archive_dir }}/build/nimbus_execution_client.sha512sum
106- retention-days : 2
107-
108- build-win64 :
109- name : Windows AMD64 release asset
110- runs-on : ubuntu-latest
11135 steps :
11236 - name : Checkout code
11337 uses : actions/checkout@v4
11438 with :
11539 ref : ${{ github.ref }}
11640
117- - name : Build project
118- id : make_dist
119- run : |
120- make dist-win64
121- cd dist
122- ARCHIVE=$(echo *.tar.gz)
123- tar -xzf ${ARCHIVE}
124- NEW_ARCHIVE_DIR="nimbus-eth1-windows-amd64_${{ steps.extract_branch.outputs.branch_name }}_$(git rev-parse --short=8 HEAD)"
125- mv ${ARCHIVE%.tar.gz} ${NEW_ARCHIVE_DIR}
126- tar -czf ${NEW_ARCHIVE_DIR}.tar.gz ${NEW_ARCHIVE_DIR}
127- cp ${NEW_ARCHIVE_DIR}.tar.gz nimbus-eth1-windows-amd64-nightly-latest.tar.gz
128- echo "archive=${NEW_ARCHIVE_DIR}.tar.gz" >> $GITHUB_OUTPUT
129- echo "archive_dir=${NEW_ARCHIVE_DIR}" >> $GITHUB_OUTPUT
130-
131- - name : Upload archive artefact
132- uses : actions/upload-artifact@v4
133- with :
134- name : windows-amd64-archive
135- path : |
136- ./dist/${{ steps.make_dist.outputs.archive }}
137- ./dist/nimbus-eth1-windows-amd64-nightly-latest.tar.gz
138- retention-days : 2
139-
140- - name : Upload checksum artefact
141- uses : actions/upload-artifact@v4
142- with :
143- name : windows-amd64-checksum
144- path : ./dist/${{ steps.make_dist.outputs.archive_dir }}/build/nimbus_execution_client.sha512sum
145- retention-days : 2
146-
147- build-macos-arm64 :
148- name : macOS ARM64 release asset
149- runs-on : ubuntu-latest
150- steps :
151- - name : Checkout code
152- uses : actions/checkout@v4
153- with :
154- ref : ${{ github.ref }}
41+ - name : Extract branch name
42+ id : extract_branch
43+ run : echo "branch_name=${GITHUB_REF#refs/heads/}" >> $GITHUB_OUTPUT
15544
15645 - name : Build project
15746 id : make_dist
15847 run : |
159- make dist-macos-arm64
48+ make dist-${{ matrix.os }}-${{ matrix.cpu }}
16049 cd dist
16150 ARCHIVE=$(echo *.tar.gz)
16251 tar -xzf ${ARCHIVE}
163- NEW_ARCHIVE_DIR="nimbus-eth1-macos-arm64_ ${{ steps.extract_branch.outputs.branch_name }}_ $(git rev-parse --short=8 HEAD)"
52+ NEW_ARCHIVE_DIR="nimbus-eth1-${{ matrix.os }}- ${{ matrix.cpu }}-${{ steps.extract_branch.outputs.branch_name }}- $(git rev-parse --short=8 HEAD)"
16453 mv ${ARCHIVE%.tar.gz} ${NEW_ARCHIVE_DIR}
16554 tar -czf ${NEW_ARCHIVE_DIR}.tar.gz ${NEW_ARCHIVE_DIR}
166- cp ${NEW_ARCHIVE_DIR}.tar.gz nimbus-eth1-macos-arm64 -nightly-latest.tar.gz
55+ cp ${NEW_ARCHIVE_DIR}.tar.gz nimbus-eth1-${{ matrix.os }}-${{ matrix.cpu }} -nightly-latest.tar.gz
16756 echo "archive=${NEW_ARCHIVE_DIR}.tar.gz" >> $GITHUB_OUTPUT
16857 echo "archive_dir=${NEW_ARCHIVE_DIR}" >> $GITHUB_OUTPUT
16958
17059 - name : Upload archive artefact
17160 uses : actions/upload-artifact@v4
17261 with :
173- name : macos-arm64 -archive
62+ name : ${{ matrix.os }}-${{ matrix.cpu }} -archive
17463 path : |
17564 ./dist/${{ steps.make_dist.outputs.archive }}
176- ./dist/nimbus-eth1-macos-arm64 -nightly-latest.tar.gz
65+ ./dist/nimbus-eth1-${{ matrix.os }}-${{ matrix.cpu }} -nightly-latest.tar.gz
17766 retention-days : 2
17867
17968 - name : Upload checksum artefact
18069 uses : actions/upload-artifact@v4
18170 with :
182- name : macos-arm64 -checksum
71+ name : ${{ matrix.os }}-${{ matrix.cpu }} -checksum
18372 path : ./dist/${{ steps.make_dist.outputs.archive_dir }}/build/nimbus_execution_client.sha512sum
18473 retention-days : 2
18574
186- prepare-prerelease :
187- name : Prepare pre- release
188- needs : [ build-amd64, build-arm64, build-win64, build-macos-arm64]
75+ nightly-build-release :
76+ name : Nightly build release
77+ needs : build
18978 runs-on : ubuntu-latest
19079 steps :
19180 - name : Checkout code
19281 uses : actions/checkout@v4
19382 with :
19483 ref : ${{ github.ref }}
19584
85+ - name : Extract branch name
86+ id : extract_branch
87+ run : echo "branch_name=${GITHUB_REF#refs/heads/}" >> $GITHUB_OUTPUT
88+
19689 - name : Download artefacts
19790 uses : actions/download-artifact@v4
19891
@@ -219,7 +112,7 @@ jobs:
219112 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
220113 with :
221114 tag_name : nightly
222- name : ' Nightly build ("master " branch)'
115+ name : ' Nightly build ("${{ steps.extract_branch.outputs.branch_name }} " branch)'
223116 prerelease : true
224117 body_path : release_notes.md
225118 files : |
@@ -229,7 +122,7 @@ jobs:
229122 macos-arm64-archive/*
230123
231124 - name : Delete artefacts
232- uses : geekyeggo/delete-artifact@v2
125+ uses : geekyeggo/delete-artifact@v5
233126 with :
234127 failOnError : false
235128 name : |
@@ -241,4 +134,3 @@ jobs:
241134 windows-amd64-checksum
242135 macos-arm64-archive
243136 macos-arm64-checksum
244-
0 commit comments