Publicar um pacote interno
Do merge em main até o pacote disponível no índice interno, com versão derivada da tag e publicação sem senha.
Publicar é o passo que mais tenta virar manual, porque a primeira vez sempre funciona à mão. O procedimento abaixo existe para que a segunda vez também funcione, feita por outra pessoa, sem que ninguém precise de credencial de publicação na máquina.
Antes de começar
O repositório precisa do workflow publicar.yml do template e de uma variável
de repositório com o papel de publicação. Nenhum segredo de longa duração: a
autenticação é por identidade federada do próprio runner.
Os passos
Marcar a versão
A versão sai da tag, e a tag é a única fonte. Nada de editar número em arquivo: dois lugares divergem no dia em que alguém esquece um.
git tag -a v2.4.0 -m "cursor opaco na listagem"git push origin v2.4.0Deixar a esteira construir
O passo lê a tag e a injeta na build. Sem tag, a versão sai com sufixo de desenvolvimento e o índice a recusa.
- name: Construirrun: |export VERSAO="${GITHUB_REF_NAME#v}"python -m buildPublicar sem senha
O runner troca o token de identidade por uma credencial de curta duração. Nenhum segredo de publicação existe em lugar nenhum.
- uses: aws-actions/configure-aws-credentials@v4with:role-to-assume: ${{ vars.PAPEL_PUBLICACAO }}aws-region: us-east-1- run: panlabs-publicar dist/*
Verificação
O pacote aparece no índice em menos de um minuto. O teste real é instalá-lo numa máquina que não é a sua, ou num container limpo, que é mais rápido:
docker run --rm python:3.12-slim \
pip install --index-url "$PANLABS_INDICE" "panlabs-catalogo-contrato==2.4.0"
Instalar fixando a versão exata é o que prova a publicação. pip install pacote
sem versão pode resolver para uma cópia em cache e passar mesmo quando a
publicação falhou.
Variações
Pré-lançamento. Tag com sufixo (v2.5.0rc1) publica normalmente e o
índice a marca como pré-lançamento; pip só a instala com --pre.
Republicar a mesma versão. Não existe. O índice recusa sobrescrita, e é deliberado: um pacote que muda de conteúdo mantendo a versão quebra todo cache que já o baixou.
Apagar uma tag publicada não despublica o pacote. A saída é publicar uma versão nova, sempre, inclusive quando a anterior tem duas horas de vida.