Skip to content

Commit 28b4758

Browse files
committed
Update GitUp build script with notarization steps
1 parent df3d853 commit 28b4758

File tree

1 file changed

+41
-7
lines changed

1 file changed

+41
-7
lines changed

continuous-build.sh

Lines changed: 41 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
#!/bin/sh -ex
22

3+
EMAIL="$1"
4+
ASC_PROVIDER="$2"
5+
if [[ "$EMAIL" == "" || "$ASC_PROVIDER" == "" ]]; then
6+
echo "Usage ./continuous-build.sh \"email\" \"asc_provider\". Run \`xcrun altool --list-providers -u email -p password\` to get potential asc_provider."
7+
exit 1
8+
fi
9+
310
CHANNEL="continuous"
411

512
PRODUCT_NAME="GitUp"
@@ -16,31 +23,56 @@ xcodebuild archive -scheme "Application" -archivePath "../build/$PRODUCT_NAME.xc
1623
xcodebuild -exportArchive -exportOptionsPlist "Export-Options.plist" -archivePath "../build/$PRODUCT_NAME.xcarchive" -exportPath "../build/$PRODUCT_NAME"
1724
popd
1825

26+
FULL_PRODUCT_NAME="$PRODUCT_NAME.app"
27+
PRODUCT_PATH="`pwd`/build/$PRODUCT_NAME/$FULL_PRODUCT_NAME" # Must be absolute path
28+
ARCHIVE_NAME="$PRODUCT_NAME.zip"
29+
ARCHIVE_PATH="build/$ARCHIVE_NAME"
30+
31+
##### Notarize zip file
32+
33+
ditto -c -k --keepParent "$PRODUCT_PATH" "$ARCHIVE_PATH"
34+
35+
UUID=`xcrun altool --notarize-app --primary-bundle-id "co.gitup.mac.zip" -u $EMAIL -p "@keychain:password" --asc-provider $ASC_PROVIDER --file $ARCHIVE_PATH | grep "RequestUUID = " | sed 's/^.*= //'`
36+
37+
if [ "$UUID" == "" ]; then
38+
echo "No request UUID found"
39+
exit 1
40+
fi
41+
42+
while true; do
43+
sleep 60
44+
STATUS_CODE=`xcrun altool --notarization-info $UUID -u "$EMAIL" -p "@keychain:password" | grep "Status Code" | sed 's/^.*: //' | xargs`
45+
if [ "$STATUS_CODE" == "0" ]; then
46+
echo "Notarization Success! - $STATUS_CODE"
47+
break
48+
fi
49+
echo "Not notarized yet - $STATUS_CODE"
50+
done
51+
52+
##### Staple app and regenerate zip
53+
54+
xcrun stapler staple "$PRODUCT_PATH"
55+
56+
ditto -c -k --keepParent "$PRODUCT_PATH" "$ARCHIVE_PATH"
57+
1958
##### Tag build
2059

2160
git tag -f "b$VERSION"
2261
git push -f origin "b$VERSION"
2362

2463
##### Upload to S3 and update Appcast
2564

26-
FULL_PRODUCT_NAME="$PRODUCT_NAME.app"
27-
PRODUCT_PATH="`pwd`/build/$PRODUCT_NAME/$FULL_PRODUCT_NAME" # Must be absolute path
2865
INFO_PLIST_PATH="$PRODUCT_PATH/Contents/Info.plist"
2966
VERSION_ID=`defaults read "$INFO_PLIST_PATH" "CFBundleVersion"`
3067
VERSION_STRING=`defaults read "$INFO_PLIST_PATH" "CFBundleShortVersionString"`
3168
MIN_OS=`defaults read "$INFO_PLIST_PATH" "LSMinimumSystemVersion"`
3269

33-
ARCHIVE_NAME="$PRODUCT_NAME.zip"
3470
BACKUP_ARCHIVE_NAME="$PRODUCT_NAME-$VERSION_ID.zip"
3571
APPCAST_URL="https://s3-us-west-2.amazonaws.com/gitup-builds/$CHANNEL/$APPCAST_NAME"
3672
ARCHIVE_URL="https://s3-us-west-2.amazonaws.com/gitup-builds/$CHANNEL/$ARCHIVE_NAME"
3773
BACKUP_ARCHIVE_URL="https://s3-us-west-2.amazonaws.com/gitup-builds/$CHANNEL/$BACKUP_ARCHIVE_NAME"
38-
39-
ARCHIVE_PATH="build/$ARCHIVE_NAME"
4074
APPCAST_PATH="GitUp/SparkleAppcast.xml"
4175

42-
ditto -c -k --keepParent "$PRODUCT_PATH" "$ARCHIVE_PATH"
43-
4476
ARCHIVE_SIZE=`stat -f "%z" "$ARCHIVE_PATH"`
4577

4678
EDITED_APPCAST_PATH="build/appcast.xml"
@@ -49,3 +81,5 @@ perl -p -e "s|__APPCAST_TITLE__|$PRODUCT_NAME|g;s|__APPCAST_URL__|$APPCAST_URL|g
4981
aws s3 cp "$ARCHIVE_PATH" "s3://gitup-builds/$CHANNEL/$BACKUP_ARCHIVE_NAME"
5082
aws s3 cp "s3://gitup-builds/$CHANNEL/$BACKUP_ARCHIVE_NAME" "s3://gitup-builds/$CHANNEL/$ARCHIVE_NAME"
5183
aws s3 cp "$EDITED_APPCAST_PATH" "s3://gitup-builds/$CHANNEL/$APPCAST_NAME"
84+
85+
osascript -e 'display notification "Successfully completed continuous build" with title "GitUp Script" sound name "Hero"'

0 commit comments

Comments
 (0)