Skip to content

Commit 778cfe9

Browse files
chore(workflows): streamline build and release workflows with consistent steps and updated artifact handling
2 parents d0082d8 + 0f45585 commit 778cfe9

File tree

2 files changed

+285
-285
lines changed

2 files changed

+285
-285
lines changed

.github/workflows/build-master.yml

Lines changed: 172 additions & 172 deletions
Original file line numberDiff line numberDiff line change
@@ -38,68 +38,61 @@ jobs:
3838
needs: [check_source]
3939
runs-on: ubuntu-latest
4040
steps:
41-
- name: Checkout base code
42-
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
43-
with:
44-
path: code
45-
- name: Generate wiki from docs
46-
env:
47-
WIKI_TOKEN: ${{ secrets.WIKI_TOKEN }}
48-
run: |
49-
git clone https://$WIKI_TOKEN@github.com/${{ github.event.repository.owner.name }}/${{ github.event.repository.name }}.wiki.git ./wiki
50-
51-
- name: Generate wiki from docs
52-
run: |
53-
touch ./wiki.md
54-
55-
for filename in code/docs/*.md; do
56-
while IFS= read -r line; do
57-
if [[ "$line" =~ ^"#!!" ]]; then
58-
bash -c "cd code && ${line:3}" >> ./wiki.md
59-
else
60-
echo "$line" >> ./wiki.md
61-
fi
62-
done <<< $(cat $filename)
63-
echo "" >> ./wiki.md
64-
done
65-
66-
cp ./wiki.md ./wiki/Home.md
67-
68-
- name: Push to wiki
69-
env:
70-
WIKI_TOKEN: ${{ secrets.WIKI_TOKEN }}
71-
run: |
72-
cd wiki
73-
git config --local user.email "action@github.com"
74-
git config --local user.name "GitHub Action"
75-
git add .
76-
git diff-index --quiet HEAD || git commit -m "Add changes" && git push
41+
- name: Checkout base code
42+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
43+
with:
44+
path: code
45+
- name: Generate wiki from docs
46+
env:
47+
WIKI_TOKEN: ${{ secrets.WIKI_TOKEN }}
48+
run: |
49+
git clone https://$WIKI_TOKEN@github.com/${{ github.event.repository.owner.name }}/${{ github.event.repository.name }}.wiki.git ./wiki
50+
51+
- name: Generate wiki from docs
52+
run: |
53+
touch ./wiki.md
54+
55+
for filename in code/docs/*.md; do
56+
while IFS= read -r line; do
57+
if [[ "$line" =~ ^"#!!" ]]; then
58+
bash -c "cd code && ${line:3}" >> ./wiki.md
59+
else
60+
echo "$line" >> ./wiki.md
61+
fi
62+
done <<< $(cat $filename)
63+
echo "" >> ./wiki.md
64+
done
65+
66+
cp ./wiki.md ./wiki/Home.md
67+
68+
- name: Push to wiki
69+
env:
70+
WIKI_TOKEN: ${{ secrets.WIKI_TOKEN }}
71+
run: |
72+
cd wiki
73+
git config --local user.email "action@github.com"
74+
git config --local user.name "GitHub Action"
75+
git add .
76+
git diff-index --quiet HEAD || git commit -m "Add changes" && git push
7777
7878
create_snapshot_release:
7979
name: Create snapshot release
8080
needs: [build_binaries]
8181
runs-on: ubuntu-latest
8282
steps:
83-
# download build artifacts
84-
- name: "Download build artifacts"
85-
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
86-
87-
# (re)create snapshot binary release
88-
- name: Update snapshot tag & remove previous snapshot release
89-
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
90-
with:
91-
github-token: ${{secrets.GITHUB_TOKEN}}
92-
script: |
93-
try {
94-
var snapshotTag = "snapshot";
95-
var snapshotRelease = await github.repos.getReleaseByTag({
96-
owner: context.repo.owner,
97-
repo: context.repo.repo,
98-
tag: snapshotTag
99-
});
100-
if(snapshotRelease && snapshotRelease.data && snapshotRelease.data.tag_name == snapshotTag) {
101-
console.log("delete previous snapshot release");
102-
await github.repos.deleteRelease({
83+
# download build artifacts
84+
- name: "Download build artifacts"
85+
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
86+
87+
# (re)create snapshot binary release
88+
- name: Update snapshot tag & remove previous snapshot release
89+
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
90+
with:
91+
github-token: ${{secrets.GITHUB_TOKEN}}
92+
script: |
93+
try {
94+
var snapshotTag = "snapshot";
95+
var snapshotRelease = await github.repos.getReleaseByTag({
10396
owner: context.repo.owner,
10497
repo: context.repo.repo,
10598
tag: snapshotTag
@@ -109,24 +102,42 @@ jobs:
109102
await github.repos.deleteRelease({
110103
owner: context.repo.owner,
111104
repo: context.repo.repo,
112-
release_id: snapshotRelease.data.id
105+
tag: snapshotTag
113106
});
114-
}
107+
if(snapshotRelease && snapshotRelease.data && snapshotRelease.data.tag_name == snapshotTag) {
108+
console.log("delete previous snapshot release");
109+
await github.repos.deleteRelease({
110+
owner: context.repo.owner,
111+
repo: context.repo.repo,
112+
release_id: snapshotRelease.data.id
113+
});
114+
}
115115
116-
var snapshotRef = await github.git.getRef({
117-
owner: context.repo.owner,
118-
repo: context.repo.repo,
119-
ref: "tags/" + snapshotTag
120-
});
121-
if(snapshotRef && snapshotRef.data && snapshotRef.data.ref) {
122-
if(snapshotRef.data.object.sha !== context.sha) {
123-
await github.git.updateRef({
116+
var snapshotRef = await github.git.getRef({
117+
owner: context.repo.owner,
118+
repo: context.repo.repo,
119+
ref: "tags/" + snapshotTag
120+
});
121+
if(snapshotRef && snapshotRef.data && snapshotRef.data.ref) {
122+
if(snapshotRef.data.object.sha !== context.sha) {
123+
await github.git.updateRef({
124+
owner: context.repo.owner,
125+
repo: context.repo.repo,
126+
ref: "tags/" + snapshotTag,
127+
sha: context.sha,
128+
});
129+
}
130+
}
131+
else {
132+
await github.git.createRef({
124133
owner: context.repo.owner,
125134
repo: context.repo.repo,
126135
ref: "tags/" + snapshotTag,
127136
sha: context.sha,
128137
});
129138
}
139+
} catch (e) {
140+
console.log(e)
130141
}
131142
else {
132143
await github.git.createRef({
@@ -139,109 +150,98 @@ jobs:
139150
} catch (e) {
140151
console.log(e)
141152
}
142-
else {
143-
await github.git.createRef({
144-
owner: context.repo.owner,
145-
repo: context.repo.repo,
146-
ref: "tags/" + snapshotTag,
147-
sha: context.sha,
148-
});
149-
}
150-
} catch (e) {
151-
console.log(e)
152-
}
153-
- name: Create snapshot release
154-
uses: actions/create-release@0cb9c9b65d5d1901c1f53e5e66eaf4afd303e70e # v1.1.4
155-
id: create_release
156-
with:
157-
draft: false
158-
prerelease: true
159-
release_name: "Dev Snapshot"
160-
tag_name: "snapshot"
161-
body: |
162-
## Latest automatically built executables. (Unstable development snapshot)
163-
Built from master branch (commit: ${{ github.sha }})
164-
165-
Please read the [wiki](https://github.com/noku-team/assertoor/wiki) for setup / configuration instructions.
166-
167-
### Release Artifacts
168-
| Release File | Description |
169-
| ------------- | ------------- |
170-
| [assertoor_snapshot_windows_amd64.zip](https://github.com/noku-team/assertoor/releases/download/snapshot/assertoor_snapshot_windows_amd64.zip) | assertoor executables for windows/amd64 |
171-
| [assertoor_snapshot_linux_amd64.tar.gz](https://github.com/noku-team/assertoor/releases/download/snapshot/assertoor_snapshot_linux_amd64.tar.gz) | assertoor executables for linux/amd64 |
172-
| [assertoor_snapshot_linux_arm64.tar.gz](https://github.com/noku-team/assertoor/releases/download/snapshot/assertoor_snapshot_linux_arm64.tar.gz) | assertoor executables for linux/arm64 |
173-
| [assertoor_snapshot_darwin_amd64.tar.gz](https://github.com/noku-team/assertoor/releases/download/snapshot/assertoor_snapshot_darwin_amd64.tar.gz) | assertoor executable for macos/amd64 |
174-
| [assertoor_snapshot_darwin_arm64.tar.gz](https://github.com/noku-team/assertoor/releases/download/snapshot/assertoor_snapshot_darwin_arm64.tar.gz) | assertoor executable for macos/arm64 |
175-
env:
176-
GITHUB_TOKEN: ${{ github.token }}
177-
178-
# generate & upload release artifacts
179-
- name: "Generate release package: assertoor_snapshot_windows_amd64.zip"
180-
run: |
181-
cd assertoor_windows_amd64
182-
zip -r -q ../assertoor_snapshot_windows_amd64.zip .
183-
- name: "Upload snapshot release artifact: assertoor_snapshot_windows_amd64.zip"
184-
uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5 # v1.0.2
185-
with:
186-
upload_url: ${{ steps.create_release.outputs.upload_url }}
187-
asset_path: ./assertoor_snapshot_windows_amd64.zip
188-
asset_name: assertoor_snapshot_windows_amd64.zip
189-
asset_content_type: application/octet-stream
190-
env:
191-
GITHUB_TOKEN: ${{ github.token }}
192-
193-
- name: "Generate release package: assertoor_snapshot_linux_amd64.tar.gz"
194-
run: |
195-
cd assertoor_linux_amd64
196-
tar -czf ../assertoor_snapshot_linux_amd64.tar.gz .
197-
- name: "Upload snapshot release artifact: assertoor_snapshot_linux_amd64.tar.gz"
198-
uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5 # v1.0.2
199-
with:
200-
upload_url: ${{ steps.create_release.outputs.upload_url }}
201-
asset_path: ./assertoor_snapshot_linux_amd64.tar.gz
202-
asset_name: assertoor_snapshot_linux_amd64.tar.gz
203-
asset_content_type: application/octet-stream
204-
env:
205-
GITHUB_TOKEN: ${{ github.token }}
206-
207-
- name: "Generate release package: assertoor_snapshot_linux_arm64.tar.gz"
208-
run: |
209-
cd assertoor_linux_arm64
210-
tar -czf ../assertoor_snapshot_linux_arm64.tar.gz .
211-
- name: "Upload snapshot release artifact: assertoor_snapshot_linux_arm64.tar.gz"
212-
uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5 # v1.0.2
213-
with:
214-
upload_url: ${{ steps.create_release.outputs.upload_url }}
215-
asset_path: ./assertoor_snapshot_linux_arm64.tar.gz
216-
asset_name: assertoor_snapshot_linux_arm64.tar.gz
217-
asset_content_type: application/octet-stream
218-
env:
219-
GITHUB_TOKEN: ${{ github.token }}
220-
221-
- name: "Generate release package: assertoor_snapshot_darwin_amd64.tar.gz"
222-
run: |
223-
cd assertoor_darwin_amd64
224-
tar -czf ../assertoor_snapshot_darwin_amd64.tar.gz .
225-
- name: "Upload snapshot release artifact: assertoor_snapshot_darwin_amd64.tar.gz"
226-
uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5 # v1.0.2
227-
with:
228-
upload_url: ${{ steps.create_release.outputs.upload_url }}
229-
asset_path: ./assertoor_snapshot_darwin_amd64.tar.gz
230-
asset_name: assertoor_snapshot_darwin_amd64.tar.gz
231-
asset_content_type: application/octet-stream
232-
env:
233-
GITHUB_TOKEN: ${{ github.token }}
234-
235-
- name: "Generate release package: assertoor_snapshot_darwin_arm64.tar.gz"
236-
run: |
237-
cd assertoor_darwin_arm64
238-
tar -czf ../assertoor_snapshot_darwin_arm64.tar.gz .
239-
- name: "Upload snapshot release artifact: assertoor_snapshot_darwin_arm64.tar.gz"
240-
uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5 # v1.0.2
241-
with:
242-
upload_url: ${{ steps.create_release.outputs.upload_url }}
243-
asset_path: ./assertoor_snapshot_darwin_arm64.tar.gz
244-
asset_name: assertoor_snapshot_darwin_arm64.tar.gz
245-
asset_content_type: application/octet-stream
246-
env:
247-
GITHUB_TOKEN: ${{ github.token }}
153+
- name: Create snapshot release
154+
uses: actions/create-release@0cb9c9b65d5d1901c1f53e5e66eaf4afd303e70e # v1.1.4
155+
id: create_release
156+
with:
157+
draft: false
158+
prerelease: true
159+
release_name: "Dev Snapshot"
160+
tag_name: "snapshot"
161+
body: |
162+
## Latest automatically built executables. (Unstable development snapshot)
163+
Built from master branch (commit: ${{ github.sha }})
164+
165+
Please read the [wiki](https://github.com/ethpandaops/assertoor/wiki) for setup / configuration instructions.
166+
167+
### Release Artifacts
168+
| Release File | Description |
169+
| ------------- | ------------- |
170+
| [assertoor_snapshot_windows_amd64.zip](https://github.com/ethpandaops/assertoor/releases/download/snapshot/assertoor_snapshot_windows_amd64.zip) | assertoor executables for windows/amd64 |
171+
| [assertoor_snapshot_linux_amd64.tar.gz](https://github.com/ethpandaops/assertoor/releases/download/snapshot/assertoor_snapshot_linux_amd64.tar.gz) | assertoor executables for linux/amd64 |
172+
| [assertoor_snapshot_linux_arm64.tar.gz](https://github.com/ethpandaops/assertoor/releases/download/snapshot/assertoor_snapshot_linux_arm64.tar.gz) | assertoor executables for linux/arm64 |
173+
| [assertoor_snapshot_darwin_amd64.tar.gz](https://github.com/ethpandaops/assertoor/releases/download/snapshot/assertoor_snapshot_darwin_amd64.tar.gz) | assertoor executable for macos/amd64 |
174+
| [assertoor_snapshot_darwin_arm64.tar.gz](https://github.com/ethpandaops/assertoor/releases/download/snapshot/assertoor_snapshot_darwin_arm64.tar.gz) | assertoor executable for macos/arm64 |
175+
env:
176+
GITHUB_TOKEN: ${{ github.token }}
177+
178+
# generate & upload release artifacts
179+
- name: "Generate release package: assertoor_snapshot_windows_amd64.zip"
180+
run: |
181+
cd assertoor_windows_amd64
182+
zip -r -q ../assertoor_snapshot_windows_amd64.zip .
183+
- name: "Upload snapshot release artifact: assertoor_snapshot_windows_amd64.zip"
184+
uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5 # v1.0.2
185+
with:
186+
upload_url: ${{ steps.create_release.outputs.upload_url }}
187+
asset_path: ./assertoor_snapshot_windows_amd64.zip
188+
asset_name: assertoor_snapshot_windows_amd64.zip
189+
asset_content_type: application/octet-stream
190+
env:
191+
GITHUB_TOKEN: ${{ github.token }}
192+
193+
- name: "Generate release package: assertoor_snapshot_linux_amd64.tar.gz"
194+
run: |
195+
cd assertoor_linux_amd64
196+
tar -czf ../assertoor_snapshot_linux_amd64.tar.gz .
197+
- name: "Upload snapshot release artifact: assertoor_snapshot_linux_amd64.tar.gz"
198+
uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5 # v1.0.2
199+
with:
200+
upload_url: ${{ steps.create_release.outputs.upload_url }}
201+
asset_path: ./assertoor_snapshot_linux_amd64.tar.gz
202+
asset_name: assertoor_snapshot_linux_amd64.tar.gz
203+
asset_content_type: application/octet-stream
204+
env:
205+
GITHUB_TOKEN: ${{ github.token }}
206+
207+
- name: "Generate release package: assertoor_snapshot_linux_arm64.tar.gz"
208+
run: |
209+
cd assertoor_linux_arm64
210+
tar -czf ../assertoor_snapshot_linux_arm64.tar.gz .
211+
- name: "Upload snapshot release artifact: assertoor_snapshot_linux_arm64.tar.gz"
212+
uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5 # v1.0.2
213+
with:
214+
upload_url: ${{ steps.create_release.outputs.upload_url }}
215+
asset_path: ./assertoor_snapshot_linux_arm64.tar.gz
216+
asset_name: assertoor_snapshot_linux_arm64.tar.gz
217+
asset_content_type: application/octet-stream
218+
env:
219+
GITHUB_TOKEN: ${{ github.token }}
220+
221+
- name: "Generate release package: assertoor_snapshot_darwin_amd64.tar.gz"
222+
run: |
223+
cd assertoor_darwin_amd64
224+
tar -czf ../assertoor_snapshot_darwin_amd64.tar.gz .
225+
- name: "Upload snapshot release artifact: assertoor_snapshot_darwin_amd64.tar.gz"
226+
uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5 # v1.0.2
227+
with:
228+
upload_url: ${{ steps.create_release.outputs.upload_url }}
229+
asset_path: ./assertoor_snapshot_darwin_amd64.tar.gz
230+
asset_name: assertoor_snapshot_darwin_amd64.tar.gz
231+
asset_content_type: application/octet-stream
232+
env:
233+
GITHUB_TOKEN: ${{ github.token }}
234+
235+
- name: "Generate release package: assertoor_snapshot_darwin_arm64.tar.gz"
236+
run: |
237+
cd assertoor_darwin_arm64
238+
tar -czf ../assertoor_snapshot_darwin_arm64.tar.gz .
239+
- name: "Upload snapshot release artifact: assertoor_snapshot_darwin_arm64.tar.gz"
240+
uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5 # v1.0.2
241+
with:
242+
upload_url: ${{ steps.create_release.outputs.upload_url }}
243+
asset_path: ./assertoor_snapshot_darwin_arm64.tar.gz
244+
asset_name: assertoor_snapshot_darwin_arm64.tar.gz
245+
asset_content_type: application/octet-stream
246+
env:
247+
GITHUB_TOKEN: ${{ github.token }}

0 commit comments

Comments
 (0)