Files
2026-09-15 07:25:34 -05:00

106 líneas
3.1 KiB
YAML

name: Verificar compilación (sin publicar)
# Comprueba que el shell COMPILA en Windows y macOS sin construir instaladores ni tocar
# Releases. Sirve para revisar un cambio en una rama antes de etiquetar la versión: el
# workflow de publicar solo se dispara con etiquetas `v*`, así que hasta ahora no había
# forma de saber si algo compilaba sin publicarlo.
on:
push:
branches-ignore:
- main
pull_request:
workflow_dispatch:
permissions:
contents: read # solo lee el repo: no crea releases ni sube nada
jobs:
check:
strategy:
fail-fast: false
matrix:
platform: [windows-latest, macos-latest]
runs-on: ${{ matrix.platform }}
steps:
- name: Clonar repo
uses: actions/checkout@v4
- name: Instalar Node
uses: actions/setup-node@v4
with:
node-version: 20
- name: Instalar Rust
uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- name: Cache de Rust
uses: swatinem/rust-cache@v2
with:
workspaces: src-tauri
- name: Instalar dependencias
run: npm install
- name: Probar el script del cliente
run: npm test
# build.rs de Tauri valida que existan los iconos que declara tauri.conf.json.
- name: Generar iconos (desde app-icon.png)
run: npm run icons
- name: cargo check
working-directory: src-tauri
run: cargo check --all-targets
# Avisa de errores reales de Clippy sin tumbar la verificación por avisos de estilo.
- name: cargo clippy (informativo)
working-directory: src-tauri
continue-on-error: true
run: cargo clippy --all-targets
# Instalador de PRUEBA para Windows. Queda colgado de la ejecución como artifact y no
# toca Releases ni el updater: sirve para VER el cambio funcionando antes de publicárselo
# a todo el equipo, que es irreversible en la práctica (las apps se actualizan solas).
instalador-prueba:
runs-on: windows-latest
steps:
- name: Clonar repo
uses: actions/checkout@v4
- name: Instalar Node
uses: actions/setup-node@v4
with:
node-version: 20
- name: Instalar Rust
uses: dtolnay/rust-toolchain@stable
- name: Cache de Rust
uses: swatinem/rust-cache@v2
with:
workspaces: src-tauri
- name: Instalar dependencias
run: npm install
- name: Generar iconos (desde app-icon.png)
run: npm run icons
# La firma hace falta porque tauri.conf.json pide artefactos de updater; el .exe se
# queda igualmente aquí, sin publicarse en ningún sitio.
- name: Construir el instalador (NSIS)
env:
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
run: npm run tauri build -- --bundles nsis
- name: Guardar el instalador como artifact
uses: actions/upload-artifact@v4
with:
name: instalador-windows-prueba
path: src-tauri/target/release/bundle/nsis/*.exe
retention-days: 14