Skip to content

Commit

Permalink
Merge pull request #1260 from Chia-Network/macos-arm64
Browse files Browse the repository at this point in the history
ci: build for intel and arm macs
  • Loading branch information
TheLastCicada authored Jan 14, 2025
2 parents af1b028 + 411e056 commit 57148a1
Showing 1 changed file with 29 additions and 17 deletions.
46 changes: 29 additions & 17 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,14 @@ jobs:
artifact-name: cadt-linux-arm64
build-command: npm run create-linux-arm64-dist
sqlite-path: ./node_modules/sqlite3/build/Release/
- runs-on: macos-latest
- runs-on: macos-13
artifact-name: cadt-macos-x64
build-command: npm run create-mac-x64-dist
sqlite-path: ./node_modules/sqlite3/build/Release/
- runs-on: macos-latest
artifact-name: cadt-macos-arm64
build-command: npm run create-mac-arm64-dist
sqlite-path: ./node_modules/sqlite3/build/Release/
- runs-on: windows-2019
artifact-name: cadt-windows-x64
build-command: npm run create-win-x64-dist
Expand Down Expand Up @@ -129,15 +133,15 @@ jobs:

# Mac .pkg build + sign
- name: Import Apple installer signing certificate
if: matrix.runs-on == 'macos-latest' && steps.check_secrets.outputs.HAS_SIGNING_SECRET && contains( github.ref, '-rc')
if: startsWith(matrix.runs-on , 'macos') && steps.check_secrets.outputs.HAS_SIGNING_SECRET && contains( github.ref, '-rc')
uses: Apple-Actions/import-codesign-certs@v3
with:
keychain-password: ${{ secrets.KEYCHAIN_PASSWORD }}
p12-file-base64: ${{ secrets.APPLE_DEV_ID_INSTALLER }}
p12-password: ${{ secrets.APPLE_DEV_ID_INSTALLER_PASS }}

- name: Import Apple Application signing certificate
if: matrix.runs-on == 'macos-latest' && steps.check_secrets.outputs.HAS_SIGNING_SECRET && contains( github.ref, '-rc')
if: startsWith(matrix.runs-on , 'macos') && steps.check_secrets.outputs.HAS_SIGNING_SECRET && contains( github.ref, '-rc')
uses: Apple-Actions/import-codesign-certs@v3
with:
create-keychain: false # Created when importing the first cert
Expand All @@ -146,52 +150,52 @@ jobs:
p12-password: ${{ secrets.APPLE_DEV_ID_APP_PASS }}

- name: Prep building Mac .pkg
if: matrix.runs-on == 'macos-latest'
if: startsWith(matrix.runs-on , 'macos')
run: |
rm -rf ${{ github.workspace }}/build-scripts/macos/darwin/application || true
cp -r ${{ github.workspace }}/dist ${{ github.workspace }}/build-scripts/macos/application
- name: Sign Mac binaries
if: matrix.runs-on == 'macos-latest' && steps.check_secrets.outputs.HAS_SIGNING_SECRET && contains( github.ref, '-rc')
if: startsWith(matrix.runs-on , 'macos') && steps.check_secrets.outputs.HAS_SIGNING_SECRET && contains( github.ref, '-rc')
run: |
echo "Signing the binaries"
codesign -f -s "Developer ID Application: Chia Network Inc." --timestamp --options=runtime --entitlements ${{ github.workspace }}/build-scripts/macos/entitlements.mac.plist ${{ github.workspace }}/build-scripts/macos/application/cadt
codesign -f -s "Developer ID Application: Chia Network Inc." --timestamp ${{ github.workspace }}/build-scripts/macos/application/node_sqlite3.node
- name: Build Mac .pkg
if: matrix.runs-on == 'macos-latest'
if: startsWith(matrix.runs-on , 'macos')
run: |
# Makes the .pkg in ./build-scripts/macos/target/pkg
echo "Building the .pkg"
bash ${{ github.workspace }}/build-scripts/macos/build-macos.sh CADT
mkdir -p ${{ github.workspace }}/build-scripts/macos/target/ready-to-upload
cp ${{ github.workspace }}/build-scripts/macos/target/pkg/CADT-macos-installer-x64.pkg ${{ github.workspace }}/build-scripts/macos/target/ready-to-upload/CADT-macos-installer-x64.pkg
cp ${{ github.workspace }}/build-scripts/macos/target/pkg/CADT-macos-installer-x64.pkg ${{ github.workspace }}/build-scripts/macos/target/ready-to-upload/${{ matrix.artifact-name }}-installer.pkg
- name: Notarize Mac .pkg
if: matrix.runs-on == 'macos-latest' && steps.check_secrets.outputs.HAS_SIGNING_SECRET && contains( github.ref, '-rc')
if: startsWith(matrix.runs-on , 'macos') && steps.check_secrets.outputs.HAS_SIGNING_SECRET && contains( github.ref, '-rc')
run: |
mkdir -p ${{ github.workspace }}/build-scripts/macos/target/pkg-signed
echo "Signing the .pkg"
productsign --sign "Developer ID Installer: Chia Network Inc." ${{ github.workspace }}/build-scripts/macos/target/pkg/CADT-macos-installer-x64.pkg ${{ github.workspace }}/build-scripts/macos/target/pkg-signed/CADT-macos-installer-x64.pkg
productsign --sign "Developer ID Installer: Chia Network Inc." ${{ github.workspace }}/build-scripts/macos/target/pkg/${{ matrix.artifact-name }}-installer.pkg ${{ github.workspace }}/build-scripts/macos/target/pkg-signed/${{ matrix.artifact-name }}-installer.pkg
echo "Notarizing the .pkg"
xcrun notarytool submit \
--wait \
--apple-id "${{ secrets.APPLE_NOTARIZE_USERNAME }}" \
--password "${{ secrets.APPLE_NOTARIZE_PASSWORD }}" \
--team-id "${{ secrets.APPLE_TEAM_ID }}" \
"${{ github.workspace }}/build-scripts/macos/target/pkg-signed/CADT-macos-installer-x64.pkg"
"${{ github.workspace }}/build-scripts/macos/target/pkg-signed/${{ matrix.artifact-name }}-installer.pkg"
rm -f ${{ github.workspace }}/build-scripts/macos/target/ready-to-upload/*
mv ${{ github.workspace }}/build-scripts/macos/target/pkg-signed/CADT-macos-installer-x64.pkg ${{ github.workspace }}/build-scripts/macos/target/ready-to-upload/
mv ${{ github.workspace }}/build-scripts/macos/target/pkg-signed/${{ matrix.artifact-name }}-installer.pkg ${{ github.workspace }}/build-scripts/macos/target/ready-to-upload/
- name: Upload Mac Installer
if: matrix.runs-on == 'macos-latest'
if: startsWith(matrix.runs-on , 'macos')
uses: actions/upload-artifact@v4
with:
name: cadt-mac-installer
name: ${{ matrix.artifact-name }}-installer.pkg
path: ${{ github.workspace }}/build-scripts/macos/target/ready-to-upload

- name: Upload artifacts
Expand Down Expand Up @@ -305,11 +309,17 @@ jobs:
name: cadt-windows-x64
path: cadt-windows-x64

- name: Download MacOS artifacts
- name: Download MacOS x64 artifacts
uses: actions/download-artifact@v4
with:
name: cadt-macos-x64-installer.pkg
path: cadt-macos-x64-installer.pkg

- name: Download MacOS arm64 artifacts
uses: actions/download-artifact@v4
with:
name: cadt-mac-installer
path: cadt-mac-installer
name: cadt-macos-arm64-installer.pkg
path: cadt-macos-arm64-installer.pkg

- name: Download x64 Linux artifacts
uses: actions/download-artifact@v4
Expand Down Expand Up @@ -343,7 +353,8 @@ jobs:
- name: Create zips
run: |
zip -r cadt-windows-x64-${{ steps.tag-name.outputs.TAGNAME }}.zip cadt-windows-x64
zip -r cadt-macos-x64-${{ steps.tag-name.outputs.TAGNAME }}.zip cadt-mac-installer
zip -r cadt-macos-x64-${{ steps.tag-name.outputs.TAGNAME }}.zip cadt-macos-x64
zip -r cadt-macos-arm64-${{ steps.tag-name.outputs.TAGNAME }}.zip cadt-macos-arm64
zip -r cadt-linux-x64-${{ steps.tag-name.outputs.TAGNAME }}.zip cadt-linux-x64
zip -r cadt-linux-arm64-${{ steps.tag-name.outputs.TAGNAME }}.zip cadt-linux-arm64
Expand Down Expand Up @@ -377,6 +388,7 @@ jobs:
files: |
cadt-windows-x64-${{ steps.tag-name.outputs.TAGNAME }}.zip
cadt-macos-x64-${{ steps.tag-name.outputs.TAGNAME }}.zip
cadt-macos-arm64-${{ steps.tag-name.outputs.TAGNAME }}.zip
cadt-linux-x64-${{ steps.tag-name.outputs.TAGNAME }}.zip
cadt-linux-arm64-${{ steps.tag-name.outputs.TAGNAME }}.zip
cadt-linux-x64-deb/*.deb
Expand Down

0 comments on commit 57148a1

Please sign in to comment.