Add job for building signed and notarized dmg for macos

This commit is contained in:
Martin Kleinschrodt 2021-12-25 10:33:24 +01:00
parent 9c60062b21
commit 6ee9b7ecea
2 changed files with 32 additions and 3 deletions

View File

@ -61,7 +61,7 @@ jobs:
name: padloc-linux-${{ github.sha }}-unpacked
path: packages/electron/dist/linux-unpacked
if-no-files-found: error
macos:
macos_unsigned:
if: ${{ !github.event.inputs.targets || github.event.inputs.targets == 'All' || github.event.inputs.targets == 'macOS' }}
runs-on: macos-11
environment: ${{ github.event.inputs.environment || 'Local' }}
@ -85,6 +85,35 @@ jobs:
name: padloc-macos-${{ github.sha }}-unsigned.dmg
path: packages/electron/dist/*.dmg
if-no-files-found: error
macos_signed:
if: ${{ !github.event.inputs.targets || github.event.inputs.targets == 'All' || github.event.inputs.targets == 'macOS' }}
runs-on: macos-11
environment: ${{ github.event.inputs.environment || 'Local' }}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version-file: ".nvmrc"
- name: Install dependencies
run: |
npm i -g npm@8.2.0
npm ci
- name: Build
run: |
npm run electron:build
env:
CSC_IDENTITY_AUTO_DISCOVERY: false
CSC_LINK: ${{ secrets.PL_MACOS_SIGNING_CERT_BASE64 }}
CSC_PASSWORD: ${{ secrets.PL_MACOS_SIGNING_CERT_PASSWORD }}
PL_MACOS_NOTARIZE_APPLE_ID: ${{ secrets.PL_MACOS_NOTARIZE_APPLE_ID }}
PL_MACOS_NOTARIZE_PASSWORD: ${{ secrets.PL_MACOS_NOTARIZE_PASSWORD }}
PL_PWA_URL: ${{ secrets.PL_PWA_URL }}
- name: Archive dmg
uses: actions/upload-artifact@v2
with:
name: padloc-${{ github.sha }}-signed.dmg
path: packages/electron/dist/*.dmg
if-no-files-found: error
windows:
if: ${{ !github.event.inputs.targets || github.event.inputs.targets == 'All' || github.event.inputs.targets == 'Windows' }}
runs-on: windows-2019

View File

@ -5,8 +5,8 @@ exports.default = async function notarizing(context) {
const rootDir = resolve(__dirname, "../../..");
const assetsDir = resolve(rootDir, process.env.PL_ASSETS_DIR || "assets");
const { appId } = require(join(assetsDir, "manifest.json"));
const appleId = process.env.PL_NOTARIZE_APPLE_ID;
const appleIdPassword = process.env.PL_NOTARIZE_APPLE_ID_PASSWORD;
const appleId = process.env.PL_MACOS_NOTARIZE_APPLE_ID;
const appleIdPassword = process.env.PL_MACOS_NOTARIZE_PASSWORD;
if (!appleId) {
console.warn("Skipping Notarization - No Apple ID provided");