Skip to content

Commit 5b7affd

Browse files
Calculate checksums during release creation
Checksums of the output files where previously calculated during the initial creation of the artifacts, during the notarization process and, finally, at the release creation's step. The whole process has been simplified and checksums are now computed only during the creation of the release.
1 parent c32cad0 commit 5b7affd

File tree

4 files changed

+29
-31
lines changed

4 files changed

+29
-31
lines changed

.github/workflows/publish-go-nightly-task.yml

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -157,9 +157,6 @@ jobs:
157157
tar -czvf "$PACKAGE_FILENAME" \
158158
-C "${{ env.PROJECT_NAME }}_osx_${{ matrix.artifact.name }}/" "${{ env.PROJECT_NAME }}" \
159159
-C ../../ LICENSE.txt
160-
CHECKSUM_LINE="$(shasum -a 256 $PACKAGE_FILENAME)"
161-
echo "PACKAGE_FILENAME=$PACKAGE_FILENAME" >> $GITHUB_ENV
162-
echo "::set-output name=checksum-${{ matrix.artifact.name }}::$CHECKSUM_LINE"
163160
164161
- name: Upload artifacts
165162
uses: actions/upload-artifact@v3
@@ -180,13 +177,13 @@ jobs:
180177
path: ${{ env.DIST_DIR }}
181178

182179
- name: Update checksum
180+
working-directory: ${{ env.DIST_DIR}}
183181
run: |
184-
declare -a checksum_lines=("${{ needs.notarize-macos.outputs.checksum-darwin_amd64 }}" "${{ needs.notarize-macos.outputs.checksum-darwin_arm64 }}")
185-
for checksum_line in "${checksum_lines[@]}"
182+
TAG="nightly-$(date -u +"%Y%m%d")"
183+
declare -a artifacts=$(ls | grep "^${{ env.PROJECT_NAME }}_${TAG}")
184+
for artifact in "${artifacts[@]}"
186185
do
187-
CHECKSUM=$(echo ${checksum_line} | cut -d " " -f 1)
188-
PACKAGE_FILENAME=$(echo ${checksum_line} | cut -d " " -f 2)
189-
perl -pi -w -e "s/.*${PACKAGE_FILENAME}/${CHECKSUM} ${PACKAGE_FILENAME}/g;" ${{ env.DIST_DIR }}/*-checksums.txt
186+
sha256sum $artifact >> ${TAG}-checksums.txt
190187
done
191188
192189
- name: Upload release files on Arduino downloads servers

.github/workflows/publish-go-tester-task.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,23 @@ jobs:
135135
name: ${{ env.BUILDS_ARTIFACT }}
136136
path: ${{ env.BUILDS_ARTIFACT }}
137137

138+
# Calculate checksums once
139+
- name: Output checksum
140+
if: matrix.artifact.name == 'checksums'
141+
working-directory: ${{ env.BUILDS_ARTIFACT}}
142+
run: |
143+
PACKAGE_NAME_PREFIX="test"
144+
if [ "${{ github.event_name }}" = "pull_request" ]; then
145+
PACKAGE_NAME_PREFIX="$PACKAGE_NAME_PREFIX-${{ github.event.number }}"
146+
fi
147+
PACKAGE_NAME_PREFIX="$PACKAGE_NAME_PREFIX-${{ github.sha }}-"
148+
TAG="${PACKAGE_NAME_PREFIX}git-snapshot"
149+
declare -a artifacts=$(ls | grep "^arduino-cli_${TAG}")
150+
for artifact in "${artifacts[@]}"
151+
do
152+
sha256sum $artifact >> ${TAG}-checksums.txt
153+
done
154+
138155
- name: Upload individual build artifact
139156
uses: actions/upload-artifact@v3
140157
with:

.github/workflows/release-go-task.yml

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -145,14 +145,11 @@ jobs:
145145
run: |
146146
gon "${{ env.GON_CONFIG_PATH }}"
147147
148-
- name: Re-package binary and output checksum
148+
- name: Re-package binary
149149
id: re-package
150150
working-directory: ${{ env.DIST_DIR }}
151151
# This step performs the following:
152152
# 1. Repackage the signed binary replaced in place by Gon (ignoring the output zip file)
153-
# 2. Recalculate package checksum
154-
# 3. Output the new checksum to include in the nnnnnn-checksums.txt file
155-
# (it cannot be done there because of workflow job parallelization)
156153
run: |
157154
# GitHub's upload/download-artifact@v2 actions don't preserve file permissions,
158155
# so we need to add execution permission back until the action is made to do this.
@@ -162,9 +159,6 @@ jobs:
162159
tar -czvf "$PACKAGE_FILENAME" \
163160
-C "${{ env.PROJECT_NAME }}_osx_${{ matrix.artifact.name }}/" "${{ env.PROJECT_NAME }}" \
164161
-C ../../ LICENSE.txt
165-
CHECKSUM_LINE="$(shasum -a 256 $PACKAGE_FILENAME)"
166-
echo "PACKAGE_FILENAME=$PACKAGE_FILENAME" >> $GITHUB_ENV
167-
echo "::set-output name=checksum-${{ matrix.artifact.name }}::$CHECKSUM_LINE"
168162
169163
- name: Upload artifacts
170164
uses: actions/upload-artifact@v3
@@ -184,14 +178,14 @@ jobs:
184178
name: ${{ env.ARTIFACT_NAME }}
185179
path: ${{ env.DIST_DIR }}
186180

187-
- name: Update checksum
181+
- name: Output checksum
182+
working-directory: ${{ env.DIST_DIR}}
188183
run: |
189-
declare -a checksum_lines=("${{ needs.notarize-macos.outputs.checksum-darwin_amd64 }}" "${{ needs.notarize-macos.outputs.checksum-darwin_arm64 }}")
190-
for checksum_line in "${checksum_lines[@]}"
184+
TAG="${GITHUB_REF/refs\/tags\//}"
185+
declare -a artifacts=$(ls | grep "^${{ env.PROJECT_NAME }}_${TAG}")
186+
for artifact in "${artifacts[@]}"
191187
do
192-
CHECKSUM=$(echo ${checksum_line} | cut -d " " -f 1)
193-
PACKAGE_FILENAME=$(echo ${checksum_line} | cut -d " " -f 2)
194-
perl -pi -w -e "s/.*${PACKAGE_FILENAME}/${CHECKSUM} ${PACKAGE_FILENAME}/g;" ${{ env.DIST_DIR }}/*-checksums.txt
188+
sha256sum $artifact >> ${TAG}-checksums.txt
195189
done
196190
197191
- name: Identify Prerelease

DistTasks.yml

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ version: "3"
2020
vars:
2121
CONTAINER: "docker.elastic.co/beats-dev/golang-crossbuild"
2222
GO_VERSION: "1.17.8"
23-
CHECKSUM_FILE: "{{.VERSION}}-checksums.txt"
2423

2524
tasks:
2625
Windows_32bit:
@@ -35,7 +34,6 @@ tasks:
3534
-p "{{.BUILD_PLATFORM}}"
3635
3736
zip {{.PACKAGE_NAME}} {{.PLATFORM_DIR}}/{{.PROJECT_NAME}}.exe ../LICENSE.txt -j
38-
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
3937
4038
vars:
4139
PLATFORM_DIR: "{{.PROJECT_NAME}}_windows_386"
@@ -57,7 +55,6 @@ tasks:
5755
-p "{{.BUILD_PLATFORM}}"
5856
5957
zip {{.PACKAGE_NAME}} {{.PLATFORM_DIR}}/{{.PROJECT_NAME}}.exe ../LICENSE.txt -j
60-
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
6158
6259
vars:
6360
PLATFORM_DIR: "{{.PROJECT_NAME}}_windows_amd64"
@@ -79,7 +76,6 @@ tasks:
7976
-p "{{.BUILD_PLATFORM}}"
8077
8178
tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}}
82-
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
8379
8480
vars:
8581
PLATFORM_DIR: "{{.PROJECT_NAME}}_linux_amd32"
@@ -101,7 +97,6 @@ tasks:
10197
-p "{{.BUILD_PLATFORM}}"
10298
10399
tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}}
104-
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
105100
106101
vars:
107102
PLATFORM_DIR: "{{.PROJECT_NAME}}_linux_amd64"
@@ -123,7 +118,6 @@ tasks:
123118
-p "{{.BUILD_PLATFORM}}"
124119
125120
tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}}
126-
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
127121
128122
vars:
129123
PLATFORM_DIR: "{{.PROJECT_NAME}}_linux_arm_7"
@@ -145,7 +139,6 @@ tasks:
145139
-p "{{.BUILD_PLATFORM}}"
146140
147141
tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}}
148-
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
149142
150143
vars:
151144
PLATFORM_DIR: "{{.PROJECT_NAME}}_linux_arm_6"
@@ -195,7 +188,6 @@ tasks:
195188
-p "{{.BUILD_PLATFORM}}"
196189
197190
tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}}
198-
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
199191
200192
vars:
201193
PLATFORM_DIR: "{{.PROJECT_NAME}}_linux_arm_6"
@@ -217,7 +209,6 @@ tasks:
217209
-p "{{.BUILD_PLATFORM}}"
218210
219211
tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}}
220-
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
221212
222213
vars:
223214
PLATFORM_DIR: "{{.PROJECT_NAME}}_osx_darwin_amd64"
@@ -252,7 +243,6 @@ tasks:
252243
-p "{{.BUILD_PLATFORM}}"
253244
254245
tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}}
255-
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
256246
257247
vars:
258248
PLATFORM_DIR: "{{.PROJECT_NAME}}_osx_darwin_arm64"

0 commit comments

Comments
 (0)