Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: deploy/build.sh

Issue 29720604: Issue 6405 - Remove CircleCI refs. (Closed)
Patch Set: Created March 12, 2018, 3:21 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « deploy/ExportOptions.plist ('k') | deploy/carthage-bootstrap.sh » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 #!/bin/sh
2
3 set -e # abort on error
4 set -x # expand and print executed commands
5
6 SDK_DEVICE=$1
7 SDK_VERSION=$2
8 SDK="${SDK_DEVICE}${SDK_VERSION}"
9
10 IOS_SIMULATOR_VERSION=${3:-SDK_VERSION}
11
12 # This is redirecting all output to file. Which means that stdout gets nothing.
13 # And in particular environment of CircleCI, it's a Good Thing for couple of rea sons:
14 # - CCI web UI is extremely slow when trying to display a lengthy build log
15 # - even if the log is displayed, it's limited to first 400k chars
16 # - the system allows downloading the log, but only first 4M of it
17 # - even if the error happens in first 400k, the system rarely detects it correc tly, pointing
18 # at irrelevant warnings or noncritical errors instead. It may not be completely a CCI fault
19 # as xcodebuild output is quite cryptic (so cryptic that it warrants xcrun exist ence).
20 LOGFILE="${CIRCLE_ARTIFACTS}/build_${SDK}.log"
21 exec > $LOGFILE 2>&1
22
23 # xcodebuild default build path must be overridden because it stores
24 # the compilation products at a cryptic temporary path but we need
25 # to copy it away for archivation and deployment
26 BUILD_DIR=$PWD/$SDK
27
28 CI_BUILD_NUMBER=${CIRCLE_BUILD_NUM}
29 CI_VERSION_NUMBER=${APP_VERSION}
30
31 # Resulting build artifact name (ending with .app, .ipa, .dSYM and whatever)
32 ARTIFACT_NAME="${XCODE_SCHEME}-${SDK}-${CI_BUILD_NUMBER}"
33
34 # Keep an eye on used ruby version, in case future Xcode/Circle updates
35 # introduce incompatible expectations again
36 ruby -v
37
38 # Note to the following construction and usage of ARTIFACT_DIR:
39 # It is effectively the same folder as CONFIGURATION_BUILD_DIR made from
40 # ${CONFIGURATION}${EFFECTIVE_PLATFORM_NAME}. But CONFIGURATION_BUILD_DIR is ign ored in
41 # "Copy Pod Resources" step since Pods 1.0 - the path is constructed directly fr om $BUILD_DIR.
42 # Custom CONFIGURATION_BUILD_DIR results in builds landing in custom location bu t then being
43 # attempted to copy from a different location based on $BUILD_DIR.
44 # So BUILD_DIR, the root var of all config must be modified, and the resulting
45 # CONFIGURATION_BUILD_DIR then constructed manually.
46 # https://github.com/CocoaPods/CocoaPods/issues/5358
47
48 case $SDK in
49 iphonesimulator*)
50 CONFIGURATION=Debug
51 # BUILD TEST
52 xcodebuild \
53 -sdk $SDK \
54 -workspace "$XCODE_WORKSPACE" \
55 -scheme "$XCODE_SCHEME" \
56 -configuration "$CONFIGURATION" \
57 -destination "platform=iOS Simulator,name=iPhone SE,OS=${IOS_SIMULATOR_VERSI ON}" \
58 BUILD_DIR=$BUILD_DIR \
59 CI_BUILD_NUMBER=$CI_BUILD_NUMBER \
60 CI_VERSION_NUMBER=$CI_VERSION_NUMBER \
61 test # build-test has the main build in its xcodeproj dependencies
62 # ZIP AND COPY APP so that it's downloadable from artifacts
63 ARTIFACT_DIR=$BUILD_DIR/${CONFIGURATION}-iphonesimulator
64 ditto -ck --keepParent --norsrc "${ARTIFACT_DIR}/${XCODE_SCHEME}.app" "$CIRCL E_ARTIFACTS/${ARTIFACT_NAME}.zip"
65 ;;
66 iphoneos*)
67 # BUILD PRODUCT
68 CONFIGURATION=Devbuild
69 # Specific name for archive
70 ARTIFACT_DIR=$BUILD_DIR/${CONFIGURATION}-iphoneos
71 ARCHIVE_NAME="${ARTIFACT_DIR}/${ARTIFACT_NAME}.xcarchive"
72 # The folder where exported IPA is stored
73 IPA_LOCATION="${ARTIFACT_DIR}/${ARTIFACT_NAME}"
74 xcodebuild \
75 -sdk $SDK \
76 -workspace "$XCODE_WORKSPACE" \
77 -scheme "$XCODE_SCHEME" \
78 -configuration "$CONFIGURATION" \
79 -archivePath "$ARCHIVE_NAME" \
80 BUILD_DIR=$BUILD_DIR \
81 CI_BUILD_NUMBER=$CI_BUILD_NUMBER \
82 CI_VERSION_NUMBER=$CI_VERSION_NUMBER \
83 archive # no test
84 if [ "$CIRCLE_BRANCH" == "master" ]; then
85 echo "Branch '${CIRCLE_BRANCH}', packing xcarchive to artifacts"
86 # zip the archive and save it to artifacts
87 # @TODO upload to Eyeo signing service
88 ditto -ck --keepParent --norsrc "$ARCHIVE_NAME" "${ARCHIVE_NAME}.zip"
89 cp ${ARCHIVE_NAME}.zip $CIRCLE_ARTIFACTS
90 else
91 echo "Branch '${CIRCLE_BRANCH}', exporting xcarchive to IPA"
92 # Export the built xcarchive as IPA
93 #
94 # One would be tempted to add -exportSigningIdentity parameter here, but
95 # xcodebuild actively fights it with error:
96 # "The flag -exportSigningIdentity cannot be specified along with -exportO ptionsPlist"
97 # where -exportOptionsPlist is mandated by warning:
98 # "exportArchive without -exportOptionsPlist is deprecated"
99 # SO we must trust xcodebuild export to map all signing assets correctly
100 # In CI environment, it has only one cert and a minimal necessary provisio ning available
101 # but on real world devbox with half a dozen of each it could be a problem
102 xcodebuild \
103 -exportArchive \
104 -exportOptionsPlist "$HOME/$CIRCLE_PROJECT_REPONAME/deploy/ExportOptions.p list" \
105 -archivePath "$ARCHIVE_NAME" \
106 -exportPath "$IPA_LOCATION" # Path is a folder, NOT THE IPA FILENAME ITSEL F!
107 # Copy to Circle artifacts. The source name is fixed by xcodebuild
108 cp "${IPA_LOCATION}/${XCODE_SCHEME}.ipa" "${CIRCLE_ARTIFACTS}/${ARTIFACT_N AME}.ipa"
109 # For some reason, dSYMs are not in xcarchive but left in the build dir
110 mv ${ARTIFACT_DIR}/*.dSYM ${ARCHIVE_NAME}/dSYMs
111 # ZIP DSYMs directly to Circle artifacts
112 # ditto creates Finder-compress-compatible package, where Apple service ma y have a problem accepting plain pkzip
113 ditto -ck --keepParent --rsrc --sequesterRsrc "${ARCHIVE_NAME}/dSYMs" "$CI RCLE_ARTIFACTS/${ARTIFACT_NAME}.dSYM.zip"
114 # UPLOAD AND CLEAN
115 $HOME/$CIRCLE_PROJECT_REPONAME/deploy/hockey.sh \
116 "${CIRCLE_ARTIFACTS}/${ARTIFACT_NAME}.ipa" \
117 "${CIRCLE_ARTIFACTS}/${ARTIFACT_NAME}.dSYM.zip"
118 fi
119 ;;
120 esac
OLDNEW
« no previous file with comments | « deploy/ExportOptions.plist ('k') | deploy/carthage-bootstrap.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld