From 310bd0dbf13d09119db1ec283ab53a9e9730b8bf Mon Sep 17 00:00:00 2001 From: Dalton Date: Tue, 18 Aug 2020 15:33:50 -0500 Subject: [PATCH] AUTH-2712 fixed the mac build script --- .teamcity/build-macos.sh | 96 ++++++++++++++++++++++++---------------- 1 file changed, 57 insertions(+), 39 deletions(-) diff --git a/.teamcity/build-macos.sh b/.teamcity/build-macos.sh index 97324eef..939a1e06 100755 --- a/.teamcity/build-macos.sh +++ b/.teamcity/build-macos.sh @@ -29,81 +29,99 @@ cd ../src/github.com/cloudflare/cloudflared GOCACHE="$PWD/../../../../" GOPATH="$PWD/../../../../" CGO_ENABLED=1 make cloudflared # Add code signing private key to the key chain -if [[ -z "${CFD_CODE_SIGN_KEY}" ]]; then - # write private key to disk and then import it keychain - echo -n -e ${CFD_CODE_SIGN_KEY} | base64 -D > ${CODE_SIGN_PRIV} - security import ${CODE_SIGN_PRIV} -A -P "${CFD_CODE_SIGN_PASS}" - rm ${CODE_SIGN_PRIV} -else - exit 1 +if [[ -n "${CFD_CODE_SIGN_KEY:-}" ]]; then + if [[ -n "${CFD_CODE_SIGN_PASS:-}" ]]; then + # write private key to disk and then import it keychain + echo -n -e ${CFD_CODE_SIGN_KEY} | base64 -D > ${CODE_SIGN_PRIV} + security import ${CODE_SIGN_PRIV} -A -P "${CFD_CODE_SIGN_PASS}" + rm ${CODE_SIGN_PRIV} + fi fi # Add code signing certificate to the key chain -if [[ -z "${CFD_CODE_SIGN_CERT}" ]]; then +if [[ -n "${CFD_CODE_SIGN_CERT:-}" ]]; then # write certificate to disk and then import it keychain echo -n -e ${CFD_CODE_SIGN_CERT} | base64 -D > ${CODE_SIGN_CERT} security import ${CODE_SIGN_CERT} rm ${CODE_SIGN_CERT} -else - exit 1 fi # Add package signing private key to the key chain -if [[ -z "${CFD_INSTALLER_KEY}" ]]; then - # write private key to disk and then import it into the keychain - echo -n -e ${CFD_INSTALLER_KEY} | base64 -D > ${INSTALLER_PRIV} - security import ${INSTALLER_PRIV} -A -P "${CFD_INSTALLER_PASS}" - rm ${INSTALLER_PRIV} -else - exit 1 +if [[ -n "${CFD_INSTALLER_KEY:-}" ]]; then + if [[ -n "${CFD_INSTALLER_PASS:-}" ]]; then + # write private key to disk and then import it into the keychain + echo -n -e ${CFD_INSTALLER_KEY} | base64 -D > ${INSTALLER_PRIV} + security import ${INSTALLER_PRIV} -A -P "${CFD_INSTALLER_PASS}" + rm ${INSTALLER_PRIV} + fi fi # Add package signing certificate to the key chain -if [[ -z "${CFD_INSTALLER_CERT}" ]]; then +if [[ -n "${CFD_INSTALLER_CERT:-}" ]]; then # write certificate to disk and then import it keychain echo -n -e ${CFD_INSTALLER_CERT} | base64 -D > ${INSTALLER_CERT} security import ${INSTALLER_CERT} rm ${INSTALLER_CERT} -else - exit 1 fi # get the code signing certificate name -if [[ -z "${CFD_CODE_SIGN_NAME}" ]]; then - CODE_SIGN_NAME=$(security find-identity -v | cut -d'"' -f 2 -s | grep "Developer ID Application:") -else +if [[ -n "${CFD_CODE_SIGN_NAME:-}" ]]; then CODE_SIGN_NAME="${CFD_CODE_SIGN_NAME}" +else + if [[ -n "$(security find-identity -v | cut -d'"' -f 2 -s | grep "Developer ID Application:")" ]]; then + CODE_SIGN_NAME=$(echo "something else" | grep "Developer ID Application:") + else + CODE_SIGN_NAME="" + fi fi # get the package signing certificate name -if [[ -z "${CFD_INSTALLER_NAME}" ]]; then - PKG_SIGN_NAME=$(security find-identity -v | cut -d'"' -f 2 -s | grep "Developer ID Installer:") -else +if [[ -n "${CFD_INSTALLER_NAME:-}" ]]; then PKG_SIGN_NAME="${CFD_INSTALLER_NAME}" +else + if [[ -n "$(security find-identity -v | cut -d'"' -f 2 -s | grep "Developer ID Installer:")" ]]; then + PKG_SIGN_NAME=$(security find-identity -v | cut -d'"' -f 2 -s | grep "Developer ID Installer:") + else + PKG_SIGN_NAME="" + fi + fi # sign the cloudflared binary -codesign -s "${CODE_SIGN_NAME}" -f -v --timestamp --options runtime ${BINARY_NAME} +if [[ -n "${CODE_SIGN_NAME:-}" ]]; then + codesign -s "${CODE_SIGN_NAME}" -f -v --timestamp --options runtime ${BINARY_NAME} +fi + # creating build directory -mkdir ${TARGET_DIRECTORY} -mkdir ${TARGET_DIRECTORY}/contents -cp -r .mac_resources/scripts ${TARGET_DIRECTORY}/scripts +mkdir "${TARGET_DIRECTORY}" +mkdir "${TARGET_DIRECTORY}/contents" +cp -r ".mac_resources/scripts" "${TARGET_DIRECTORY}/scripts" # copy cloudflared into the build directory -cp ${BINARY_NAME} {$TARGET_DIRECTORY}/contents/${PRODUCT} +cp ${BINARY_NAME} "${TARGET_DIRECTORY}/contents/${PRODUCT}" # compress cloudflared into a tar and gzipped file -tar czf "$FILENAME" ${BINARY_NAME} +tar czf "$FILENAME" "${BINARY_NAME}" # build the installer package -pkgbuild --identifier com.cloudflare.${PRODUCT} \ - --version ${VERSION} \ - --scripts ${TARGET_DIRECTORY}/scripts \ - --root ${TARGET_DIRECTORY}/contents \ - --install-location /usr/local/bin \ - --sign "${PKG_SIGN_NAME}" \ - ${PKGNAME} +if [[ -n "${PKG_SIGN_NAME:-}" ]]; then + pkgbuild --identifier com.cloudflare.${PRODUCT} \ + --version ${VERSION} \ + --scripts ${TARGET_DIRECTORY}/scripts \ + --root ${TARGET_DIRECTORY}/contents \ + --install-location /usr/local/bin \ + --sign "${PKG_SIGN_NAME}" \ + ${PKGNAME} +else + pkgbuild --identifier com.cloudflare.${PRODUCT} \ + --version ${VERSION} \ + --scripts ${TARGET_DIRECTORY}/scripts \ + --root ${TARGET_DIRECTORY}/contents \ + --install-location /usr/local/bin \ + ${PKGNAME} +fi + # cleaning up the build directory rm -rf $TARGET_DIRECTORY