Padrões compartilhados da organização YDEX:
CONTRIBUTING.md: commits, títulos de PR e releases. O GitHub mostra esse arquivo em todo repositório da organização sem um próprio..github/workflows/release-please.yml: workflow reutilizável que mantém o PR de release e cria a tagvX.Y.Z..github/workflows/pr-title.yml: workflow reutilizável que recusa título de PR fora do padrão.
-
.github/workflows/release.yml:name: Release on: push: branches: [main] permissions: contents: write pull-requests: write jobs: release: uses: YDEXCP/.github/.github/workflows/release-please.yml@main
-
.github/workflows/pr-title.yml:name: Título do PR on: pull_request: types: [opened, edited, synchronize, reopened] permissions: {} jobs: pr-title: uses: YDEXCP/.github/.github/workflows/pr-title.yml@main
-
release-please-config.json, combootstrap-sha= commit atual damain(o CHANGELOG começa depois dele e o histórico antigo fica fora):{ "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", "bootstrap-sha": "<sha completo da main>", "packages": { ".": { "release-type": "node", "include-component-in-tag": false } } } -
.release-please-manifest.jsoncom a versão atual dopackage.json:{ ".": "0.1.0" }. -
CHANGELOG.mdno.prettierignore(o release-please escreve fora do padrão do Prettier). -
Settings → Actions → General → Allow GitHub Actions to create and approve pull requests ligado.
Quem publica é o servidor, ao receber o push da tag. O contrato, igual em todo projeto com deploy por webhook (adnanh/webhook):
- o hook do webhook aceita só
refque case com^refs/tags/v[0-9]+\.[0-9]+\.[0-9]+$e repassa orefao script com"pass-arguments-to-command": [{ "source": "payload", "name": "ref" }]; deploy/deploy-webhook.shignora o que não forrefs/tags/*e chamadeploy/deploy.sh vX.Y.Zem background;deploy/deploy.sh <tag>publica só uma tagvX.Y.Zcujo commit está naorigin/main, recusa tag movida no GitHub e, se o build falhar, volta o código ao commit anterior (o app antigo segue no ar).