Saltar al contenido principal

Deployment con GitHub Actions

Automatiza los deployments a Fyso Static Sites en cada push.

Recomendado: Usando tokens de deploy

Genera un token de deploy de un solo uso desde MCP y guárdalo como secreto de GitHub. Los tokens expiran en 5 minutos y son de uso único.

Generar un token (MCP):

generate_deploy_token({ subdomain: "mi-portfolio" })

Workflow CI/CD:

name: Deploy to Fyso Sites
on:
push:
branches: [main]

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm ci
- run: npm run build
- name: Generar token de deploy
id: token
env:
FYSO_API_KEY: ${{ secrets.FYSO_API_KEY }}
FYSO_API_URL: ${{ secrets.FYSO_API_URL }}
run: |
TOKEN=$(curl -s -X POST "$FYSO_API_URL/sites/mi-portfolio/deploy-token" \
-H "Authorization: Bearer $FYSO_API_KEY" | jq -r '.token')
echo "token=$TOKEN" >> $GITHUB_OUTPUT
- name: Deploy a Fyso
env:
FYSO_API_URL: ${{ secrets.FYSO_API_URL }}
run: |
cd dist
zip -qr /tmp/site.zip .
curl -X POST "$FYSO_API_URL/sites/mi-portfolio/deploy" \
-H "Authorization: Bearer ${{ steps.token.outputs.token }}" \
-F "file=@/tmp/site.zip"

Alternativa: API Key

Usa tu API key directamente como credencial de deploy:

- name: Deploy a Fyso
env:
FYSO_API_KEY: ${{ secrets.FYSO_API_KEY }}
FYSO_API_URL: ${{ secrets.FYSO_API_URL }}
run: |
cd dist
zip -qr /tmp/site.zip .
curl -X POST "$FYSO_API_URL/sites/mi-portfolio/deploy" \
-H "Authorization: Bearer $FYSO_API_KEY" \
-F "file=@/tmp/site.zip"

Secretos requeridos

SecretoDescripción
FYSO_API_KEYTu API key de Fyso
FYSO_API_URLhttps://api.fyso.dev/api

Notas

  • El directorio de build depende del framework: dist/, out/, build/
  • El subdominio debe existir previamente (el deploy crea una nueva versión, no el sitio)
  • Los deployments sucesivos reemplazan el contenido anterior
  • Frameworks soportados: Astro, Vite, Next.js (export estático), Create React App, HTML/CSS/JS puro