chore: add public key to updater config #4
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build and Release | |
| on: | |
| push: | |
| tags: | |
| - 'v*' # Se activa cuando se crea un tag que empieza con 'v' (ej: v0.1.0) | |
| workflow_dispatch: # Permite ejecutar manualmente desde GitHub | |
| # Control de concurrencia: evita builds duplicados si se pushean tags rápido | |
| # Para releases, sí cancelamos builds anteriores del mismo tag | |
| concurrency: | |
| group: release-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| build: | |
| permissions: | |
| contents: write | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os: windows-latest | |
| target: x86_64-pc-windows-msvc | |
| - os: ubuntu-22.04 | |
| target: x86_64-unknown-linux-gnu | |
| - os: macos-latest | |
| target: x86_64-apple-darwin | |
| - os: macos-latest | |
| target: aarch64-apple-darwin | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '18' | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@v2 | |
| with: | |
| version: 9 | |
| run_install: false | |
| - name: Get pnpm store directory | |
| id: pnpm-cache | |
| shell: bash | |
| run: | | |
| echo "path=$(pnpm store path --silent)" >> $GITHUB_OUTPUT | |
| - name: Setup pnpm cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ steps.pnpm-cache.outputs.path }} | |
| key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} | |
| restore-keys: | | |
| ${{ runner.os }}-pnpm- | |
| - name: Install Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| targets: ${{ matrix.target }} | |
| # Cache de Cargo: reduce builds de minutos a segundos | |
| - name: Cache cargo | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.cargo/registry | |
| ~/.cargo/git | |
| src-tauri/target | |
| key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-cargo- | |
| - name: Install dependencies (Ubuntu) | |
| if: matrix.os == 'ubuntu-22.04' | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y \ | |
| libwebkit2gtk-4.1-dev \ | |
| libappindicator3-dev \ | |
| librsvg2-dev \ | |
| libsoup2.4-dev \ | |
| pkg-config \ | |
| patchelf | |
| - name: Verify Tauri icons exist | |
| shell: bash | |
| run: | | |
| if [ "${{ matrix.os }}" == "windows-latest" ]; then | |
| if [ ! -f "src-tauri/icons/icon.ico" ]; then | |
| echo "ERROR: icon.ico not found at src-tauri/icons/icon.ico" | |
| exit 1 | |
| fi | |
| echo "✓ icon.ico found" | |
| elif [ "${{ matrix.os }}" == "ubuntu-22.04" ]; then | |
| if [ ! -f "src-tauri/icons/icon.png" ]; then | |
| echo "ERROR: icon.png not found at src-tauri/icons/icon.png" | |
| exit 1 | |
| fi | |
| echo "✓ icon.png found" | |
| elif [ "${{ matrix.os }}" == "macos-latest" ]; then | |
| if [ ! -f "src-tauri/icons/icon.icns" ]; then | |
| echo "ERROR: icon.icns not found at src-tauri/icons/icon.icns" | |
| exit 1 | |
| fi | |
| echo "✓ icon.icns found" | |
| fi | |
| - name: Install frontend dependencies | |
| run: pnpm install | |
| - name: Build frontend | |
| run: pnpm build | |
| - name: Build Tauri app | |
| uses: tauri-apps/tauri-action@v0 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} | |
| TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }} | |
| with: | |
| projectPath: . | |
| args: --target ${{ matrix.target }} | |
| updaterJsonPreferNsis: true | |
| tagName: ${{ github.ref_name }} | |
| releaseName: 'MeaCode Studio ${{ github.ref_name }}' | |
| releaseBody: | | |
| ## MeaCode Studio ${{ github.ref_name }} | |
| ### ✨ Características principales | |
| - 🚀 IDE IA-first con acciones contextuales | |
| - 💬 Chat IA integrado (Nexusify API) | |
| - 📝 Editor con Monaco y LSP | |
| - 🖥️ Terminal integrada (xterm.js) | |
| - 📁 Explorer de archivos | |
| - 🔍 Búsqueda rápida (Ctrl+P) | |
| - ⌨️ Command Palette (Ctrl+Shift+P) | |
| - 💾 Persistencia de sesión | |
| ### 🎯 Acciones IA sobre código | |
| - **Explain this**: Explica código seleccionado | |
| - **Fix error**: Corrige errores automáticamente | |
| - **Refactor**: Refactoriza código manteniendo funcionalidad | |
| ### 📦 Instalación | |
| Descarga el instalador para tu plataforma y ejecútalo. | |
| Más información en el [README.md](README.md) | |
| releaseDraft: true | |
| prerelease: false | |