Github Actions workflow with Notarization #10
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: Build & Notarize | |
# on: | |
# push: | |
# tags: | |
# - 'v*.*.*' | |
on: "pull_request" # only active during testing | |
jobs: | |
release: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [macos-latest] | |
steps: | |
- uses: actions/checkout@v2 | |
# Node.js (for package scripts) | |
- uses: actions/setup-node@v1 | |
with: | |
node-version: "20.11" | |
# Python | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: "3.10" | |
- uses: snok/install-poetry@v1 | |
with: | |
version: "1.7.1" | |
virtualenvs-create: true | |
virtualenvs-in-project: false | |
virtualenvs-path: ~/my-custom-path | |
installer-parallel: true | |
# Install & Build | |
- run: yarn install-deps | |
- run: yarn build:frontend | |
#- run: rm -rf /dist && GH_TOKEN=${{ secrets.github_token}} NODE_ENV=production npm exec --package=electron-builder -- electron-builder build --mac --arm64 --publish always | |
# Prepare distribution release (build and notarize .etc) | |
- name: "Build distribution" | |
env: | |
CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }} | |
CSC_LINK: ${{ secrets.CSC_LINK }} | |
APPLEID: ${{ secrets.APPLEID }} | |
APPLEIDPASS: ${{ secrets.APPLEIDPASS }} | |
run: npm run dist | |
- name: Upload release attachment | |
uses: actions/github-script@v4 | |
with: | |
script: | | |
const fs = require('fs'); | |
const tag = context.ref.replace("refs/tags/", ""); | |
console.log("tag = ", tag); | |
// Get release for this tag | |
const release = await github.repos.getReleaseByTag({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
tag | |
}); | |
// Upload the release asset | |
await github.repos.uploadReleaseAsset({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
release_id: release.data.id, | |
name: "Operate App.app", | |
data: await fs.readFileSync("dist/mac/Operate App.app") | |
}); |