Skip to content

Commit a77913b

Browse files
committed
bail on CI/CD if Apple's notary service is down
1 parent bf2f59f commit a77913b

File tree

1 file changed

+55
-64
lines changed

1 file changed

+55
-64
lines changed

build_nudge.zsh

+55-64
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@
22
#
33
# Build script for Nudge
44

5+
check_exit_code() {
6+
if [ "$1" != "0" ]; then
7+
echo "$2: $1" 1>&2
8+
exit 1
9+
fi
10+
}
11+
512
# Variables
613
XCODE_PATH="/Applications/Xcode_15.4.app"
714
APP_SIGNING_IDENTITY="Developer ID Application: Mac Admins Open Source (T4SK8ZXCXG)"
@@ -42,20 +49,12 @@ fi
4249
# Perform unit tests
4350
echo "Running Nudge unit tests"
4451
$XCODE_BUILD test -project "$TOOLSDIR/Nudge.xcodeproj" -scheme "Nudge - Debug" -destination 'platform=macos'
45-
XCBT_RESULT="$?"
46-
if [ "${XCBT_RESULT}" != "0" ]; then
47-
echo "Error running xcodebuild: ${XCBT_RESULT}" 1>&2
48-
exit 1
49-
fi
52+
check_exit_code "$?" "Error running xcodebuild unit tests"
5053

5154
# build nudge
5255
echo "Building Nudge"
5356
$XCODE_BUILD -project "$TOOLSDIR/Nudge.xcodeproj" CODE_SIGN_IDENTITY=$APP_SIGNING_IDENTITY OTHER_CODE_SIGN_FLAGS="--timestamp"
54-
XCB_RESULT="$?"
55-
if [ "${XCB_RESULT}" != "0" ]; then
56-
echo "Error running xcodebuild: ${XCB_RESULT}" 1>&2
57-
exit 1
58-
fi
57+
check_exit_code "$?" "Error running xcodebuild"
5958

6059
# Setup notary item
6160
$XCODE_NOTARY_PATH store-credentials --apple-id "[email protected]" --team-id "T4SK8ZXCXG" --password "$2" nudge
@@ -101,11 +100,7 @@ if [ -d ${MP_BINDIR} ]; then
101100
/usr/bin/sudo /bin/rm -rf ${MP_BINDIR}
102101
fi
103102
/usr/bin/unzip ${MP_ZIP} -d ${MP_BINDIR}
104-
DL_RESULT="$?"
105-
if [ "${DL_RESULT}" != "0" ]; then
106-
echo "Error downloading munki-pkg tool: ${DL_RESULT}" 1>&2
107-
exit 1
108-
fi
103+
check_exit_code "$?" "Error downloading munki-pkg tool"
109104

110105
# Create the json file for signed munkipkg Nudge pkg
111106
/bin/cat << SIGNED_JSONFILE > "$NUDGE_PKG_PATH/build-info.json"
@@ -128,15 +123,15 @@ SIGNED_JSONFILE
128123
# Create the signed pkg
129124
python3 "${MP_BINDIR}/munki-pkg-${MP_SHA}/munkipkg" "$NUDGE_PKG_PATH"
130125
PKG_RESULT="$?"
131-
if [ "${PKG_RESULT}" != "0" ]; then
132-
echo "Could not sign package: ${PKG_RESULT}" 1>&2
133-
else
134-
# Notarize nudge package
135-
$XCODE_NOTARY_PATH submit "$NUDGE_PKG_PATH/build/Nudge-$AUTOMATED_NUDGE_BUILD.pkg" --keychain-profile "nudge" --wait
136-
$XCODE_STAPLER_PATH staple "$NUDGE_PKG_PATH/build/Nudge-$AUTOMATED_NUDGE_BUILD.pkg"
137-
# Move the signed pkg
138-
/bin/mv "$NUDGE_PKG_PATH/build/Nudge-$AUTOMATED_NUDGE_BUILD.pkg" "$OUTPUTSDIR"
139-
fi
126+
check_exit_code "$?" "Could not sign package: Nudge-$AUTOMATED_NUDGE_BUILD.pkg"
127+
128+
# Notarize nudge package
129+
$XCODE_NOTARY_PATH submit "$NUDGE_PKG_PATH/build/Nudge-$AUTOMATED_NUDGE_BUILD.pkg" --keychain-profile "nudge" --wait
130+
check_exit_code "$?" "Could not notarize package: Nudge-$AUTOMATED_NUDGE_BUILD.pkg"
131+
$XCODE_STAPLER_PATH staple "$NUDGE_PKG_PATH/build/Nudge-$AUTOMATED_NUDGE_BUILD.pkg"
132+
check_exit_code "$?" "Could not staple package: Nudge-$AUTOMATED_NUDGE_BUILD.pkg"
133+
# Move the signed pkg
134+
/bin/mv "$NUDGE_PKG_PATH/build/Nudge-$AUTOMATED_NUDGE_BUILD.pkg" "$OUTPUTSDIR"
140135

141136
# move the la to the payload folder
142137
echo "Moving LaunchAgent to payload folder"
@@ -172,16 +167,15 @@ SIGNED_JSONFILE
172167

173168
# Create the signed pkg
174169
python3 "${MP_BINDIR}/munki-pkg-${MP_SHA}/munkipkg" "$NUDGE_LA_PKG_PATH"
175-
PKG_RESULT="$?"
176-
if [ "${PKG_RESULT}" != "0" ]; then
177-
echo "Could not sign package: ${PKG_RESULT}" 1>&2
178-
else
179-
# Notarize launchagent package
180-
$XCODE_NOTARY_PATH submit "$NUDGE_LA_PKG_PATH/build/Nudge_LaunchAgent-1.0.1.pkg" --keychain-profile "nudge" --wait
181-
$XCODE_STAPLER_PATH staple "$NUDGE_LA_PKG_PATH/build/Nudge_LaunchAgent-1.0.1.pkg"
182-
# Move the signed pkg
183-
/bin/mv "$NUDGE_LA_PKG_PATH/build/Nudge_LaunchAgent-1.0.1.pkg" "$OUTPUTSDIR"
184-
fi
170+
check_exit_code "$?" "Could not sign package: Nudge_LaunchAgent-1.0.1.pkg"
171+
172+
# Notarize launchagent package
173+
$XCODE_NOTARY_PATH submit "$NUDGE_LA_PKG_PATH/build/Nudge_LaunchAgent-1.0.1.pkg" --keychain-profile "nudge" --wait
174+
check_exit_code "$?" "Could not notarize package: Nudge_LaunchAgent-1.0.1.pkg"
175+
$XCODE_STAPLER_PATH staple "$NUDGE_LA_PKG_PATH/build/Nudge_LaunchAgent-1.0.1.pkg"
176+
check_exit_code "$?" "Could not staple package: Nudge_LaunchAgent-1.0.1.pkg"
177+
# Move the signed pkg
178+
/bin/mv "$NUDGE_LA_PKG_PATH/build/Nudge_LaunchAgent-1.0.1.pkg" "$OUTPUTSDIR"
185179

186180
# move the ld to the payload folder
187181
echo "Moving LaunchDaemon to logging payload folder"
@@ -217,16 +211,15 @@ SIGNED_JSONFILE
217211

218212
# Create the signed pkg
219213
python3 "${MP_BINDIR}/munki-pkg-${MP_SHA}/munkipkg" "$NUDGE_LD_PKG_PATH"
220-
PKG_RESULT="$?"
221-
if [ "${PKG_RESULT}" != "0" ]; then
222-
echo "Could not sign package: ${PKG_RESULT}" 1>&2
223-
else
224-
# Notarize logger package
225-
$XCODE_NOTARY_PATH submit "$NUDGE_LD_PKG_PATH/build/Nudge_Logger-1.0.1.pkg" --keychain-profile "nudge" --wait
226-
$XCODE_STAPLER_PATH staple "$NUDGE_LD_PKG_PATH/build/Nudge_Logger-1.0.1.pkg"
227-
# Move the signed pkg
228-
/bin/mv "$NUDGE_LD_PKG_PATH/build/Nudge_Logger-1.0.1.pkg" "$OUTPUTSDIR"
229-
fi
214+
check_exit_code "$?" "Could not sign package: Nudge_Logger-1.0.1.pkg"
215+
216+
# Notarize logger package
217+
$XCODE_NOTARY_PATH submit "$NUDGE_LD_PKG_PATH/build/Nudge_Logger-1.0.1.pkg" --keychain-profile "nudge" --wait
218+
check_exit_code "$?" "Could not notarize package: Nudge_Logger-1.0.1.pkg"
219+
$XCODE_STAPLER_PATH staple "$NUDGE_LD_PKG_PATH/build/Nudge_Logger-1.0.1.pkg"
220+
check_exit_code "$?" "Could not staple package: Nudge_Logger-1.0.1.pkg"
221+
# Move the signed pkg
222+
/bin/mv "$NUDGE_LD_PKG_PATH/build/Nudge_Logger-1.0.1.pkg" "$OUTPUTSDIR"
230223

231224
# Create the Essentials package
232225
echo "Moving Nudge.app to payload folder"
@@ -264,16 +257,15 @@ SIGNED_JSONFILE
264257

265258
# Create the signed Nudge Essentials pkg
266259
python3 "${MP_BINDIR}/munki-pkg-${MP_SHA}/munkipkg" "$ESSENTIALS_PKG_PATH"
267-
PKG_RESULT="$?"
268-
if [ "${PKG_RESULT}" != "0" ]; then
269-
echo "Could not sign package: ${PKG_RESULT}" 1>&2
270-
else
271-
# Notarize Nudge Essentials package
272-
$XCODE_NOTARY_PATH submit "$ESSENTIALS_PKG_PATH/build/Nudge_Essentials-$AUTOMATED_NUDGE_BUILD.pkg" --keychain-profile "nudge" --wait
273-
$XCODE_STAPLER_PATH staple "$ESSENTIALS_PKG_PATH/build/Nudge_Essentials-$AUTOMATED_NUDGE_BUILD.pkg"
274-
# Move the Nudge Essentials signed/notarized pkg
275-
/bin/mv "$ESSENTIALS_PKG_PATH/build/Nudge_Essentials-$AUTOMATED_NUDGE_BUILD.pkg" "$OUTPUTSDIR"
276-
fi
260+
check_exit_code "$?" "Could not sign package: Nudge_Essentials-$AUTOMATED_NUDGE_BUILD.pkg"
261+
262+
# Notarize Nudge Essentials package
263+
$XCODE_NOTARY_PATH submit "$ESSENTIALS_PKG_PATH/build/Nudge_Essentials-$AUTOMATED_NUDGE_BUILD.pkg" --keychain-profile "nudge" --wait
264+
check_exit_code "$?" "Could not notarize package: Nudge_Essentials-$AUTOMATED_NUDGE_BUILD.pkg"
265+
$XCODE_STAPLER_PATH staple "$ESSENTIALS_PKG_PATH/build/Nudge_Essentials-$AUTOMATED_NUDGE_BUILD.pkg"
266+
check_exit_code "$?" "Could not staple package: Nudge_Essentials-$AUTOMATED_NUDGE_BUILD.pkg"
267+
# Move the Nudge Essentials signed/notarized pkg
268+
/bin/mv "$ESSENTIALS_PKG_PATH/build/Nudge_Essentials-$AUTOMATED_NUDGE_BUILD.pkg" "$OUTPUTSDIR"
277269

278270
# Create the Suite package
279271
echo "Moving Nudge.app to payload folder"
@@ -314,13 +306,12 @@ SIGNED_JSONFILE
314306

315307
# Create the signed Nudge Suite pkg
316308
python3 "${MP_BINDIR}/munki-pkg-${MP_SHA}/munkipkg" "$SUITE_PKG_PATH"
317-
PKG_RESULT="$?"
318-
if [ "${PKG_RESULT}" != "0" ]; then
319-
echo "Could not sign package: ${PKG_RESULT}" 1>&2
320-
else
321-
# Notarize Nudge Suite package
322-
$XCODE_NOTARY_PATH submit "$SUITE_PKG_PATH/build/Nudge_Suite-$AUTOMATED_NUDGE_BUILD.pkg" --keychain-profile "nudge" --wait
323-
$XCODE_STAPLER_PATH staple "$SUITE_PKG_PATH/build/Nudge_Suite-$AUTOMATED_NUDGE_BUILD.pkg"
324-
# Move the Nudge Suite signed/notarized pkg
325-
/bin/mv "$SUITE_PKG_PATH/build/Nudge_Suite-$AUTOMATED_NUDGE_BUILD.pkg" "$OUTPUTSDIR"
326-
fi
309+
check_exit_code "$?" "Could not sign package: Nudge_Suite-$AUTOMATED_NUDGE_BUILD.pkg"
310+
311+
# Notarize Nudge Suite package
312+
$XCODE_NOTARY_PATH submit "$SUITE_PKG_PATH/build/Nudge_Suite-$AUTOMATED_NUDGE_BUILD.pkg" --keychain-profile "nudge" --wait
313+
check_exit_code "$?" "Could not notarize package: Nudge_Suite-$AUTOMATED_NUDGE_BUILD.pkg"
314+
$XCODE_STAPLER_PATH staple "$SUITE_PKG_PATH/build/Nudge_Suite-$AUTOMATED_NUDGE_BUILD.pkg"
315+
check_exit_code "$?" "Could not staple package: Nudge_Suite-$AUTOMATED_NUDGE_BUILD.pkg"
316+
# Move the Nudge Suite signed/notarized pkg
317+
/bin/mv "$SUITE_PKG_PATH/build/Nudge_Suite-$AUTOMATED_NUDGE_BUILD.pkg" "$OUTPUTSDIR"

0 commit comments

Comments
 (0)