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