Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 13 additions & 18 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,17 +47,12 @@ jobs:
run: npm run test --if-present

publicar:
name: Publicar no GitHub Pages
name: Publicar na branch gh-pages
if: github.event.action == 'closed' && github.event.pull_request.merged == true
needs: validar
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.publicacao.outputs.page_url }}
permissions:
contents: read
pages: write
id-token: write
contents: write

steps:
- name: Obter versão integrada na main
Expand All @@ -78,14 +73,14 @@ jobs:
- name: Gerar site de produção
run: npm run build

- name: Configurar GitHub Pages
uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5

- name: Enviar artefato do site
uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3
with:
path: dist

- name: Publicar site
id: publicacao
uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4
- name: Configurar autoria do commit de publicação
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"

- name: Publicar arquivos estáticos
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git remote set-url origin "https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git"
npx gh-pages -d dist -b gh-pages
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ O Vite inicia o servidor de desenvolvimento em `http://localhost:5173`.
| `npm run build` | Executa a checagem de tipos e gera `dist/`. |
| `npm run check` | Executa `lint` e `build`; é o comando de validação padrão. |
| `npm run preview` | Serve localmente a versão gerada em `dist/`. |
| `npm run deploy` | Publica manualmente em `gh-pages`; não é utilizado pelo CI/CD. |
| `npm run deploy` | Publica manualmente os arquivos de `dist/` na branch `gh-pages`. |

## Organização do código

Expand Down Expand Up @@ -80,8 +80,8 @@ Ainda não há uma suíte de testes automatizados configurada. A pipeline execut
O workflow [`.github/workflows/deploy.yml`](.github/workflows/deploy.yml) é acionado por Pull Requests direcionados à `main`.

- Em abertura, reabertura ou atualização do PR, instala dependências com `npm ci` e executa validação e testes disponíveis.
- Em um PR fechado com merge, recompila a versão integrada da `main` e a publica no GitHub Pages.
- O job de validação tem permissão apenas de leitura. As permissões de publicação (`pages: write` e `id-token: write`) são concedidas exclusivamente no job de deploy após o merge.
- Em um PR fechado com merge, recompila a versão integrada da `main` e publica os arquivos gerados na branch `gh-pages`.
- O job de validação tem permissão apenas de leitura. A permissão de escrita em conteúdo é concedida exclusivamente ao job de publicação após o merge.
- As actions são fixadas em commits imutáveis para reduzir o risco de alterações não revisadas em tags.

No repositório do GitHub, configure **Settings → Pages → Build and deployment → Source** como **GitHub Actions** para habilitar a primeira publicação pelo workflow.
No repositório do GitHub, mantenha **Settings → Pages → Build and deployment → Source** configurado para servir a branch `gh-pages` a partir do diretório `/ (root)`.
Loading