Files
webSostenible/.gitea/workflows/upload.yaml
h4ckx0r 3169db1ea2
All checks were successful
Verificar versión, Compilar y Desplegar / check-version (push) Successful in 2s
Verificar versión, Compilar y Desplegar / build (push) Successful in 14s
Verificar versión, Compilar y Desplegar / deploy (push) Successful in 11s
Cambio Workflow
2024-10-01 13:11:35 +02:00

90 lines
2.6 KiB
YAML

name: Verificar versión, Compilar y Desplegar
on:
push:
branches:
- main
paths:
- 'package.json'
jobs:
check-version:
runs-on: ubuntu-latest
outputs:
version_changed: ${{ steps.compare_versions.outputs.version_changed }}
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 2
- name: Obtener versión del package.json
run: |
git show HEAD:package.json > current_package.json
git show HEAD~1:package.json > previous_package.json
- name: Comparar versiones del proyecto
id: compare_versions
run: |
current_version=$(jq -r .version current_package.json)
previous_version=$(jq -r .version previous_package.json)
if [ "$current_version" != "$previous_version" ]; then
echo "Versión cambiada de $previous_version a $current_version"
echo "version_changed=true" >> $GITHUB_OUTPUT
else
echo "La versión no ha cambiado"
echo "version_changed=false" >> $GITHUB_OUTPUT
fi
build:
needs: check-version
if: needs.check-version.outputs.version_changed == 'true'
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '22' # Ajusta a la versión de Node.js que necesites
- name: Instalar Dependencias
run: npm ci
- name: Compilar
run: npm run build
- name: Archivar build
uses: actions/upload-artifact@v3
with:
name: dist
path: dist
deploy:
needs: [check-version, build]
if: needs.check-version.outputs.version_changed == 'true'
runs-on: ubuntu-latest
steps:
- name: Descargar build
uses: actions/download-artifact@v3
with:
name: dist
path: dist
- name: Instalar ssh
run: |
sudo apt-get update
sudo apt-get install sshpass
- name: Subir al servidor
env:
SERVER_IP: ${{ secrets.SERVER_IP }}
SERVER_USER: ${{ secrets.SERVER_USER }}
SERVER_PASS: ${{ secrets.SERVER_PASS }}
DEPLOY_PATH: ${{ secrets.DEPLOY_PATH }}
run: |
# Borra la copia anterior
sshpass -p $SERVER_PASS ssh -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "rm -rf $DEPLOY_PATH/*"
# Sube la nueva versión
sshpass -p $SERVER_PASS scp -o StrictHostKeyChecking=no -r dist/* $SERVER_USER@$SERVER_IP:$DEPLOY_PATH