Pular para o conteúdo principal

Publicação de pacotes

O Playground publica seus pacotes no npm usando workflows automatizados de CI. Esta página explica como o processo de publicação funciona e o que você precisa saber ao adicionar novos pacotes.

Publicações automatizadas

Os pacotes npm são publicados automaticamente toda segunda-feira via GitHub Actions, ou manualmente pelos mantenedores usando o workflow dispatch. O workflow incrementa as versões usando Lerna, cria tags para o release e publica todos os pacotes públicos no npm.

O CI se autentica no npm usando publicação confiável via OpenID Connect (OIDC). Isso é mais seguro do que usar tokens npm de longa duração, pois gera credenciais de curta duração para cada execução do workflow e vincula a procedência do pacote diretamente ao repositório do GitHub.

Adicionando um novo pacote

Quando você adiciona um novo pacote npm ao monorepo, o workflow de publicação automatizada não conseguirá publicá-lo na primeira execução. Isso é um recurso de segurança do npm: a publicação confiável via OIDC só funciona para pacotes que já existem e foram configurados para confiar no repositório do GitHub.

Aqui está o que você precisa fazer:

1. Publique o pacote manualmente

Primeiro, autentique-se no npm em sua máquina local:

npm login

Em seguida, publique o pacote pela primeira vez:

cd packages/your-new-package
npm publish --access public

Isso cria o pacote no registro do npm sob sua conta.

2. Configure a publicação confiável

Após a publicação inicial, acesse as configurações do pacote em npmjs.com e configure a publicação confiável via OIDC:

  1. Navegue até seu pacote em npmjs.com
  2. Vá para SettingsConfigure Trusted Publishers
  3. Adicione um novo publicador confiável com estas configurações:
    • Repository owner: WordPress
    • Repository name: wordpress-playground
    • Workflow filename: publish-npm-packages.yml
    • Environment: npm

Configurando publicação confiável via OIDC no npm

3. Transfira a propriedade (se necessário)

Se você publicou sob sua conta pessoal, transfira o pacote para a organização @aspect ou garanta que a equipe apropriada tenha acesso de publicação.

Uma vez configurado, as publicações subsequentes funcionarão automaticamente através do workflow de CI.

Por que o OIDC não pode publicar novos pacotes

A implementação de OIDC do npm exige que o pacote já exista antes que um publicador confiável possa ser configurado. Esta é uma situação de "ovo e galinha" por design — ela impede que alguém sequestre um nome de pacote através de um workflow do GitHub antes que o proprietário legítimo possa reivindicá-lo.

A primeira publicação manual estabelece a propriedade, e a publicação confiável então fornece autenticação segura e sem token para todas as publicações futuras.