Просмотр исходного кода

Merge pull request #9603 from emqx/50-ci-fix-self-hosted-macos-runners

50 ci fix self hosted macos runners
Ivan Dyachkov 3 лет назад
Родитель
Сommit
7eebc67f61
2 измененных файлов с 19 добавлено и 3 удалено
  1. 9 1
      .github/actions/package-macos/action.yaml
  2. 10 2
      scripts/macos-sign-binaries.sh

+ 9 - 1
.github/actions/package-macos/action.yaml

@@ -59,11 +59,19 @@ runs:
         fi
         git clone --depth 1 --branch OTP-${{ inputs.otp }} https://github.com/emqx/otp.git "$OTP_SOURCE_PATH"
         cd "$OTP_SOURCE_PATH"
+        if [ "$(arch)" = arm64 ]; then
+            export LDFLAGS="-L$(brew --prefix unixodbc)/lib"
+            export CC="/usr/bin/gcc -I$(brew --prefix unixodbc)/include"
+        fi
         ./configure --disable-dynamic-ssl-lib --with-ssl=$(brew --prefix openssl@1.1) --disable-hipe --disable-jit --prefix="$OTP_INSTALL_PATH"
         make -j$(nproc)
         rm -rf "$OTP_INSTALL_PATH"
         make install
-    - name: build ${{ inputs.profile }}
+        if [ "$(arch)" = arm64 ]; then
+            unset LDFLAGS
+            unset CC
+        fi
+    - name: build
       env:
         HOMEBREW_NO_AUTO_UPDATE: 1
         HOMEBREW_NO_INSTALL_UPGRADE: 1

+ 10 - 2
scripts/macos-sign-binaries.sh

@@ -21,10 +21,16 @@ REL_DIR="${1}"
 PKSC12_FILE="$HOME/developer-id-application.p12"
 base64 --decode > "${PKSC12_FILE}" <<<"${APPLE_DEVELOPER_ID_BUNDLE}"
 
-KEYCHAIN='emqx.keychain-db'
+KEYCHAIN="emqx-$(date +%s).keychain-db"
 KEYCHAIN_PASSWORD="$(openssl rand -base64 32)"
 
-security delete-keychain "${KEYCHAIN}" 2>/dev/null || true
+trap cleanup EXIT
+
+function cleanup {
+    set +e
+    security delete-keychain "${KEYCHAIN}" 2>/dev/null
+}
+
 security create-keychain -p "${KEYCHAIN_PASSWORD}" "${KEYCHAIN}"
 security set-keychain-settings -lut 21600 "${KEYCHAIN}"
 security unlock-keychain -p "${KEYCHAIN_PASSWORD}" "${KEYCHAIN}"
@@ -69,3 +75,5 @@ for f in \
         ; do
     find "${REL_DIR}"/lib/ -name "$f" -exec codesign -s "${APPLE_DEVELOPER_IDENTITY}" -f --verbose=4 --timestamp --options=runtime {} \;
 done
+
+cleanup