Skip to content

Commit f116837

Browse files
authored
Add more logging to notarize github actions
1 parent a25b85d commit f116837

File tree

1 file changed

+89
-43
lines changed

1 file changed

+89
-43
lines changed

.github/workflows/build.yml

Lines changed: 89 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -82,49 +82,95 @@ jobs:
8282
path: packages/updates.xml
8383

8484
notarize:
85-
name: Notarize the Specify 6 Mac package
86-
needs: build
87-
runs-on: macos-latest
88-
89-
steps:
90-
- name: Download Specify_macos artifact
91-
uses: actions/download-artifact@v1
92-
with:
93-
name: Specify_macos
94-
95-
- name: Upload the Mac package for notarization
96-
run: >
97-
xcrun altool --notarize-app --primary-bundle-id org.specifysoftware
98-
--username [email protected] --password $AC_PASSWORD
99-
--file Specify_macos/Specify_macos.dmg | tee notarize-app-output.txt;
100-
grep -q "RequestUUID = " notarize-app-output.txt || { echo "Uploading package for notarization failed!"; exit 1; }
101-
env:
102-
AC_PASSWORD: ${{ secrets.AC_PASSWORD }}
103-
104-
- name: Get the request UUID
105-
run: sed -En 's/RequestUUID = (.*)$/\1/p' notarize-app-output.txt | tee request-uuid.txt
106-
107-
- name: Check the notarization status
108-
run: >
109-
for i in {1..60}; do
110-
sleep 120;
111-
xcrun altool --notarization-info $(< request-uuid.txt)
112-
--username [email protected] --password $AC_PASSWORD
113-
| tee notarization-info.txt;
114-
grep -q "Status: in progress" notarization-info.txt || break;
115-
done;
116-
grep -q "Status: success" notarization-info.txt || { echo "Notarization failed!"; exit 1; }
117-
env:
118-
AC_PASSWORD: ${{ secrets.AC_PASSWORD }}
119-
120-
- name: Staple the notarization ticket to the installer
121-
run: xcrun stapler staple Specify_macos/Specify_macos.dmg
122-
123-
- name: Upload the stapled Specify_macos.dmg as artifact
124-
uses: actions/upload-artifact@v1
125-
with:
126-
name: Specify_macos_with_ticket
127-
path: Specify_macos/Specify_macos.dmg
85+
name: Notarize the Specify 6 Mac package
86+
needs: build
87+
runs-on: macos-latest
88+
steps:
89+
- name: Download Specify_macos artifact
90+
uses: actions/download-artifact@v1
91+
with:
92+
name: Specify_macos
93+
94+
- name: Check artifact contents
95+
run: |
96+
echo "Contents of Specify_macos directory:"
97+
ls -R Specify_macos
98+
99+
- name: Upload the Mac package for notarization
100+
run: |
101+
echo "Uploading package for notarization..."
102+
xcrun altool --notarize-app --primary-bundle-id org.specifysoftware \
103+
--username [email protected] --password $AC_PASSWORD \
104+
--file Specify_macos/Specify_macos.dmg | tee notarize-app-output.txt
105+
106+
if grep -q "RequestUUID = " notarize-app-output.txt; then
107+
echo "Package uploaded successfully."
108+
else
109+
echo "Uploading package for notarization failed!"
110+
cat notarize-app-output.txt
111+
exit 1
112+
fi
113+
env:
114+
AC_PASSWORD: ${{ secrets.AC_PASSWORD }}
115+
116+
- name: Get the request UUID
117+
run: |
118+
sed -En 's/RequestUUID = (.*)$/\1/p' notarize-app-output.txt | tee request-uuid.txt
119+
echo "Request UUID: $(cat request-uuid.txt)"
120+
121+
- name: Check the notarization status
122+
run: |
123+
for i in {1..60}; do
124+
echo "Checking notarization status (attempt $i)..."
125+
sleep 120
126+
xcrun altool --notarization-info $(cat request-uuid.txt) \
127+
--username [email protected] --password $AC_PASSWORD \
128+
| tee notarization-info.txt
129+
130+
if ! grep -q "Status: in progress" notarization-info.txt; then
131+
echo "Notarization process completed."
132+
break
133+
fi
134+
135+
echo "Notarization still in progress..."
136+
done
137+
138+
if grep -q "Status: success" notarization-info.txt; then
139+
echo "Notarization succeeded!"
140+
else
141+
echo "Notarization failed or timed out. Full status:"
142+
cat notarization-info.txt
143+
exit 1
144+
fi
145+
env:
146+
AC_PASSWORD: ${{ secrets.AC_PASSWORD }}
147+
148+
- name: Staple the notarization ticket to the installer
149+
run: |
150+
echo "Stapling notarization ticket..."
151+
xcrun stapler staple Specify_macos/Specify_macos.dmg
152+
if [ $? -eq 0 ]; then
153+
echo "Stapling successful."
154+
else
155+
echo "Stapling failed!"
156+
exit 1
157+
fi
158+
159+
- name: Upload the stapled Specify_macos.dmg as artifact
160+
uses: actions/upload-artifact@v1
161+
with:
162+
name: Specify_macos_with_ticket
163+
path: Specify_macos/Specify_macos.dmg
164+
165+
- name: Upload log files as artifacts
166+
if: always()
167+
uses: actions/upload-artifact@v2
168+
with:
169+
name: notarization-logs
170+
path: |
171+
notarize-app-output.txt
172+
request-uuid.txt
173+
notarization-info.txt
128174
129175
release:
130176
name: Create a Specify 6 release

0 commit comments

Comments
 (0)