diff --git a/.teamcity/mac/build.sh b/.teamcity/mac/build.sh index 588ef42f..d303144b 100755 --- a/.teamcity/mac/build.sh +++ b/.teamcity/mac/build.sh @@ -7,6 +7,12 @@ if [[ "$(uname)" != "Darwin" ]] ; then exit 1 fi +if [[ "amd64" != "${TARGET_ARCH}" && "arm64" != "${TARGET_ARCH}" ]] +then + echo "TARGET_ARCH must be amd64 or arm64" + exit 1 +fi + go version export GO111MODULE=on @@ -137,56 +143,52 @@ fi # cleanup the build directory because the previous execution might have failed without cleaning up. rm -rf "${TARGET_DIRECTORY}" -archs=("amd64" "arm64") -export TARGET_OS=darwin -for arch in ${archs[@]}; do - - FILENAME="$(pwd)/artifacts/cloudflared-darwin-$arch.tgz" - PKGNAME="$(pwd)/artifacts/cloudflared-$arch.pkg" - TARGET_ARCH=$arch GOCACHE="$PWD/../../../../" GOPATH="$PWD/../../../../" CGO_ENABLED=1 make cloudflared +export TARGET_OS="darwin" +FILENAME="$(pwd)/artifacts/cloudflared-darwin-$TARGET_ARCH.tgz" +PKGNAME="$(pwd)/artifacts/cloudflared-$TARGET_ARCH.pkg" +GOCACHE="$PWD/../../../../" GOPATH="$PWD/../../../../" CGO_ENABLED=1 make cloudflared - # sign the cloudflared binary - if [[ ! -z "$CODE_SIGN_NAME" ]]; then - codesign -s "${CODE_SIGN_NAME}" -f -v --timestamp --options runtime ${BINARY_NAME} - - # notarize the binary - # TODO: TUN-5789 - fi +# sign the cloudflared binary +if [[ ! -z "$CODE_SIGN_NAME" ]]; then + codesign -s "${CODE_SIGN_NAME}" -f -v --timestamp --options runtime ${BINARY_NAME} - ARCH_TARGET_DIRECTORY="${TARGET_DIRECTORY}/${arch}-build" - # creating build directory - rm -rf $ARCH_TARGET_DIRECTORY - mkdir -p "${ARCH_TARGET_DIRECTORY}" - mkdir -p "${ARCH_TARGET_DIRECTORY}/contents" - cp -r ".mac_resources/scripts" "${ARCH_TARGET_DIRECTORY}/scripts" + # notarize the binary + # TODO: TUN-5789 +fi - # copy cloudflared into the build directory - cp ${BINARY_NAME} "${ARCH_TARGET_DIRECTORY}/contents/${PRODUCT}" +ARCH_TARGET_DIRECTORY="${TARGET_DIRECTORY}/${arch}-build" +# creating build directory +rm -rf $ARCH_TARGET_DIRECTORY +mkdir -p "${ARCH_TARGET_DIRECTORY}" +mkdir -p "${ARCH_TARGET_DIRECTORY}/contents" +cp -r ".mac_resources/scripts" "${ARCH_TARGET_DIRECTORY}/scripts" - # compress cloudflared into a tar and gzipped file - tar czf "$FILENAME" "${BINARY_NAME}" +# copy cloudflared into the build directory +cp ${BINARY_NAME} "${ARCH_TARGET_DIRECTORY}/contents/${PRODUCT}" - # build the installer package - if [[ ! -z "$PKG_SIGN_NAME" ]]; then +# compress cloudflared into a tar and gzipped file +tar czf "$FILENAME" "${BINARY_NAME}" + +# build the installer package +if [[ ! -z "$PKG_SIGN_NAME" ]]; then + pkgbuild --identifier com.cloudflare.${PRODUCT} \ + --version ${VERSION} \ + --scripts ${ARCH_TARGET_DIRECTORY}/scripts \ + --root ${ARCH_TARGET_DIRECTORY}/contents \ + --install-location /usr/local/bin \ + --sign "${PKG_SIGN_NAME}" \ + ${PKGNAME} + + # notarize the package + # TODO: TUN-5789 +else pkgbuild --identifier com.cloudflare.${PRODUCT} \ - --version ${VERSION} \ - --scripts ${ARCH_TARGET_DIRECTORY}/scripts \ - --root ${ARCH_TARGET_DIRECTORY}/contents \ - --install-location /usr/local/bin \ - --sign "${PKG_SIGN_NAME}" \ - ${PKGNAME} - - # notarize the package - # TODO: TUN-5789 - else - pkgbuild --identifier com.cloudflare.${PRODUCT} \ - --version ${VERSION} \ - --scripts ${ARCH_TARGET_DIRECTORY}/scripts \ - --root ${ARCH_TARGET_DIRECTORY}/contents \ - --install-location /usr/local/bin \ - ${PKGNAME} - fi -done + --version ${VERSION} \ + --scripts ${ARCH_TARGET_DIRECTORY}/scripts \ + --root ${ARCH_TARGET_DIRECTORY}/contents \ + --install-location /usr/local/bin \ + ${PKGNAME} +fi # cleanup build directory because this script is not ran within containers, # which might lead to future issues in subsequent runs.