From 7dab175b552aa85f4f3c7103d03253328a8d67e5 Mon Sep 17 00:00:00 2001 From: kv-aliaga Date: Tue, 30 Jun 2026 20:34:39 -0300 Subject: [PATCH 1/3] feat/ci: adiciona ci-neon.yml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Script para teste de banco de dados usando uma branch própria de testes para o as pull requests abertas --- .github/workflows/ci-neon.yml | 57 +++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 .github/workflows/ci-neon.yml diff --git a/.github/workflows/ci-neon.yml b/.github/workflows/ci-neon.yml new file mode 100644 index 0000000..c34494a --- /dev/null +++ b/.github/workflows/ci-neon.yml @@ -0,0 +1,57 @@ +name: deploy-neon + +on: + pull_request: + branches: + - 'main' + paths: + - 'sql/script.sql' + +permissions: + pull-requests: write + +jobs: + deploy-schema: + name: rodar-database-neon + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Instala postgres + run: | + sudo apt-get update -y + sudo apt-get install -y postgresql-client + + - name: Exclui banco atual + env: + DATABASE_URL: ${{ secrets.NEON_DATABASE_URL }} + run: | + psql "$DATABASE_URL" -v ON_ERROR_STOP=1 <<'SQL' + DROP SCHEMA IF EXISTS public CASCADE; + DROP SCHEMA IF EXISTS pdca CASCADE; + DROP SCHEMA IF EXISTS auditoria CASCADE; + SQL + + - name: Aplica script.sql + env: + DATABASE_URL: ${{ secrets.NEON_DATABASE_URL }} + run: | + psql "$DATABASE_URL" -v ON_ERROR_STOP=1 -f sql/script.sql + + - name: Comenta resultado na pull request + if: always() + uses: actions/github-script@v7 + with: + script: | + const status = '${{ job.status }}' + const emoji = status === 'success' ? '✅' : '❌' + const mensagem = status === 'success' ? '**Script aplicado com sucesso no Neon!** O banco foi resetado e o `script.sql` desta Pull Request foi carregado!' : '**Falha ao aplicar script no Neon.** Verifique os logs do workflow para detalhes' + + github.rest.issues.createComment({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + body: `${emoji} ${mensagem}` + }) From 8d9c41b4ed9f321358b3737df4e10b38074a57ec Mon Sep 17 00:00:00 2001 From: kv-aliaga Date: Wed, 1 Jul 2026 00:29:16 -0300 Subject: [PATCH 2/3] fix/ci-cd: Unifica pipelines de CI e CD no mesmo workflow MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit unifica validação e deploy no mesmo arquivo, valida script do Neon em PRs e deploy do banco em produção para merges na main --- .../workflows/{ci-neon.yml => ci-cd-neon.yml} | 48 ++++++++++++++----- 1 file changed, 37 insertions(+), 11 deletions(-) rename .github/workflows/{ci-neon.yml => ci-cd-neon.yml} (50%) diff --git a/.github/workflows/ci-neon.yml b/.github/workflows/ci-cd-neon.yml similarity index 50% rename from .github/workflows/ci-neon.yml rename to .github/workflows/ci-cd-neon.yml index c34494a..35bb3b5 100644 --- a/.github/workflows/ci-neon.yml +++ b/.github/workflows/ci-cd-neon.yml @@ -7,12 +7,19 @@ on: paths: - 'sql/script.sql' -permissions: + push: + branches: + - 'main' + paths: + - 'sql/script.sql' + +permissions: pull-requests: write jobs: - deploy-schema: - name: rodar-database-neon + deploy-teste: + if: github.event_name == 'pull_request' + name: Deploy na branch de testes do banco runs-on: ubuntu-latest steps: @@ -23,8 +30,8 @@ jobs: run: | sudo apt-get update -y sudo apt-get install -y postgresql-client - - - name: Exclui banco atual + + - name: Exclui banco atual env: DATABASE_URL: ${{ secrets.NEON_DATABASE_URL }} run: | @@ -33,25 +40,44 @@ jobs: DROP SCHEMA IF EXISTS pdca CASCADE; DROP SCHEMA IF EXISTS auditoria CASCADE; SQL - - - name: Aplica script.sql + + - name: Aplica script.sql no banco de testes env: DATABASE_URL: ${{ secrets.NEON_DATABASE_URL }} run: | psql "$DATABASE_URL" -v ON_ERROR_STOP=1 -f sql/script.sql - - name: Comenta resultado na pull request + - name: Comenta resultado na Pull Request if: always() uses: actions/github-script@v7 with: script: | const status = '${{ job.status }}' - const emoji = status === 'success' ? '✅' : '❌' - const mensagem = status === 'success' ? '**Script aplicado com sucesso no Neon!** O banco foi resetado e o `script.sql` desta Pull Request foi carregado!' : '**Falha ao aplicar script no Neon.** Verifique os logs do workflow para detalhes' + const mensagem = status === 'success' ? '✅ **Script aplicado com sucesso no banco de testes do Neon!** O banco foi resetado e o `script.sql` desta Pull Request foi carregado!' : '❌ **Falha ao aplicar script no banco de testes do Neon.** Verifique os logs do workflow para ter detalhes...' github.rest.issues.createComment({ issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, - body: `${emoji} ${mensagem}` + body: mensagem }) + + deploy-producao: + if: github.event_name == 'push' + name: Deploy no banco em produção + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Instala postgres + run: | + sudo apt-get update -y + sudo apt-get install -y postgresql-client + + - name: Aplica script.sql no banco de produção + env: + DATABASE_URL: ${{ secrets.NEON_DATABASE_URL }} + run: | + psql "$DATABASE_URL" -v ON_ERROR_STOP=1 -f sql/script.sql \ No newline at end of file From fe18f1aff7ad7668533e29d98c3ceff67d50534f Mon Sep 17 00:00:00 2001 From: kv-aliaga Date: Wed, 1 Jul 2026 00:34:04 -0300 Subject: [PATCH 3/3] =?UTF-8?q?hotfix/ci-cd:=20Arruma=20nomes=20das=20vari?= =?UTF-8?q?=C3=A1veis=20de=20ambiente?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/ci-cd-neon.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci-cd-neon.yml b/.github/workflows/ci-cd-neon.yml index 35bb3b5..8ce557d 100644 --- a/.github/workflows/ci-cd-neon.yml +++ b/.github/workflows/ci-cd-neon.yml @@ -33,7 +33,7 @@ jobs: - name: Exclui banco atual env: - DATABASE_URL: ${{ secrets.NEON_DATABASE_URL }} + DATABASE_URL: ${{ secrets.NEON_TESTE_DATABASE_URL }} run: | psql "$DATABASE_URL" -v ON_ERROR_STOP=1 <<'SQL' DROP SCHEMA IF EXISTS public CASCADE; @@ -43,7 +43,7 @@ jobs: - name: Aplica script.sql no banco de testes env: - DATABASE_URL: ${{ secrets.NEON_DATABASE_URL }} + DATABASE_URL: ${{ secrets.NEON_TESTE_DATABASE_URL }} run: | psql "$DATABASE_URL" -v ON_ERROR_STOP=1 -f sql/script.sql @@ -78,6 +78,6 @@ jobs: - name: Aplica script.sql no banco de produção env: - DATABASE_URL: ${{ secrets.NEON_DATABASE_URL }} + DATABASE_URL: ${{ secrets.NEON_PROD_DATABASE_URL }} run: | psql "$DATABASE_URL" -v ON_ERROR_STOP=1 -f sql/script.sql \ No newline at end of file