55 lines
2.4 KiB
YAML
55 lines
2.4 KiB
YAML
name: client-build-release
|
|
|
|
# Client desktop (Electron). DIFERENTE dos serviços web: a versão é EMBUTIDA no .exe no
|
|
# build (o electron-updater compara versões), então NÃO há "build once" puro:
|
|
# • push na main → BUILD de VALIDAÇÃO (cross-compile), NÃO publica.
|
|
# • tag vX.Y.Z → RELEASE: builda com a versão da TAG e publica em updates/ (auto-update).
|
|
# Mantém o electron-updater/latest.yml (clients em campo dependem). O .exe não muda de mecanismo —
|
|
# só a ORIGEM da versão (tag) e o gatilho (tag, não push). Ver Documentos-Unicos/projetos/rx.scoreodonto.com-client.
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
tags: ['v*']
|
|
|
|
jobs:
|
|
# ───────── Validação no push (não publica) ─────────
|
|
build:
|
|
if: startsWith(github.ref, 'refs/heads/')
|
|
runs-on: self-hosted
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- name: Build de validação (cross-compile Windows; NÃO publica)
|
|
run: |
|
|
set -e
|
|
NODE_ENV=development npm install --include=dev
|
|
npx electron-builder --win --x64 --publish never
|
|
ls dist/*.exe >/dev/null && echo "OK: .exe compila. Push NÃO publica (release só em tag)."
|
|
|
|
# ───────── Release na tag (builda com a versão da tag + publica) ─────────
|
|
release:
|
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
runs-on: self-hosted
|
|
steps:
|
|
- name: Checkout (na tag)
|
|
uses: actions/checkout@v4
|
|
- name: Versão da TAG → package.json
|
|
run: |
|
|
V="${GITHUB_REF_NAME#v}"
|
|
npm version "$V" --no-git-tag-version --allow-same-version
|
|
echo "versão do build = $V (da tag $GITHUB_REF_NAME)"
|
|
- name: Build do .exe + latest.yml (com a versão da tag)
|
|
run: |
|
|
set -e
|
|
NODE_ENV=development npm install --include=dev
|
|
npx electron-builder --win --x64 --publish never
|
|
ls dist/*.exe dist/latest.yml
|
|
- name: Publicar em produção (VPS1 updates/) — auto-update dos clients
|
|
run: |
|
|
set -e
|
|
ssh -o StrictHostKeyChecking=accept-new deploy@10.99.0.1 \
|
|
'mkdir -p /home/deploy/stack/rx.scoreodonto.com/dental-server/updates'
|
|
rsync -avz dist/*.exe dist/*.blockmap dist/latest.yml \
|
|
deploy@10.99.0.1:/home/deploy/stack/rx.scoreodonto.com/dental-server/updates/
|
|
echo "Publicado $GITHUB_REF_NAME em updates/. Clients puxam pelo latest.yml."
|