forked from ViennaRSS/vienna-rss
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Release-for-upload.sh
105 lines (88 loc) · 3.32 KB
/
Release-for-upload.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#!/bin/bash
. "${OBJROOT}/autorevision.tmp"
BUILD_NUMBER="2821" # Magic number; do not touch!
N_VCS_NUM="$(echo "${BUILD_NUMBER} + ${VCS_NUM}" | bc)"
N_VCS_TAG="$(echo "${VCS_TAG}" | sed -e 's:^v/::')" # for urls/files
V_VCS_TAG="$(echo "${N_VCS_TAG}" | sed -e 's:_beta: Beta :' -e 's:_rc: RC :')" # for display
VIENNA_UPLOADS_DIR="${BUILT_PRODUCTS_DIR}/Uploads"
DOWNLOAD_BASE_URL="${BASE_URL_TYP}://${BASE_URL_LOC}" # values set in project-all.xcconfig
TGZ_FILENAME="Vienna${N_VCS_TAG}.tgz"
dSYM_FILENAME="Vienna${N_VCS_TAG}.${VCS_SHORT_HASH}-dSYM"
case "${N_VCS_TAG}" in
*_beta*)
VIENNA_CHANGELOG="changelog_beta.xml"
DOWNLOAD_SUB_DIR="TestVersions"
;;
*_rc*)
VIENNA_CHANGELOG="changelog_rc.xml"
DOWNLOAD_SUB_DIR="TestVersions"
;;
*)
VIENNA_CHANGELOG="changelog.xml"
DOWNLOAD_SUB_DIR="ReleasedVersions"
;;
esac
DOWNLOAD_TAG_DIR="${N_VCS_TAG}"
DOWNLOAD_BASE_URL="${DOWNLOAD_BASE_URL}/${DOWNLOAD_SUB_DIR}/${DOWNLOAD_TAG_DIR}"
# codesign setup
function signd {
if [ ! -z "${CODE_SIGN_IDENTITY}" ]; then
# Local Config
local idetd="${CODE_SIGN_IDENTITY}"
local resrul="${CODE_SIGN_RESOURCE_RULES_PATH}"
local appth="${BUILT_PRODUCTS_DIR}/Vienna.app"
# Sign and verify the app
if [ ! -z "${resrul}" ]; then
cp -a "${resrul}" "${appth}/ResourceRules.plist"
codesign -f -s "${idetd}" --resource-rules="${appth}/ResourceRules.plist" -vvv "${appth}"
rm "${appth}/ResourceRules.plist"
else
codesign -f -s "${idetd}" -vvv "${appth}"
fi
codesign -vvv --verify "${appth}"
else
echo "warning: No code signing identity configured; code will not be signed." 1>&2
fi
}
# Fail if not deployment
if [ ! "${CONFIGURATION}" = "Deployment" ]; then
echo "error: This should only be run as Deployment" >&2
exit 1
fi
cd "${BUILT_PRODUCTS_DIR}"
# Make the dSYM Bundle
mkdir -p "${VIENNA_UPLOADS_DIR}/${dSYM_FILENAME}"
cp -a *.dSYM "${VIENNA_UPLOADS_DIR}/${dSYM_FILENAME}"
cd "${VIENNA_UPLOADS_DIR}"
tar -czf "${dSYM_FILENAME}.tgz" --exclude '.DS_Store' "${dSYM_FILENAME}"
rm -rf "${VIENNA_UPLOADS_DIR}/${dSYM_FILENAME}"
# Zip up the app
cd "${BUILT_PRODUCTS_DIR}"
signd
tar -czf "${TGZ_FILENAME}" --exclude '.DS_Store' Vienna.app
mv "${TGZ_FILENAME}" "${VIENNA_UPLOADS_DIR}"
# Output the sparkle change log
cd "${VIENNA_UPLOADS_DIR}"
pubDate="$(LC_TIME=en_US date -jf '%FT%T%z' "${VCS_DATE}" '+%a, %d %b %G %T %z')"
TGZSIZE="$(stat -f %z "${TGZ_FILENAME}")"
cat > "${VIENNA_CHANGELOG}" << EOF
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle">
<channel>
<title>Vienna Changelog</title>
<link>http://www.vienna-rss.org/</link>
<description>Vienna Changelog</description>
<language>en-us</language>
<copyright>Copyright 2010-2012, Steve Palmer and contributors</copyright>
<item>
<title>Vienna ${V_VCS_TAG} :${VCS_SHORT_HASH}:</title>
<pubDate>${pubDate}</pubDate>
<link>${DOWNLOAD_BASE_URL}/${TGZ_FILENAME}</link>
<sparkle:minimumSystemVersion>${MACOSX_DEPLOYMENT_TARGET}.0</sparkle:minimumSystemVersion>
<enclosure url="${DOWNLOAD_BASE_URL}/${TGZ_FILENAME}" sparkle:version="${N_VCS_NUM}" sparkle:shortVersionString="${V_VCS_TAG} :${VCS_SHORT_HASH}:" length="${TGZSIZE}" type="application/octet-stream"/>
<sparkle:releaseNotesLink>${DOWNLOAD_BASE_URL}/noteson${N_VCS_TAG}.html</sparkle:releaseNotesLink>
</item>
</channel>
</rss>
EOF
exit 0