feat: add Gitea workflows for blue-green deployment and rollback functionality.
Deploy Next.js via SSH / deploy (push) Successful in 8s Details

This commit is contained in:
JuruSysadmin 2026-01-07 15:28:13 -03:00
parent b953113f3c
commit db7cea2759
2 changed files with 29 additions and 19 deletions

View File

@ -7,15 +7,24 @@ jobs:
steps:
- uses: actions/checkout@v3
- name: Deploy via SSH
- name: Blue-Green Deploy via SSH
uses: appleboy/ssh-action@master
with:
host: 10.1.1.124
username: juru
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
cd /home/juru/Portal-dias-rota
git pull origin main
npm install --legacy-peer-deps
RELEASE_NAME=release-$(date +%Y%m%d%H%M%S)
RELEASE_PATH=/home/juru/apps/releases/$RELEASE_NAME
git clone http://10.1.1.124:3000/joelson/Portal-dias-rota.git $RELEASE_PATH
cd $RELEASE_PATH
npm install
npm run build
pm2 restart portal-dias-rota || pm2 start npm --name "portal-dias-rota" -- start
ln -sfn $RELEASE_PATH /home/juru/apps/current
pm2 reload portal-dias-rota || pm2 start /home/juru/apps/current/ecosystem.config.js
ls -dt /home/juru/apps/releases/* | tail -n +5 | xargs rm -rf

View File

@ -1,25 +1,26 @@
name: Manual Rollback
name: Rollback para Versão Anterior
on:
workflow_dispatch: # Permite rodar manualmente pela interface do Gitea
inputs:
commit_hash:
description: 'Hash do commit para retornar'
required: true
workflow_dispatch: # Isso faz aparecer um botão "Run Workflow" no Gitea
jobs:
rollback:
runs-on: ubuntu-latest
runs-on: ubuntu-latest
steps:
- name: Execute Rollback via SSH
- name: Reverter Link Simbólico
uses: appleboy/ssh-action@master
with:
host: 10.1.1.124
username: juru
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
cd /home/juru/Portal-dias-rota
git fetch origin
git reset --hard ${{ github.event.inputs.commit_hash }}
npm install --production
npm run build
pm2 reload portal-dias-rota
PREVIOUS_RELEASE=$(ls -dt /home/juru/apps/releases/* | sed -n '2p')
if [ -z "$PREVIOUS_RELEASE" ]; then
echo "Erro: Nenhuma versão anterior encontrada!"
exit 1
fi
ln -sfn $PREVIOUS_RELEASE /home/juru/apps/current
pm2 reload portal-dias-rota
echo "Rollback para $PREVIOUS_RELEASE concluído com sucesso!"