Skip to content

Adicionar job de Build Frontend (Vite + React) no deploy.yml#110

Merged
ualers2 merged 2 commits into
mainfrom
new-feature
Oct 15, 2025
Merged

Adicionar job de Build Frontend (Vite + React) no deploy.yml#110
ualers2 merged 2 commits into
mainfrom
new-feature

Conversation

@ualers2
Copy link
Copy Markdown
Owner

@ualers2 ualers2 commented Oct 15, 2025

Descrição

Adicionar job de Build Frontend (Vite + React) no deploy.yml

O que mudou:

  • Foi acrescentado o job build-frontend no arquivo .github/workflows/deploy.yml. Este job:
    • é nomeado como “🔨 Build Frontend (Vite + React)”;
    • roda em ubuntu-latest e apenas quando um pull request é mergeado (if: github.event.pull_request.merged == true);
    • falta apenas o build do frontend com etapas de checkout, setup Node.js, instalação de dependências na pasta frontend/electron, e build com npm run build;
    • registra o caminho do dist através de dist-path e faz o upload do artefato vite-dist com o conteúdo de frontend/electron/dist;
    • utiliza fetch-depth: 0 para o checkout, garantindo histórico completo;
    • expõe dist-path aos passos seguintes via outputs.
  • O diff também aponta que backend/celerybeat-schedule foi alterado de forma binária (Binary files differ). Não há mudanças textuais visíveis para revisão direta; isso sugere que o arquivo binário foi atualizado ou re-gerado, o que pode exigir verificação do contexto de geração do schedule do Celery Beat.

Por quê:

  • Adicionar o build do frontend ao fluxo de deploy facilita a entrega de artefatos prontos do frontend (dist) para o pacote Electron, permitindo que o frontend seja incluído no processo de distribuição de forma reprodutível.
  • Manter o build do Electron existente e agora disponibilizar o dist do frontend como artefato ajuda a orquestrar passos subsequentes de implantação.
  • A alteração condicionada a PR merges evita builds desnecessários em branches abertos, reduzindo consumo de recursos.

Impacto:

  • O pipeline passa a produzir e disponibilizar o artefato vite-dist contendo frontend/electron/dist sempre que um PR é mesclado, o que facilita integrá-lo aos próximos estágios do deploy.
  • O restante do fluxo permanece inalterado (build-electron continua definido).
  • Existe uma alteração binária no backend/celerybeat-schedule que requer verificação adicional para assegurar consistência e evitar regressões no agendamento do Celery Beat.

Mudanças

diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index c98dcfcf..1d7bea69 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -76,6 +76,40 @@ jobs:
           docker compose up --build -d --no-deps softwareai_frontend softwareai_api
         "
 
+  build-frontend:
+    name: "🔨 Build Frontend (Vite + React)"
+    runs-on: ubuntu-latest
+    if: github.event.pull_request.merged == true
+    outputs:
+      dist-path: ${{ steps.build.outputs.dist-path }}
+    steps:
+      - name: "Checkout code"
+        uses: actions/checkout@v4
+        with:
+          fetch-depth: 0
+
+      - name: "Setup Node.js"
+        uses: actions/setup-node@v3
+        with:
+          node-version: ${{ env.NODE_VERSION }}
+
+      - name: "Install dependencies"
+        working-directory: frontend/electron
+        run: npm ci
+
+      - name: "Build Vite"
+        working-directory: frontend/electron
+        id: build
+        run: |
+          npm run build
+          echo "dist-path=$(pwd)/dist" >> $GITHUB_OUTPUT
+
+      - name: "Upload dist as artifact"
+        uses: actions/upload-artifact@v4
+        with:
+          name: vite-dist
+          path: frontend/electron/dist
+
   build-electron:
     name: "⚡ Build Electron App"
     runs-on: windows-latest
diff --git a/backend/celerybeat-schedule b/backend/celerybeat-schedule
index a595d8d7..8c78f0cf 100644
Binary files a/backend/celerybeat-schedule and b/backend/celerybeat-schedule differ

O que mudou:
- Foi acrescentado o job build-frontend no arquivo .github/workflows/deploy.yml. Este job:
  - é nomeado como “🔨 Build Frontend (Vite + React)”;
  - roda em ubuntu-latest e apenas quando um pull request é mergeado (if: github.event.pull_request.merged == true);
  - falta apenas o build do frontend com etapas de checkout, setup Node.js, instalação de dependências na pasta frontend/electron, e build com npm run build;
  - registra o caminho do dist através de dist-path e faz o upload do artefato vite-dist com o conteúdo de frontend/electron/dist;
  - utiliza fetch-depth: 0 para o checkout, garantindo histórico completo;
  - expõe dist-path aos passos seguintes via outputs.
- O diff também aponta que backend/celerybeat-schedule foi alterado de forma binária (Binary files differ). Não há mudanças textuais visíveis para revisão direta; isso sugere que o arquivo binário foi atualizado ou re-gerado, o que pode exigir verificação do contexto de geração do schedule do Celery Beat.

Por quê:
- Adicionar o build do frontend ao fluxo de deploy facilita a entrega de artefatos prontos do frontend (dist) para o pacote Electron, permitindo que o frontend seja incluído no processo de distribuição de forma reprodutível.
- Manter o build do Electron existente e agora disponibilizar o dist do frontend como artefato ajuda a orquestrar passos subsequentes de implantação.
- A alteração condicionada a PR merges evita builds desnecessários em branches abertos, reduzindo consumo de recursos.

Impacto:
- O pipeline passa a produzir e disponibilizar o artefato vite-dist contendo frontend/electron/dist sempre que um PR é mesclado, o que facilita integrá-lo aos próximos estágios do deploy.
- O restante do fluxo permanece inalterado (build-electron continua definido).
- Existe uma alteração binária no backend/celerybeat-schedule que requer verificação adicional para assegurar consistência e evitar regressões no agendamento do Celery Beat.
O que foi alterado:
- No arquivo .github/workflows/deploy.yml, o job build-and-deploy foi renomeado para deploy.
- O job build-frontend foi renomeado para build-frontend-electron.
- A dependência do job build-electron foi atualizada de needs: build-and-deploy para needs: build-frontend-electron.

Por quê:
- A renomeação deixa claro o propósito de cada job (deploy, build-frontend-electron) após a refatoração do pipeline.
- A atualização de dependências mantém a ordem de construção correta, assegurando que o Electron frontend seja compilado antes do build do Electron app.

Observação:
- Foi identificada uma mudança binária em backend/celerybeat-schedule (diff binário); não há alterações de lógica visíveis no diff, mas é bom revisar esse artefato para confirmar se precisa de versionamento ou reconstrução.
@ualers2 ualers2 merged commit f9f83ea into main Oct 15, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant