Merge pull request #5 from zevlee/fix-save-config #4
Workflow file for this run
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: Create GitHub Release | |
on: | |
push: | |
tags: | |
- '*' | |
jobs: | |
build-linux: | |
name: Build for Linux | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.x' | |
- name: Install dependencies | |
run: | | |
sudo apt update | |
sudo apt upgrade | |
sudo apt install desktop-file-utils | |
- name: Set up environment | |
run: | | |
cp .env.sample .env | |
- name: Build package | |
run: | | |
python3 build.py | |
- name: Store the distribution packages | |
uses: actions/upload-artifact@v4 | |
with: | |
name: linux-dist | |
path: dist/ | |
build-macos: | |
name: Build for macOS | |
runs-on: macos-12 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.x' | |
- name: Set up environment | |
env: | |
MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }} | |
MACOS_CERTIFICATE_PWD: ${{ secrets.MACOS_CERTIFICATE_PWD }} | |
MACOS_CERTIFICATE_NAME: ${{ secrets.MACOS_CERTIFICATE_NAME }} | |
MACOS_CI_KEYCHAIN_PWD: ${{ secrets.MACOS_CI_KEYCHAIN_PWD }} | |
MACOS_NOTARIZATION_APPLE_ID: ${{ secrets.MACOS_NOTARIZATION_APPLE_ID }} | |
MACOS_NOTARIZATION_TEAM_ID: ${{ secrets.MACOS_NOTARIZATION_TEAM_ID }} | |
MACOS_NOTARIZATION_PWD: ${{ secrets.MACOS_NOTARIZATION_PWD }} | |
run: | | |
# Decode certificate | |
echo $MACOS_CERTIFICATE | base64 --decode > certificate.p12 | |
# Create keychain | |
security create-keychain -p "$MACOS_CI_KEYCHAIN_PWD" build.keychain | |
security default-keychain -s build.keychain | |
security unlock-keychain -p "$MACOS_CI_KEYCHAIN_PWD" build.keychain | |
security import certificate.p12 -k build.keychain -P "$MACOS_CERTIFICATE_PWD" -T /usr/bin/codesign | |
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "$MACOS_CI_KEYCHAIN_PWD" build.keychain | |
# Create keychain profile | |
xcrun notarytool store-credentials "notarytool-profile" --apple-id "$MACOS_NOTARIZATION_APPLE_ID" --team-id "$MACOS_NOTARIZATION_TEAM_ID" --password "$MACOS_NOTARIZATION_PWD" | |
# Store info in environment file | |
cp .env.sample .env | |
echo 'CERT="'$MACOS_CERTIFICATE_NAME'"' >> .env | |
echo 'KEYC=notarytool-profile' >> .env | |
- name: Build package | |
run: | | |
python3 build.py | |
- name: Store the distribution packages | |
uses: actions/upload-artifact@v4 | |
with: | |
name: macos-dist | |
path: dist/ | |
build-macos-arm: | |
name: Build for macOS ARM | |
runs-on: macos-14 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.x' | |
- name: Set up environment | |
env: | |
MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }} | |
MACOS_CERTIFICATE_PWD: ${{ secrets.MACOS_CERTIFICATE_PWD }} | |
MACOS_CERTIFICATE_NAME: ${{ secrets.MACOS_CERTIFICATE_NAME }} | |
MACOS_CI_KEYCHAIN_PWD: ${{ secrets.MACOS_CI_KEYCHAIN_PWD }} | |
MACOS_NOTARIZATION_APPLE_ID: ${{ secrets.MACOS_NOTARIZATION_APPLE_ID }} | |
MACOS_NOTARIZATION_TEAM_ID: ${{ secrets.MACOS_NOTARIZATION_TEAM_ID }} | |
MACOS_NOTARIZATION_PWD: ${{ secrets.MACOS_NOTARIZATION_PWD }} | |
run: | | |
# Decode certificate | |
echo $MACOS_CERTIFICATE | base64 --decode > certificate.p12 | |
# Create keychain | |
security create-keychain -p "$MACOS_CI_KEYCHAIN_PWD" build.keychain | |
security default-keychain -s build.keychain | |
security unlock-keychain -p "$MACOS_CI_KEYCHAIN_PWD" build.keychain | |
security import certificate.p12 -k build.keychain -P "$MACOS_CERTIFICATE_PWD" -T /usr/bin/codesign | |
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "$MACOS_CI_KEYCHAIN_PWD" build.keychain | |
# Create keychain profile | |
xcrun notarytool store-credentials "notarytool-profile" --apple-id "$MACOS_NOTARIZATION_APPLE_ID" --team-id "$MACOS_NOTARIZATION_TEAM_ID" --password "$MACOS_NOTARIZATION_PWD" | |
# Store info in environment file | |
cp .env.sample .env | |
echo 'CERT="'$MACOS_CERTIFICATE_NAME'"' >> .env | |
echo 'KEYC=notarytool-profile' >> .env | |
- name: Build package | |
run: | | |
python3 build.py | |
- name: Store the distribution packages | |
uses: actions/upload-artifact@v4 | |
with: | |
name: macos-arm-dist | |
path: dist/ | |
build-windows: | |
name: Build for Windows | |
runs-on: windows-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.x' | |
- name: Set up environment | |
run: | | |
cp .env.sample .env | |
- name: Build package | |
run: | | |
python3 build.py | |
- name: Store the distribution packages | |
uses: actions/upload-artifact@v4 | |
with: | |
name: windows-dist | |
path: dist/ | |
github-release: | |
name: GitHub Release | |
needs: [build-linux, build-macos, build-macos-arm, build-windows] | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
id-token: write | |
steps: | |
- name: Download Linux dist | |
uses: actions/download-artifact@v4 | |
with: | |
name: linux-dist | |
path: dist/ | |
- name: Download macOS dist | |
uses: actions/download-artifact@v4 | |
with: | |
name: macos-dist | |
path: dist/ | |
- name: Download macOS ARM dist | |
uses: actions/download-artifact@v4 | |
with: | |
name: macos-arm-dist | |
path: dist/ | |
- name: Download Windows dist | |
uses: actions/download-artifact@v4 | |
with: | |
name: windows-dist | |
path: dist/ | |
- name: Create GitHub Release | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
run: >- | |
gh release create | |
'${{ github.ref_name }}' | |
--repo '${{ github.repository }}' | |
--notes "" | |
- name: Upload dists to GitHub Release | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
run: >- | |
gh release upload | |
'${{ github.ref_name }}' dist/** | |
--repo '${{ github.repository }}' |