CI/CD

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

Edit this page

Copyright Β© 2023-Present Ever Co. LTD.Docs by Sourcey