Skip to content

Commit

Permalink
Add Github Actions
Browse files Browse the repository at this point in the history
  • Loading branch information
DmytroVasin committed Sep 28, 2024
1 parent 5892db7 commit 7231487
Show file tree
Hide file tree
Showing 3 changed files with 211 additions and 17 deletions.
124 changes: 124 additions & 0 deletions .github/workflows/make.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
name: Build Installers

on: push

jobs:
macos:
name: Build for macOS

strategy:
matrix:
os: [macos-latest]

runs-on: ${{ matrix.os }}

steps:
- name: Install Python
uses: actions/setup-python@v5
with:
python-version: 3.12

# https://github.com/electron/forge/issues/2807
# - run: python3 -m pip install setuptools --break-system-packages
- name: Set up Python for appdmg to be installed
run: python3 -m pip install setuptools

- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20

- run: |
npm install
npm install -g [email protected]
# - name: macOS certificate
# env:
# APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
# APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
# run: |
# KEY_CHAIN=build.keychain
# CERTIFICATE_P12=certificate.p12
# echo $APPLE_CERTIFICATE | base64 --decode > $CERTIFICATE_P12
# security create-keychain -p actions $KEY_CHAIN
# security default-keychain -s $KEY_CHAIN
# security unlock-keychain -p actions $KEY_CHAIN
# security import $CERTIFICATE_P12 -k $KEY_CHAIN -P $APPLE_CERTIFICATE_PASSWORD -T /usr/bin/codesign;
# security set-key-partition-list -S apple-tool:,apple: -s -k actions $KEY_CHAIN
# rm -fr *.p12

- run: npm run make -- --arch=universal

- uses: actions/upload-artifact@v4
with:
name: build_${{ matrix.os }}
path: out/make
if-no-files-found: error
retention-days: 1

linux:
name: Build for Linux

strategy:
matrix:
os: [ubuntu-latest]

runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20

# - name: Fix Permissions
# # Workaround for https://github.com/electron/electron/issues/17972
# run: |
# sudo chmod 4755 node_modules/electron/dist/chrome-sandbox
# sudo chown root node_modules/electron/dist/chrome-sandbox

# sudo apt install libx11-dev libxtst-dev libwayland-dev libxkbcommon-dev
- run: npm install

- run: npm run make

- uses: actions/upload-artifact@v4
with:
name: build_${{ matrix.os }}
path: out/make
if-no-files-found: error
retention-days: 1

windows:
name: Build for Windows

strategy:
matrix:
os: [windows-latest]

runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20

# - name: Install Dependencies
# # For some reason cmake.js sometimes skips the build step in CI on Windows in this
# # case. So we install and execute cmake.js manually.
# run: |
# npm install cmake-js -g
# npx cmake-js install
# npm install

- run: npm install

- run: npm run make

- uses: actions/upload-artifact@v4
with:
name: build_${{ matrix.os }}
path: out/make
if-no-files-found: error
retention-days: 1
57 changes: 57 additions & 0 deletions release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# name: Release Installers

# on:
# push:
# tags:
# - "v*"

# jobs:
# macos:
# name: Release for macOS

# strategy:
# matrix:
# os: [macos-latest] # ubuntu-latest, windows-latest

# runs-on: ${{ matrix.os }}

# steps:
# - name: Install Python
# uses: actions/setup-python@v5
# with:
# python-version: 3.12

# # https://github.com/electron/forge/issues/2807
# # - run: python3 -m pip install setuptools --break-system-packages
# - name: Set up Python for appdmg to be installed
# run: python3 -m pip install setuptools

# - uses: actions/checkout@v4
# - uses: actions/setup-node@v4
# with:
# node-version: 20

# - name: macOS certificate
# env:
# APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
# APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
# run: |
# KEY_CHAIN=build.keychain
# CERTIFICATE_P12=certificate.p12
# echo $APPLE_CERTIFICATE | base64 --decode > $CERTIFICATE_P12
# security create-keychain -p actions $KEY_CHAIN
# security default-keychain -s $KEY_CHAIN
# security unlock-keychain -p actions $KEY_CHAIN
# security import $CERTIFICATE_P12 -k $KEY_CHAIN -P $APPLE_CERTIFICATE_PASSWORD -T /usr/bin/codesign;
# security set-key-partition-list -S apple-tool:,apple: -s -k actions $KEY_CHAIN
# rm -fr *.p12

# - name: publish
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# APPLE_ID: ${{ secrets.APPLE_ID }}
# APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }}
# APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
# APPLE_SIGNING_ID: ${{ secrets.APPLE_SIGNING_ID }}
# shell: bash
# run: npm run publish -- --dry-run --arch=universal
47 changes: 30 additions & 17 deletions tools/forge/forge.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@ const rootDir = process.cwd();

module.exports = {
packagerConfig: {
name: packageJson.name,
executableName: packageJson.productName,
asar: true,
executableName: 'DrawPen',
icon: path.join(rootDir, 'assets/build/icon'),
// osxSign: {
// identity: 'Developer ID Application: Your Name (TeamID)', // Ваша цифровая подпись Apple Developer
Expand Down Expand Up @@ -38,22 +39,34 @@ module.exports = {
},
}
},
// {
// name: "@electron-forge/maker-squirrel", // Maker для Windows (squirrel)
// config: {}
// },
// {
// name: "@electron-forge/maker-zip", // Maker для создания zip-архива (включая macOS)
// platforms: ["darwin", "linux"]
// },
// {
// name: "@electron-forge/maker-deb", // Maker для Linux (deb)
// config: {}
// },
// {
// name: "@electron-forge/maker-rpm", // Maker для Linux (rpm)
// config: {}
// }
{
name: "@electron-forge/maker-squirrel", // Maker для Windows (squirrel)
config: {}
},
{
name: "@electron-forge/maker-zip", // Maker для создания zip-архива (включая macOS)
platforms: ["darwin", "linux"]
},
{
name: "@electron-forge/maker-deb", // Maker для Linux (deb)
config: {
options: {
name: packageJson.name,
productName: packageJson.productName,
bin: packageJson.productName, // same as productName
}
}
},
{
name: "@electron-forge/maker-rpm", // Maker для Linux (rpm)
config: {
options: {
name: packageJson.name,
productName: packageJson.productName,
bin: packageJson.productName, // same as productName
}
}
}
],
plugins: [
{
Expand Down

0 comments on commit 7231487

Please sign in to comment.