mirror of
https://github.com/zen-browser/desktop.git
synced 2026-02-18 17:38:23 +00:00
Refactor macOS build workflows to improve artifact handling and extraction process
This commit is contained in:
8
.github/workflows/macos-release-build.yml
vendored
8
.github/workflows/macos-release-build.yml
vendored
@@ -139,14 +139,14 @@ jobs:
|
||||
- name: Rename artifacts
|
||||
run: |
|
||||
mv ./dist/output.mar macos-${{ matrix.arch }}.mar
|
||||
mv ./engine/obj-${{ matrix.arch }}-apple-darwin ./obj-${{ matrix.arch }}-apple-darwin
|
||||
tar -czf zen-${{ matrix.arch }}-apple-darwin-dist.tar.gz ./engine/obj-${arch}-apple-darwin/dist/
|
||||
|
||||
- name: Upload dist app folder
|
||||
- name: Upload dist dmg
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
retention-days: 1
|
||||
name: obj-${{ matrix.arch }}-apple-darwin
|
||||
path: ./obj-${{ matrix.arch }}-apple-darwin
|
||||
name: zen-${{ matrix.arch }}-apple-darwin-dist.tar.gz
|
||||
path: ./zen-${{ matrix.arch }}-apple-darwin-dist.tar.gz
|
||||
|
||||
- name: Upload build artifact (.mar)
|
||||
uses: actions/upload-artifact@v4
|
||||
|
||||
@@ -87,17 +87,64 @@ jobs:
|
||||
- name: Download Firefox source and dependencies
|
||||
run: pnpm surfer download
|
||||
|
||||
- name: Download x86_64 app folder from artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: obj-x86_64-apple-darwin
|
||||
path: engine/obj-x86_64-apple-darwin
|
||||
- name: Bootstrap
|
||||
run: |
|
||||
cd engine
|
||||
export SURFER_PLATFORM="darwin"
|
||||
export PATH="$(python3 -m site --user-base)/bin":$PATH
|
||||
./mach --no-interactive bootstrap --application-choice browser --no-system-changes
|
||||
cd ..
|
||||
|
||||
- name: Download aarch64 app folder from artifacts
|
||||
- name: Download x86_64 dist from artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: obj-aarch64-apple-darwin
|
||||
path: engine/obj-aarch64-apple-darwin
|
||||
name: zen-x86_64-apple-darwin-dist.tar.gz
|
||||
|
||||
- name: Download aarch64 dist from artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: zen-aarch64-apple-darwin-dist.tar.gz
|
||||
|
||||
- name: Extract 📦
|
||||
run: |
|
||||
brew install gnu-tar
|
||||
export PATH=/usr/local/opt/gnu-tar/libexec/gnubin:$PATH
|
||||
|
||||
mv ./zen-x86_64-apple-darwin-dist.tar.gz ./engine/
|
||||
mv ./zen-aarch64-apple-darwin-dist.tar.gz ./engine/
|
||||
|
||||
tar -xf ./zen-x86_64-apple-darwin-dist.tar.gz
|
||||
tar -xf ./zen-aarch64-apple-darwin-dist.tar.gz
|
||||
|
||||
- name: Find first .app folder name
|
||||
run: |
|
||||
cd engine/obj-x86_64-apple-darwin/dist
|
||||
export APP_NAME=$(basename "$(find . -maxdepth 1 -name "Zen *.app" -type d | head -n 1)" .app)
|
||||
echo "APP_NAME=$APP_NAME" >> $GITHUB_ENV
|
||||
echo "APP_NAME=$APP_NAME"
|
||||
|
||||
- name: Remove any existing .app folders
|
||||
run: |
|
||||
rm -rf "./obj-x86_64-apple-darwin/dist/zen/*.app" || true
|
||||
rm -rf "./obj-aarch64-apple-darwin/dist/zen/*.app" || true
|
||||
|
||||
- name: Extract .app from dmg
|
||||
run: |
|
||||
hdiutil attach ./obj-x86_64-apple-darwin/dist/zen.macos-x86_64.dmg
|
||||
ls -la /Volumes
|
||||
ls -la "/Volumes/${{ env.APP_NAME }}"
|
||||
echo "---"
|
||||
cp -R "/Volumes/${{ env.APP_NAME }}/${{ env.APP_NAME }}.app" "./obj-x86_64-apple-darwin/dist/zen/"
|
||||
hdiutil detach "/Volumes/${{ env.APP_NAME }}"
|
||||
echo "Done extracting x86_64 .app"
|
||||
echo "--------------------"
|
||||
hdiutil attach ./obj-aarch64-apple-darwin/dist/zen.macos-aarch64.dmg
|
||||
ls -la /Volumes
|
||||
ls -la "/Volumes/${{ env.APP_NAME }}"
|
||||
cp -R "/Volumes/${{ env.APP_NAME }}/${{ env.APP_NAME }}.app" "./obj-aarch64-apple-darwin/dist/zen/"
|
||||
hdiutil detach "/Volumes/${{ env.APP_NAME }}"
|
||||
echo "Done extracting aarch64 .app"
|
||||
echo "--------------------"
|
||||
|
||||
- name: List .app folders
|
||||
run: |
|
||||
@@ -107,21 +154,6 @@ jobs:
|
||||
find . -maxdepth 1 -name "*.app" -type d
|
||||
cd ../..
|
||||
|
||||
- name: Find first .app folder name
|
||||
run: |
|
||||
cd engine/obj-x86_64-apple-darwin/dist
|
||||
export APP_NAME=$(basename "$(find . -maxdepth 1 -name "Zen *.app" -type d | head -n 1)")
|
||||
echo "APP_NAME=$APP_NAME" >> $GITHUB_ENV
|
||||
echo "APP_NAME=$APP_NAME"
|
||||
|
||||
- name: Bootstrap
|
||||
run: |
|
||||
cd engine
|
||||
export SURFER_PLATFORM="darwin"
|
||||
export PATH="$(python3 -m site --user-base)/bin":$PATH
|
||||
./mach --no-interactive bootstrap --application-choice browser --no-system-changes
|
||||
cd ..
|
||||
|
||||
- name: Import
|
||||
run: pnpm surfer import
|
||||
|
||||
@@ -145,13 +177,13 @@ jobs:
|
||||
run: |
|
||||
cd engine
|
||||
echo "Copying provisioning profile for .app on both architectures (${{ env.APP_NAME }})"
|
||||
cp ./Zen_Browser.provisionprofile "./obj-x86_64-apple-darwin/dist/${{ env.APP_NAME }}/Contents/embedded.provisionprofile"
|
||||
cp ./Zen_Browser.provisionprofile "./obj-aarch64-apple-darwin/dist/${{ env.APP_NAME }}/Contents/embedded.provisionprofile"
|
||||
cp ./Zen_Browser.provisionprofile "./obj-x86_64-apple-darwin/dist/${{ env.APP_NAME }}.app/Contents/embedded.provisionprofile"
|
||||
cp ./Zen_Browser.provisionprofile "./obj-aarch64-apple-darwin/dist/${{ env.APP_NAME }}.app/Contents/embedded.provisionprofile"
|
||||
|
||||
- name: Unify architectures
|
||||
run: |
|
||||
cd engine
|
||||
./mach python "./toolkit/mozapps/installer/unify.py" "./obj-x86_64-apple-darwin/dist/${{ env.APP_NAME }}" "./obj-aarch64-apple-darwin/dist/${{ env.APP_NAME }}"
|
||||
./mach python "./toolkit/mozapps/installer/unify.py" "./obj-x86_64-apple-darwin/dist/${{ env.APP_NAME }}.app" "./obj-aarch64-apple-darwin/dist/${{ env.APP_NAME }}.app"
|
||||
echo "Merged aaarch64 into x86_64!"
|
||||
|
||||
- name: Import APPLE DEVELOPER ID CERTIFICATE for .app
|
||||
@@ -163,7 +195,7 @@ jobs:
|
||||
- name: Sign .app
|
||||
run: |
|
||||
cd engine
|
||||
./mach macos-sign -v -r -c "release" -e "production" -a "./obj-x86_64-apple-darwin/dist/zen/${{ env.APP_NAME }}" --rcodesign-p12-file zenCert.p12 --rcodesign-p12-password-file zenpCertPassword.passwd
|
||||
./mach macos-sign -v -r -c "release" -e "production" -a "./obj-x86_64-apple-darwin/dist/zen/${{ env.APP_NAME }}.app" --rcodesign-p12-file zenCert.p12 --rcodesign-p12-password-file zenpCertPassword.passwd
|
||||
|
||||
- name: Remove sensitive information
|
||||
run: |
|
||||
@@ -172,7 +204,12 @@ jobs:
|
||||
- name: Create DMG
|
||||
run: |
|
||||
cd engine
|
||||
./mach python -m mozbuild.action.make_dmg ./obj-x86_64-apple-darwin/dist/zen zen-macOS-universal-temp.dmg
|
||||
./mach python -m mozbuild.action.make_dmg \
|
||||
--volume-name "${{ env.APP_NAME }}" \
|
||||
--background ./browser/branding/${{ inputs.release-branch }}/background.png \
|
||||
--icon ./browser/branding/${{ inputs.release-branch }}/firefox.icns \
|
||||
--dsstore ./browser/branding/${{ inputs.release-branch }}/dsstore \
|
||||
./obj-x86_64-apple-darwin/dist/zen zen-macOS-universal-temp.dmg
|
||||
|
||||
- name: Sign .dmg
|
||||
run: |
|
||||
|
||||
Reference in New Issue
Block a user