Skip to content

Updated tests

Updated tests #74

Workflow file for this run

name: build and release
on:
push:
tags:
- v[0-9]+.[0-9]+.[0-9]+*
workflow_dispatch: # Allows manual triggering
permissions:
contents: write
packages: write
issues: read
pull-requests: read
jobs:
macos:
strategy:
matrix:
os-version: ['13', '14']
include:
- os-version: '13'
arch: x86_64
- os-version: '14'
arch: aarch64
runs-on: macos-${{ matrix.os-version }}
steps:
- name: Check out Git repository
uses: actions/checkout@v4
with:
sparse-checkout: |
.github
DeskThingServer
- name: Install Node.js, NPM
uses: actions/setup-node@v4
with:
node-version: '22.15.0'
- name: Install the Apple certificate and provisioning profile
env:
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
P12_PASSWORD: ${{ secrets.P12_PASSWORD }}
KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
run: |
# Create variables
CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12
KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
# Import certificate from secret
echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode -o $CERTIFICATE_PATH
# Create temporary keychain
security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
# Import certificate to keychain
security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH
security list-keychain -d user -s $KEYCHAIN_PATH
# - name: Install Sharp dependencies
# run: |
# if [ "${{ runner.os }}" == "macOS" ]; then
# brew install vips
# fi
- name: Install dependencies
run: |
cd DeskThingServer
npm install
# - name: Print Environment Variables
# run: |
# echo "APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}"
# echo "APPLE_ID: ${{ secrets.APPLE_ID }}"
- name: Build/release Electron app
uses: paneron/action-electron-builder@v1.8.1
env:
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
FL_NOTARIZE_ASC_PROVIDER: ${{ secrets.APPLE_TEAM_ID }}
DEBUG: electron-builder,electron-notarize*
CSC_LINK: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
CSC_KEY_PASSWORD: ${{ secrets.P12_PASSWORD }}
CSC_KEYCHAIN: ${{ secrets.KEYCHAIN_PASSWORD }}
KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
with:
mac_certs: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
mac_certs_password: ${{ secrets.P12_PASSWORD }}
github_token: ${{ secrets.github_token }}
package_manager: npm
package_root: ${{ github.workspace }}/DeskThingServer
release: ${{ startsWith(github.ref, 'refs/tags/v') }}
# - name: Upload binaries to artifacts
# uses: actions/upload-artifact@v4
# with:
# name: deskthing-macos-${{ matrix.arch }}
# path: |
# ${{ github.workspace }}/DeskThingServer/dist/deskthing-*.dmg
# ${{ github.workspace }}/DeskThingServer/dist/latest*.yml
release:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
name: Build ${{ matrix.os }}
steps:
- name: Check out Git repository
uses: actions/checkout@v4
with:
sparse-checkout: |
.github
DeskThingServer
- name: Install Node.js, NPM
uses: actions/setup-node@v4
with:
node-version: '22.15.0'
# Installs the sharp deps
# - name: Install Sharp dependencies
# run: |
# if [ "${{ runner.os }}" == "Linux" ]; then
# sudo apt-get update
# sudo apt-get install -y libvips-dev
# elif [ "${{ runner.os }}" == "Windows" ]; then
# echo "No additional dependencies needed for Windows"
# fi
- name: Install dependencies
run: |
cd DeskThingServer
npm install
- name: Build/release Electron app
uses: paneron/action-electron-builder@v1.8.1
env:
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
BUYMEACOFFEE_TOKEN: ${{ secrets.BUYMEACOFFEE_TOKEN }}
with:
github_token: ${{ secrets.github_token }}
package_manager: npm
package_root: ${{ github.workspace }}/DeskThingServer
release: ${{ startsWith(github.ref, 'refs/tags/v') }}
# - name: Upload windows binaries to artifacts
# if: matrix.os == 'windows-latest'
# uses: actions/upload-artifact@v4
# with:
# name: deskthing-${{matrix.os}}
# path: |
# ${{ github.workspace }}/DeskThingServer/dist/deskthing*.exe
# ${{ github.workspace }}/DeskThingServer/dist/latest*.yml
# - name: Upload linux binaries to artifacts
# if: matrix.os == 'ubuntu-latest'
# uses: actions/upload-artifact@v4
# with:
# name: deskthing-${{matrix.os}}
# path: |
# ${{ github.workspace }}/DeskThingServer/dist/deskthing*
# ${{ github.workspace }}/DeskThingServer/dist/latest*.yml