Saltar al contenido principal

GitHub Actions

GitHub Actions workflows for building desktop applications, Docker images, and releases.

Workflow Filesโ€‹

Located in .github/workflows/:

WorkflowPurpose
desktop-timer-*.ymlBuild Desktop Timer (Win/Mac/Linux)
desktop-app-*.ymlBuild Desktop App (Win/Mac/Linux)
desktop-server-*.ymlBuild Desktop Server
docker-build-*.ymlBuild and push Docker images
release-*.ymlCreate GitHub releases

Desktop Build Pipelineโ€‹

Trigger (push/tag/manual)
โ”‚
โ”œโ”€โ”€ Setup Environment
โ”‚ โ”œโ”€โ”€ Checkout code
โ”‚ โ”œโ”€โ”€ Install Node.js
โ”‚ โ””โ”€โ”€ Install dependencies (yarn)
โ”‚
โ”œโ”€โ”€ Build
โ”‚ โ”œโ”€โ”€ NX build (API + Desktop assets)
โ”‚ โ”œโ”€โ”€ Electron build
โ”‚ โ””โ”€โ”€ Code signing (macOS/Windows)
โ”‚
โ””โ”€โ”€ Publish
โ”œโ”€โ”€ Upload artifacts
โ”œโ”€โ”€ Create GitHub Release
โ””โ”€โ”€ Upload to release assets

Platform-Specific Buildsโ€‹

Windowsโ€‹

- name: Build Windows
run: yarn electron:build:windows
env:
CSC_LINK: ${{ secrets.WIN_CSC_LINK }}
CSC_KEY_PASSWORD: ${{ secrets.WIN_CSC_KEY_PASSWORD }}

macOSโ€‹

- name: Build macOS
run: yarn electron:build:mac
env:
CSC_LINK: ${{ secrets.MAC_CSC_LINK }}
CSC_KEY_PASSWORD: ${{ secrets.MAC_CSC_KEY_PASSWORD }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_ID_APP_PASSWORD: ${{ secrets.APPLE_ID_APP_PASSWORD }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}

Linuxโ€‹

- name: Build Linux
run: yarn electron:build:linux

Docker Image Workflowsโ€‹

- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
file: .deploy/api/Dockerfile
push: true
tags: ghcr.io/ever-co/gauzy-api:latest

Secrets Requiredโ€‹

SecretPurpose
WIN_CSC_LINKWindows code signing certificate
WIN_CSC_KEY_PASSWORDWindows certificate password
MAC_CSC_LINKmacOS code signing certificate
APPLE_IDApple ID for notarization
APPLE_ID_APP_PASSWORDApp-specific password
GH_TOKENGitHub token for releases