Skip to content

Commit a2cbcff

Browse files
stefantalpalaruzah
authored andcommitted
CI: nightly build workflow
1 parent 8b15c5d commit a2cbcff

File tree

1 file changed

+308
-0
lines changed

1 file changed

+308
-0
lines changed
Lines changed: 308 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,308 @@
1+
name: Nightly build
2+
on:
3+
schedule:
4+
- cron: "45 4 * * *"
5+
workflow_dispatch:
6+
#pull_request:
7+
8+
jobs:
9+
build-amd64:
10+
name: Linux AMD64 release asset
11+
runs-on: ubuntu-latest
12+
steps:
13+
- name: Checkout code
14+
uses: actions/checkout@v2
15+
with:
16+
ref: unstable
17+
18+
- name: Build project
19+
id: make_dist
20+
run: |
21+
make dist-amd64
22+
cd dist
23+
ARCHIVE=$(echo *.tar.gz)
24+
tar -xzf ${ARCHIVE}
25+
NEW_ARCHIVE_DIR="nimbus-eth2_Linux_amd64_$(date +%Y%m%d)_$(git rev-parse --short=8 HEAD)"
26+
mv ${ARCHIVE%.tar.gz} ${NEW_ARCHIVE_DIR}
27+
tar -czf ${NEW_ARCHIVE_DIR}.tar.gz ${NEW_ARCHIVE_DIR}
28+
echo "::set-output name=archive::"${NEW_ARCHIVE_DIR}.tar.gz
29+
echo "::set-output name=archive_dir::"${NEW_ARCHIVE_DIR}
30+
31+
- name: Upload archive artefact
32+
uses: actions/upload-artifact@v2
33+
with:
34+
name: Linux_amd64_archive
35+
path: ./dist/${{ steps.make_dist.outputs.archive }}
36+
retention-days: 2
37+
38+
- name: Upload checksum artefact
39+
uses: actions/upload-artifact@v2
40+
with:
41+
name: Linux_amd64_checksum
42+
path: ./dist/${{ steps.make_dist.outputs.archive_dir }}/build/nimbus_beacon_node.sha512sum
43+
retention-days: 2
44+
45+
build-arm64:
46+
name: Linux ARM64 release asset
47+
runs-on: ubuntu-latest
48+
steps:
49+
- name: Install packages
50+
env:
51+
DEBIAN_FRONTEND: "noninteractive"
52+
TZ: "Etc/UTC"
53+
run: |
54+
sudo apt-get -qq update
55+
sudo apt-get -qq -y install binfmt-support qemu-user-static
56+
57+
- name: Checkout code
58+
uses: actions/checkout@v2
59+
with:
60+
ref: unstable
61+
62+
- name: Build project
63+
id: make_dist
64+
run: |
65+
make dist-arm64
66+
cd dist
67+
ARCHIVE=$(echo *.tar.gz)
68+
tar -xzf ${ARCHIVE}
69+
NEW_ARCHIVE_DIR="nimbus-eth2_Linux_arm64v8_$(date +%Y%m%d)_$(git rev-parse --short=8 HEAD)"
70+
mv ${ARCHIVE%.tar.gz} ${NEW_ARCHIVE_DIR}
71+
tar -czf ${NEW_ARCHIVE_DIR}.tar.gz ${NEW_ARCHIVE_DIR}
72+
echo "::set-output name=archive::"${NEW_ARCHIVE_DIR}.tar.gz
73+
echo "::set-output name=archive_dir::"${NEW_ARCHIVE_DIR}
74+
75+
- name: Upload archive artefact
76+
uses: actions/upload-artifact@v2
77+
with:
78+
name: Linux_arm64_archive
79+
path: ./dist/${{ steps.make_dist.outputs.archive }}
80+
retention-days: 2
81+
82+
- name: Upload checksum artefact
83+
uses: actions/upload-artifact@v2
84+
with:
85+
name: Linux_arm64_checksum
86+
path: ./dist/${{ steps.make_dist.outputs.archive_dir }}/build/nimbus_beacon_node.sha512sum
87+
retention-days: 2
88+
89+
build-arm:
90+
name: Linux ARM release asset
91+
runs-on: ubuntu-latest
92+
steps:
93+
- name: Install packages
94+
env:
95+
DEBIAN_FRONTEND: "noninteractive"
96+
TZ: "Etc/UTC"
97+
run: |
98+
sudo apt-get -qq update
99+
sudo apt-get -qq -y install binfmt-support qemu-user-static
100+
101+
- name: Checkout code
102+
uses: actions/checkout@v2
103+
with:
104+
ref: unstable
105+
106+
- name: Build project
107+
id: make_dist
108+
run: |
109+
make dist-arm
110+
cd dist
111+
ARCHIVE=$(echo *.tar.gz)
112+
tar -xzf ${ARCHIVE}
113+
NEW_ARCHIVE_DIR="nimbus-eth2_Linux_arm32v7_$(date +%Y%m%d)_$(git rev-parse --short=8 HEAD)"
114+
mv ${ARCHIVE%.tar.gz} ${NEW_ARCHIVE_DIR}
115+
tar -czf ${NEW_ARCHIVE_DIR}.tar.gz ${NEW_ARCHIVE_DIR}
116+
echo "::set-output name=archive::"${NEW_ARCHIVE_DIR}.tar.gz
117+
echo "::set-output name=archive_dir::"${NEW_ARCHIVE_DIR}
118+
119+
- name: Upload archive artefact
120+
uses: actions/upload-artifact@v2
121+
with:
122+
name: Linux_arm_archive
123+
path: ./dist/${{ steps.make_dist.outputs.archive }}
124+
retention-days: 2
125+
126+
- name: Upload checksum artefact
127+
uses: actions/upload-artifact@v2
128+
with:
129+
name: Linux_arm_checksum
130+
path: ./dist/${{ steps.make_dist.outputs.archive_dir }}/build/nimbus_beacon_node.sha512sum
131+
retention-days: 2
132+
133+
build-win64:
134+
name: Windows AMD64 release asset
135+
runs-on: ubuntu-latest
136+
steps:
137+
- name: Checkout code
138+
uses: actions/checkout@v2
139+
with:
140+
ref: unstable
141+
142+
- name: Build project
143+
id: make_dist
144+
run: |
145+
make dist-win64
146+
cd dist
147+
ARCHIVE=$(echo *.tar.gz)
148+
tar -xzf ${ARCHIVE}
149+
NEW_ARCHIVE_DIR="nimbus-eth2_Windows_amd64_$(date +%Y%m%d)_$(git rev-parse --short=8 HEAD)"
150+
mv ${ARCHIVE%.tar.gz} ${NEW_ARCHIVE_DIR}
151+
tar -czf ${NEW_ARCHIVE_DIR}.tar.gz ${NEW_ARCHIVE_DIR}
152+
echo "::set-output name=archive::"${NEW_ARCHIVE_DIR}.tar.gz
153+
echo "::set-output name=archive_dir::"${NEW_ARCHIVE_DIR}
154+
155+
- name: Upload archive artefact
156+
uses: actions/upload-artifact@v2
157+
with:
158+
name: Windows_amd64_archive
159+
path: ./dist/${{ steps.make_dist.outputs.archive }}
160+
retention-days: 2
161+
162+
- name: Upload checksum artefact
163+
uses: actions/upload-artifact@v2
164+
with:
165+
name: Windows_amd64_checksum
166+
path: ./dist/${{ steps.make_dist.outputs.archive_dir }}/build/nimbus_beacon_node.sha512sum
167+
retention-days: 2
168+
169+
build-macos-amd64:
170+
name: macOS AMD64 release asset
171+
runs-on: ubuntu-latest
172+
steps:
173+
- name: Checkout code
174+
uses: actions/checkout@v2
175+
with:
176+
ref: unstable
177+
178+
- name: Build project
179+
id: make_dist
180+
run: |
181+
make dist-macos
182+
cd dist
183+
ARCHIVE=$(echo *.tar.gz)
184+
tar -xzf ${ARCHIVE}
185+
NEW_ARCHIVE_DIR="nimbus-eth2_macOS_amd64_$(date +%Y%m%d)_$(git rev-parse --short=8 HEAD)"
186+
mv ${ARCHIVE%.tar.gz} ${NEW_ARCHIVE_DIR}
187+
tar -czf ${NEW_ARCHIVE_DIR}.tar.gz ${NEW_ARCHIVE_DIR}
188+
echo "::set-output name=archive::"${NEW_ARCHIVE_DIR}.tar.gz
189+
echo "::set-output name=archive_dir::"${NEW_ARCHIVE_DIR}
190+
191+
- name: Upload archive artefact
192+
uses: actions/upload-artifact@v2
193+
with:
194+
name: macOS_amd64_archive
195+
path: ./dist/${{ steps.make_dist.outputs.archive }}
196+
retention-days: 2
197+
198+
- name: Upload checksum artefact
199+
uses: actions/upload-artifact@v2
200+
with:
201+
name: macOS_amd64_checksum
202+
path: ./dist/${{ steps.make_dist.outputs.archive_dir }}/build/nimbus_beacon_node.sha512sum
203+
retention-days: 2
204+
205+
build-macos-arm64:
206+
name: macOS ARM64 release asset
207+
runs-on: ubuntu-latest
208+
steps:
209+
- name: Checkout code
210+
uses: actions/checkout@v2
211+
with:
212+
ref: unstable
213+
214+
- name: Build project
215+
id: make_dist
216+
run: |
217+
make dist-macos-arm64
218+
cd dist
219+
ARCHIVE=$(echo *.tar.gz)
220+
tar -xzf ${ARCHIVE}
221+
NEW_ARCHIVE_DIR="nimbus-eth2_macOS_arm64_$(date +%Y%m%d)_$(git rev-parse --short=8 HEAD)"
222+
mv ${ARCHIVE%.tar.gz} ${NEW_ARCHIVE_DIR}
223+
tar -czf ${NEW_ARCHIVE_DIR}.tar.gz ${NEW_ARCHIVE_DIR}
224+
echo "::set-output name=archive::"${NEW_ARCHIVE_DIR}.tar.gz
225+
echo "::set-output name=archive_dir::"${NEW_ARCHIVE_DIR}
226+
227+
- name: Upload archive artefact
228+
uses: actions/upload-artifact@v2
229+
with:
230+
name: macOS_arm64_archive
231+
path: ./dist/${{ steps.make_dist.outputs.archive }}
232+
retention-days: 2
233+
234+
- name: Upload checksum artefact
235+
uses: actions/upload-artifact@v2
236+
with:
237+
name: macOS_arm64_checksum
238+
path: ./dist/${{ steps.make_dist.outputs.archive_dir }}/build/nimbus_beacon_node.sha512sum
239+
retention-days: 2
240+
241+
prepare-prerelease:
242+
name: Prepare pre-release
243+
needs: [build-amd64, build-arm64, build-arm, build-win64, build-macos-amd64, build-macos-arm64]
244+
runs-on: ubuntu-latest
245+
steps:
246+
- name: Download artefacts
247+
uses: actions/download-artifact@v2
248+
249+
- name: Create release notes
250+
run: |
251+
cat > release_notes.md <<EOF
252+
## SHA512 checksums
253+
254+
\`\`\`text
255+
EOF
256+
echo '# Linux AMD64' >> release_notes.md
257+
cat Linux_amd64_checksum/* >> release_notes.md
258+
echo '# Linux ARM64' >> release_notes.md
259+
cat Linux_arm64_checksum/* >> release_notes.md
260+
echo '# Linux ARM' >> release_notes.md
261+
cat Linux_arm_checksum/* >> release_notes.md
262+
echo '# Windows AMD64' >> release_notes.md
263+
cat Windows_amd64_checksum/* >> release_notes.md
264+
echo '# macOS AMD64' >> release_notes.md
265+
cat macOS_amd64_checksum/* >> release_notes.md
266+
echo '# macOS ARM64' >> release_notes.md
267+
cat macOS_arm64_checksum/* >> release_notes.md
268+
echo '```' >> release_notes.md
269+
270+
- name: Delete tag
271+
uses: dev-drprasad/[email protected]
272+
with:
273+
delete_release: true
274+
tag_name: latest
275+
env:
276+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
277+
278+
- name: Create prerelease
279+
run: |
280+
gh release create latest --prerelease --target unstable \
281+
--title 'Nightly build ("unstable" branch)' --notes-file release_notes.md \
282+
Linux_amd64_archive/* \
283+
Linux_arm64_archive/* \
284+
Linux_arm_archive/* \
285+
Windows_amd64_archive/* \
286+
macOS_amd64_archive/* \
287+
macOS_arm64_archive/*
288+
env:
289+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
290+
291+
- name: Delete artefacts
292+
uses: geekyeggo/delete-artifact@v1
293+
with:
294+
failOnError: false
295+
name: |
296+
Linux_amd64_archive
297+
Linux_amd64_checksum
298+
Linux_arm64_archive
299+
Linux_arm64_checksum
300+
Linux_arm_archive
301+
Linux_arm_checksum
302+
Windows_amd64_archive
303+
Windows_amd64_checksum
304+
macOS_amd64_archive
305+
macOS_amd64_checksum
306+
macOS_arm64_archive
307+
macOS_arm64_checksum
308+

0 commit comments

Comments
 (0)