publish-npm
Para quem é: quem vai chamar este reutilizável num repositório seu. Depois de ler, você escreve o uses: com os inputs, os secrets, as permissões e os gatilhos certos, sem abrir o YAML. Fonte: .github/workflows/publish-npm.yml.
O que faz
Publica pacotes npm no GitHub Packages a partir da tag, com o .tgz atestado; -dev.N vai ao dist-tag dev e a versão final a latest.
Gatilhos recomendados
O reutilizável não declara gatilhos: quem chama declara. Os recomendados são:
push:
tags: ['v*']
Inputs
| nome | tipo | obrigatório | padrão | descrição |
|---|---|---|---|---|
tag |
string | sim | - | Tag que dispara a publicação (vX.Y.Z ou vX.Y.Z-dev.N) |
pacotes |
string | sim | - | Diretórios dos pacotes, um por linha (ex.: packages/shared) |
ci_ref |
string | sim | - | O MESMO SHA de 40 hex do uses: do chamador (sem padrão: tag ou ausência rodaria scripts de outra versão) |
ci_repo |
string | não | viralabs-dev/brabo-ci | O repo do brabo-ci de onde vêm os scripts (owner/repo). Só muda num fork; o uses: do chamador deve apontar para o mesmo. |
Secrets
Nenhum.
Permissões que o chamador precisa conceder
A união do que o workflow e os jobs dele declaram. O job que chama precisa conceder pelo menos isto.
| permissão | nível |
|---|---|
attestations |
write |
contents |
read |
id-token |
write |
packages |
write |
Jobs
Os nomes dos jobs são os nomes dos checks que a PR mostra (o prefixo do job que chama vem antes).
| job | nome do check |
|---|---|
publicar |
Publicar no GitHub Packages |
Exemplo de chamada
<org> é a organização onde o brabo-ci mora, e <sha>, o commit que você fixa (o ci_ref repete o SHA do uses:).
# .github/workflows/exemplo.yml no repositório que chama
name: exemplo
on:
push:
tags: ['v*']
jobs:
publish-npm:
permissions:
attestations: write
contents: read
id-token: write
packages: write
uses: <org>/brabo-ci/.github/workflows/publish-npm.yml@<sha> # vX.Y.Z
with:
tag: '<valor>'
pacotes: '<valor>'
ci_ref: <sha>