Skip to content

Merge branch 'main' of https://github.com/Thorium-Sim/thorium #158

Merge branch 'main' of https://github.com/Thorium-Sim/thorium

Merge branch 'main' of https://github.com/Thorium-Sim/thorium #158

Workflow file for this run

name: Build/release
on:
push:
branches:
- main
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Check out Git repository
uses: actions/checkout@v4
- name: Install Node.js, NPM
uses: actions/setup-node@v4
with:
node-version: 22
cache: 'npm'
- name: Install libs
run: sudo apt-get install libudev-dev
- name: Install Dependencies
run: |
npm install --force
npm install --force @rollup/rollup-linux-x64-gnu
- name: Semantic Release
run: |
npm run semantic-release
- name: Archive production artifacts
uses: actions/upload-artifact@v4
with:
name: build
path: build
release:
runs-on: ${{ matrix.os }}
needs: build
strategy:
matrix:
include:
- os: macos-latest
arch: x64
- os: macos-latest
arch: arm64
- os: windows-latest
arch: x64
steps:
- name: Check out Git repository
uses: actions/checkout@v4
with:
ref: "main"
- name: Install Node.js, NPM
uses: actions/setup-node@v4
with:
node-version: 22
- name: Install Dependencies
run: |
npm install --force
- uses: actions/setup-python@v4
if: startsWith(matrix.os, 'macos')
with:
python-version: "3.9" # Needed for the older version of Node Gyp
- name: Download production artifacts
uses: actions/download-artifact@v4
with:
name: build
path: build
- name: Prepare for app signing
if: startsWith(matrix.os, 'macos')
run: ./scripts/add-osx-cert.sh
env:
CERTIFICATE_OSX_P12: ${{ secrets.mac_cert }}
CERTIFICATE_PASSWORD: ${{ secrets.mac_cert_password }}
- name: Prepare for app notarization
if: startsWith(matrix.os, 'macos')
# Import Apple API key for app notarization on macOS
run: |
mkdir -p ~/private_keys/
echo '${{ secrets.api_key }}' > ~/private_keys/AuthKey_${{ secrets.api_key_id }}.p8
- name: Build/release Electron app
run: npm run publish -- --arch=${{ matrix.arch }}
if: always()
env:
# macOS notarization API key
CSC_LINK: ${{ secrets.mac_cert }}
CSC_KEY_PASSWORD: ${{ secrets.mac_cert_password }}
APPLE_API_KEY: ~/private_keys/AuthKey_${{ secrets.api_key_id }}.p8
APPLE_API_KEY_ID: ${{ secrets.api_key_id }}
APPLE_API_ISSUER: ${{ secrets.api_key_issuer_id }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ENGINE_API_KEY: ${{ secrets.ENGINE_API_KEY }}
ERROR_REPORTING_ORGANIZATION:
${{ secrets.ERROR_REPORTING_ORGANIZATION }}
ERROR_REPORTING_PROJECT: ${{ secrets.ERROR_REPORTING_PROJECT }}
ERROR_REPORTING_API_TOKEN: ${{ secrets.ERROR_REPORTING_API_TOKEN }}
GOOGLE_SHEETS_PROJECT_ID: ${{ secrets.GOOGLE_SHEETS_PROJECT_ID }}
GOOGLE_SHEETS_SECRET: ${{ secrets.GOOGLE_SHEETS_SECRET }}
GOOGLE_SHEETS_CLIENT_ID: ${{ secrets.GOOGLE_SHEETS_CLIENT_ID }}
GH_ISSUE_TOKEN: ${{ secrets.GH_ISSUE_TOKEN }}
- name: Setup tmate session
uses: mxschmitt/action-tmate@v2
if: failure()