Skip to content

chore: add public key to updater config #4

chore: add public key to updater config

chore: add public key to updater config #4

Workflow file for this run

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