Build macOS release #72
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build macOS release | |
on: | |
workflow_dispatch: | |
inputs: | |
branch: | |
description: 'Branch to use for building release' | |
required: true | |
default: 'master' | |
borg_version: | |
description: 'Borg version to package' | |
required: true | |
default: '1.4.0' | |
macos_version: | |
description: 'macOS version for building' | |
required: true | |
default: 'macos-14' | |
python_version: | |
description: 'Python version for building' | |
required: true | |
default: '3.12' | |
jobs: | |
build: | |
runs-on: ${{ github.event.inputs.macos_version }} | |
steps: | |
- name: Check out selected branch | |
uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.inputs.branch }} | |
- name: Set up Python ${{ inputs.python_version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ inputs.python_version }} | |
- name: Install system dependencies | |
run: | | |
brew install openssl readline xz | |
- name: Install build dependencies | |
run: | | |
brew install --cask sparkle | |
brew install create-dmg | |
pip3 install --break-system-packages --upgrade pip setuptools wheel | |
pip3 install --break-system-packages -r dev.txt | |
working-directory: requirements.d | |
- name: Install Vorta | |
run: | | |
pip3 install --break-system-packages . | |
- name: Package with PyInstaller | |
run: | | |
pyinstaller --clean --noconfirm package/vorta.spec | |
cp -R $(brew --prefix)/Caskroom/sparkle/*/Sparkle.framework dist/Vorta.app/Contents/Frameworks/ | |
curl -LJO https://github.com/borgbackup/borg/releases/download/${{ github.event.inputs.borg_version }}/borg-macos1012.tgz | |
tar xvf borg-macos1012.tgz -C dist/Vorta.app/Contents/Resources/ | |
cd dist && zip -rq --symlinks Vorta.zip Vorta.app | |
- name: Codesign executable | |
continue-on-error: false | |
working-directory: dist | |
env: | |
MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }} | |
MACOS_CERTIFICATE_PWD: ${{ secrets.MACOS_CERTIFICATE_PWD }} | |
CERTIFICATE_NAME: ${{ secrets.MACOS_CERTIFICATE_NAME }} | |
APPLE_ID_USER: ${{ secrets.APPLE_ID_USER }} | |
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} | |
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} | |
run: | | |
echo $MACOS_CERTIFICATE | base64 --decode > certificate.p12 | |
security create-keychain -p 123 build.keychain | |
security default-keychain -s build.keychain | |
security unlock-keychain -p 123 build.keychain | |
security import certificate.p12 -k build.keychain -A -P $MACOS_CERTIFICATE_PWD -T /usr/bin/codesign | |
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k 123 build.keychain | |
python3 ../package/fix_app_qt_folder_names_for_codesign.py Vorta.app | |
sh ../package/macos-package-app.sh | |
# - name: Setup tmate session | |
# uses: mxschmitt/action-tmate@v3 | |
# if: ${{ failure() }} | |
# timeout-minutes: 15 | |
- name: Upload build | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Vorta.dmg | |
path: dist/Vorta.dmg | |
retention-days: 60 |