Files
echoes-of-the-ash/.gitlab-ci.yml

100 lines
2.0 KiB
YAML

stages:
- build-web
- build-desktop
variables:
npm_config_cache: "$CI_PROJECT_DIR/.npm"
ELECTRON_CACHE: "$CI_PROJECT_DIR/.cache/electron"
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- pwa/node_modules/
- pwa/.npm/
- pwa/.cache/
# Build the web application first
build:web:
stage: build-web
image: node:20-alpine
script:
- cd pwa
- npm ci
- npm run build
artifacts:
paths:
- pwa/dist/
expire_in: 1 hour
rules:
- if: '$CI_COMMIT_TAG'
tags:
- docker
# # Build Linux AppImage and .deb
# build:linux:
# stage: build-desktop
# image: electronuserland/builder:wine
# dependencies:
# - build:web
# script:
# - cd pwa
# - npm ci
# - npm run electron:build:linux
# - echo "=== AppImage size ==="
# - ls -lh dist-electron/*.AppImage
# - du -h dist-electron/*.AppImage
# artifacts:
# paths:
# - pwa/dist-electron/*.AppImage
# expire_in: 1 week
# name: "linux-appimage-$CI_COMMIT_TAG"
# rules:
# - if: '$CI_COMMIT_TAG'
# tags:
# - docker
# # Build Linux .deb (separate job to avoid size limits)
# build:linux-deb:
# stage: build-desktop
# image: electronuserland/builder:wine
# dependencies:
# - build:web
# script:
# - cd pwa
# - npm ci
# - npm run electron:build:linux
# artifacts:
# paths:
# - pwa/dist-electron/*.deb
# expire_in: 1 week
# name: "linux-deb-$CI_COMMIT_TAG"
# rules:
# - if: '$CI_COMMIT_TAG'
# tags:
# - docker
# Build Windows executable
build:windows:
stage: build-desktop
image: electronuserland/builder:wine
dependencies:
- build:web
script:
- cd pwa
- npm ci
- npm run electron:build:win
# Show file sizes
- echo "=== Build artifacts ==="
- ls -lh dist-electron/*.exe || echo "No .exe files found"
- echo "=== Total size ==="
- du -sh dist-electron/
artifacts:
paths:
- pwa/dist-electron/*.exe
expire_in: 1 week
name: "windows-installer-$CI_COMMIT_TAG"
rules:
- if: '$CI_COMMIT_TAG'
tags:
- docker