@govbr-ds/nx-release-config
v5.1.0
Published
Configuração compartilhada de releases com Nx para projetos GovBR-DS
Readme
@govbr-ds/nx-release-config
Preset compartilhado para releases de monorepos que usam o Nx Release.
Uso
Instale o preset e o Nx no monorepo consumidor:
pnpm add -D @govbr-ds/nx-release-config nxNo nx.json, estenda a configuração:
{
"extends": "@govbr-ds/nx-release-config/nx.json"
}O preset publica os projetos em packages/*, habilita Conventional Commits,
compartilha os tipos e seus impactos SemVer, cria commit, tag e Release no
GitLab e envia as notas da release diretamente para essa Release, sem criar
CHANGELOG.md no workspace.
Não declare um bloco release parcial no projeto consumidor. O Nx substitui
esse bloco no primeiro nível em vez de mesclá-lo profundamente, descartando as
opções do preset. Se o projeto não usa o layout packages/*, copie o bloco
release completo do preset para o nx.json e altere apenas projects.
Comandos
pnpm exec nx release --dry-run
pnpm exec nx release --printConfig
pnpm exec nx release --yesUse --dry-run para revisar versões e changelogs antes de publicar. O Nx
calcula a release antes de alterar arquivos; o pipeline deve executar a etapa
de release como uma única operação e interromper em qualquer erro. Para a CI,
configure NPM_TOKEN com permissão de publicação no npm e GITLAB_TOKEN; o
segundo precisa de escopo api, permissão para push e acesso à branch protegida.
O Nx publica com pnpm publish, então a credencial npm precisa ser configurada
no pnpm; o token OIDC NPM_ID_TOKEN não autentica esse comando.
O --dry-run ainda precisa identificar o repositório remoto para montar a
Release do GitLab. Confira git remote get-url origin: a URL resolvida deve
usar o host GitLab, como [email protected]: ou https://gitlab.com/. Um alias
SSH local, como gitlab-serpro, pode impedir essa identificação; nesse caso,
a simulação calcula e mostra as versões, mas termina com erro ao resolver os
dados do repositório.
As opções de commit usadas por nx release version ficam em
release.version.git. O Nx 23 rejeita release.git nesse subcomando.
