Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: build for intel and arm macs #1260

Merged
merged 7 commits into from
Jan 14, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading