From ef7fae663a5fa0e0f807459b317babb1a613d2f3 Mon Sep 17 00:00:00 2001 From: Brett <27568879+BrettCleary@users.noreply.github.com> Date: Thu, 5 Oct 2023 17:10:36 -0700 Subject: [PATCH] [CI] Add mac arm64 runner (#574) * add arm64 runner * update concurrency check * only run mac arm64 on qa review request * run on review requested * fix pr trigger * fix trigger * just run it manually --- .github/workflows/build-mac-arm64.yml | 42 +++++++++++++++++++++++++++ .github/workflows/build.yml | 18 ++++-------- .github/workflows/release_macOS.yml | 36 +++++++++++++++++++++-- package.json | 5 ++-- 4 files changed, 85 insertions(+), 16 deletions(-) create mode 100644 .github/workflows/build-mac-arm64.yml diff --git a/.github/workflows/build-mac-arm64.yml b/.github/workflows/build-mac-arm64.yml new file mode 100644 index 000000000..1561f8a62 --- /dev/null +++ b/.github/workflows/build-mac-arm64.yml @@ -0,0 +1,42 @@ +name: Build mac arm64 + +on: + workflow_dispatch: + +env: + GITHUB_TOKEN: ${{ secrets.WORKFLOW_TOKEN }} + GH_TOKEN: ${{ secrets.WORKFLOW_TOKEN }} + RUDDERSTACK_CLIENT_ID: ${{ secrets.RUDDERSTACK_CLIENT_ID }} + +jobs: + release-mac-arm64: + runs-on: macos-latest-xlarge + + steps: + - name: Checkout code + uses: actions/checkout@v3 + with: + submodules: 'recursive' + token: ${{ secrets.pat }} + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: '18' + cache: 'yarn' + + - name: Reconfigure git to use HTTP authentication + run: > + git config --global url."https://github.com/".insteadOf + ssh://git@github.com/ + + - name: Authenticate with private NPM package + run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc + + - name: Install dependencies + run: yarn setup + + - name: Build artifacts. + run: yarn release:mac:arm64 + env: + NOTARIZE: true diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6724617c6..eba4aea12 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -44,7 +44,7 @@ jobs: with: name: win-setup path: dist/HyperPlay*.exe - retention-days: 14 + retention-days: 7 build_linux: runs-on: ubuntu-latest concurrency: @@ -77,10 +77,10 @@ jobs: run: yarn dist:linux:ci:rpm - name: Build pacman artifact run: yarn dist:linux:ci:pacman - build_mac: + build_mac_x64: runs-on: macos-13 concurrency: - group: build-mac-${{ github.ref }} + group: build-mac-x64-${{ github.ref }} cancel-in-progress: true steps: - name: Checkout repository. @@ -102,18 +102,12 @@ jobs: - name: Install modules. run: yarn setup - name: Build artifacts. - run: yarn dist:mac + run: yarn dist:mac:x64 env: NOTARIZE: false - name: Upload Intel build. uses: actions/upload-artifact@v3 with: - name: mac-dmg-Intel + name: mac-dmg-x64 path: dist/HyperPlay*x64.dmg - retention-days: 14 - - name: Upload M1/M2. - uses: actions/upload-artifact@v3 - with: - name: mac-dmg-M1-M2 - path: dist/HyperPlay*arm64.dmg - retention-days: 14 + retention-days: 7 diff --git a/.github/workflows/release_macOS.yml b/.github/workflows/release_macOS.yml index 10d9414bf..0db82935f 100644 --- a/.github/workflows/release_macOS.yml +++ b/.github/workflows/release_macOS.yml @@ -17,7 +17,7 @@ env: TEAMID: ${{ secrets.TEAMID }} jobs: - build-and-release: + release-x64: runs-on: macos-latest steps: @@ -45,6 +45,38 @@ jobs: run: yarn setup - name: Build artifacts. - run: yarn release:mac + run: yarn release:mac:x64 + env: + NOTARIZE: true + + release-arm64: + runs-on: macos-latest-xlarge + + steps: + - name: Checkout code + uses: actions/checkout@v3 + with: + submodules: 'recursive' + token: ${{ secrets.pat }} + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: '18' + cache: 'yarn' + + - name: Reconfigure git to use HTTP authentication + run: > + git config --global url."https://github.com/".insteadOf + ssh://git@github.com/ + + - name: Authenticate with private NPM package + run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc + + - name: Install dependencies + run: yarn setup + + - name: Build artifacts. + run: yarn release:mac:arm64 env: NOTARIZE: true diff --git a/package.json b/package.json index 5619a6341..920ff2824 100644 --- a/package.json +++ b/package.json @@ -241,7 +241,8 @@ "manualTestProxyJest": "jest mmExtIntegration.test.ts", "release:linux": "export NODE_ENV_ELECTRON_VITE=production && vite build && electron-builder -p always --linux deb rpm pacman tar.xz snap", "release:updateFlathub:ci": "tsc flathub/update-flathub.ts --skipLibCheck --target es2015 --moduleResolution node --module commonjs && node flathub/update-flathub.js", - "release:mac": "export NODE_ENV_ELECTRON_VITE=production && vite build && electron-builder -p always --mac --x64 --arm64", + "release:mac:x64": "export NODE_ENV_ELECTRON_VITE=production && vite build && electron-builder -p always --mac --x64", + "release:mac:arm64": "export NODE_ENV_ELECTRON_VITE=production && vite build && electron-builder -p always --mac --arm64", "dist:linux": "export NODE_ENV_ELECTRON_VITE=production && vite build && electron-builder --linux", "dist:linux:ci:deb": "yarn dist:linux deb --publish=never", "dist:linux:ci:rpm": "yarn dist:linux rpm --publish=never", @@ -249,7 +250,7 @@ "dist:linux:ci:flatpak": "npm run dist:linux tar.xz --publish=never", "dist:mac:base": "export NODE_ENV_ELECTRON_VITE=production && export CSC_IDENTITY_AUTO_DISCOVERY=false && vite build && electron-builder --mac", "dist:mac:x64": "yarn dist:mac:base --x64 --publish=never", - "dist:mac": "yarn dist:mac:base --x64 --arm64 --publish=never", + "dist:mac:arm64": "yarn dist:mac:base --arm64 --publish=never", "dist:win": "cross-env NODE_ENV_ELECTRON_VITE=production vite build && electron-builder --win nsis --publish=never", "build-signed:win": "vite build && electron-builder --win -c.win.certificateSubjectName=\"HyperPlay Labs Inc.\"", "lint": "eslint --cache -c .eslintrc --ext .tsx,ts ./src",