From ddef3cda53649d173d6bee93f5df3965307e91cb Mon Sep 17 00:00:00 2001 From: RobertGemmaJr Date: Mon, 17 Jun 2024 13:18:36 -0400 Subject: [PATCH] ci: Add option for seperate mac builds --- .github/workflows/workflow-package.yml | 134 ++----------------------- package.json | 3 +- 2 files changed, 12 insertions(+), 125 deletions(-) diff --git a/.github/workflows/workflow-package.yml b/.github/workflows/workflow-package.yml index ac2bc9efc..fe25ca548 100644 --- a/.github/workflows/workflow-package.yml +++ b/.github/workflows/workflow-package.yml @@ -1,125 +1,6 @@ -# name: 📦 Package Workflow - -# # Workflow dispatch for packaging an electron executable -# on: -# workflow_dispatch: -# inputs: -# setting: -# type: choice -# options: -# - "home" -# - "clinic" -# default: "home" -# required: true -# description: Package the app for 'home' or 'clinic' use -# os: -# type: choice -# description: Which operating system to make executables for -# required: true -# default: "All" -# options: -# - "All" -# - "Windows" -# - "macOS" -# - "Linux" -# jobs: -# package-and-upload: -# name: Package and Upload -# runs-on: ${{ matrix.os }} - -# # Run action for [home/clinic] in [windows/macOS/ubuntu] based on user input -# strategy: -# matrix: -# # TODO: There's got to be a better way to handle this? -# os: ${{ -# (github.event.inputs.os == 'All' && fromJSON('["ubuntu-latest", "macOS-13", "windows-latest"]')) || -# (github.event.inputs.os == 'Windows' && fromJSON('["windows-latest"]')) || -# (github.event.inputs.os == 'macOS' && fromJSON('["macOS-13"]')) || -# (github.event.inputs.os == 'Linux' && fromJSON('["ubuntu-latest"]')) }} -# fail-fast: false # A failed build will not end the other matrix jobs - -# steps: -# # Set up runner -# - name: ⬇️ Checkout repo -# uses: actions/checkout@v4 - -# - name: ⎔ Setup node -# uses: actions/setup-node@v4 -# with: -# node-version-file: .nvmrc -# cache: npm -# - name: 🐍 Setup Python -# uses: actions/setup-python@v4 -# with: -# python-version: 3.12 - -# # Install dependencies and set up environment -# - name: 🅿️ Install Python tools -# run: pip install setuptools -# - name: 📥 Install Dependencies -# run: npm ci - -# # TEMP -# - name: Test - electron rebuild -# run: npx electron-rebuild - -# # Set up the environment -# - name: 🔃 Load .env file (.env.${{github.event.inputs.setting}}) -# uses: xom9ikk/dotenv@v2 -# with: -# path: ./env -# mode: ${{github.event.inputs.setting}} - -# # Package the app and make the installers -# - name: 📦 Make app installer - Windows -# if: startsWith(matrix.os, 'windows') -# run: npm run make:windows -# - name: 📦 Make app installer - Mac -# if: startsWith(matrix.os, 'mac') -# run: npm run make:mac -# - name: 📦 Make app installer - Linux -# if: startsWith(matrix.os, 'ubuntu') -# run: npm run make:linux - -# # Get package info -# - name: Get package name and version -# id: package_info -# run: | -# echo "name=$(cat package.json | jq -r '.name')" >> $GITHUB_OUTPUT -# echo "version=$(cat package.json | jq -r '.version')" >> $GITHUB_OUTPUT -# shell: bash - -# - run: ls ./out/make -# shell: bash - -# # Upload installers to github action -# # TODO @brown-ccv #247: Can we use the publish command here? -# - name: ⬆ Upload installer - Windows -# uses: actions/upload-artifact@v3 -# if: startsWith(matrix.os, 'windows') -# with: -# name: ${{ format('win-installer-{0}', github.event.inputs.setting) }} -# path: out/make/squirrel.windows/x64/${{ steps.package_info.outputs.name }}-${{ steps.package_info.outputs.version }} Setup.exe -# if-no-files-found: error - -# - name: ⬆ Upload installer - Mac -# uses: actions/upload-artifact@v3 -# if: startsWith(matrix.os, 'mac') -# with: -# name: ${{ format('mac-installer-{0}', github.event.inputs.setting) }} -# path: out/make/${{ steps.package_info.outputs.name }}-${{ steps.package_info.outputs.version }}-universal.dmg -# if-no-files-found: error -# - name: ⬆ Upload installer - Linux -# uses: actions/upload-artifact@v3 -# if: startsWith(matrix.os, 'ubuntu') -# with: -# name: ${{ format('linux-installer-{0}', github.event.inputs.setting) }} -# path: out/make/deb/x64/${{ steps.package_info.outputs.name }}_${{ steps.package_info.outputs.version }}_amd64.deb -# if-no-files-found: error - +# Workflow dispatch for packaging an electron executable name: 📦 Package Workflow -# Workflow dispatch for packaging an electron executable on: workflow_dispatch: inputs: @@ -139,7 +20,8 @@ on: options: - "All" - "Windows" - - "macOS" + - "macOS-x64" + - "macOS-arm64" - "Linux" jobs: @@ -152,9 +34,10 @@ jobs: id: set-matrix run: | [ ${{ github.event.inputs.os }} == Windows ] && matrix='["windows-latest"]' - [ ${{ github.event.inputs.os }} == macOS ] && matrix='["macOS-13"]' + [ ${{ github.event.inputs.os }} == macOS-x64 ] && matrix='["macOS-13"]' + [ ${{ github.event.inputs.os }} == macOS-arm64 ] && matrix='["macOS-latest"]' [ ${{ github.event.inputs.os }} == Linux ] && matrix='["ubtuntu-latest"]' - [ ${{ github.event.inputs.os }} == All ] && matrix='["windows-latest", "macOS-13", "ubuntu-latest"]' + [ ${{ github.event.inputs.os }} == All ] && matrix='["windows-latest", "macOS-13", "macOS-latest", "ubuntu-latest"]' echo "matrix=$matrix" >> $GITHUB_OUTPUT package-and-upload: @@ -172,7 +55,8 @@ jobs: shell: bash run: | [ ${{ matrix.os }} == windows-latest ] && osShortName='windows' - [ ${{ matrix.os }} == macOS-13 ] && osShortName='mac' + [ ${{ matrix.os }} == macOS-13 ] && osShortName='mac-x64' + [ ${{ matrix.os }} == macOS-latest ] && osShortName='mac-arm64' [ ${{ matrix.os }} == ubuntu-latest ] && osShortName='linux' echo name=$osShortName >> $GITHUB_OUTPUT @@ -222,6 +106,8 @@ jobs: path="out/make/squirrel.windows/x64/${packageName}-${packageVersion} Setup.exe" elif [[ ${{ matrix.os }} == macOS-13 ]]; then path="out/make/${packageName}-${packageVersion}-x64.dmg" + elif [[ ${{ matrix.os }} == macOS-latest ]]; then + path="out/make/${packageName}-${packageVersion}-arm64.dmg" elif [[ ${{ matrix.os }} == ubuntu-latest ]]; then path="out/make/deb/x64/${packageName}_${packageVersion}_amd64.deb" fi diff --git a/package.json b/package.json index 04e74ac4d..fb926950a 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,8 @@ "make": "electron-forge make", "make:windows": "electron-forge make --arch x64 --targets @electron-forge/maker-squirrel", "make:linux": "electron-forge make --arch x64 --targets @electron-forge/maker-deb", - "make:mac": "electron-forge make --arch x64 --targets @electron-forge/maker-dmg", + "make:mac-x64": "electron-forge make --arch x64 --targets @electron-forge/maker-dmg", + "make:mac-arm64": "electron-forge make --arch x64 --targets @electron-forge/maker-dmg", "cli": "node cli.mjs", "commit": "git-cz", "format": "prettier --write .",