Publicar em pacotes do GitHub e registro de contêiner do GitHub
Aqui, você aprenderá as noções básicas do uso de um fluxo de trabalho para publicar em pacotes do GitHub e as etapas necessárias para criar, autenticar, marcar e enviar por push uma imagem do Docker para o Registro de contêiner do GitHub.
Usar um fluxo de trabalho para publicar em pacotes do GitHub
Os pacotes do GitHub permitem que você publique e consuma pacotes com segurança, armazene seus pacotes junto com seu código e compartilhe seus pacotes de forma privada com sua equipe ou publicamente com a comunidade de código aberto. Você também pode usar as Ações do GitHub para automatizar seus pacotes.
A seguir está um exemplo de um fluxo de trabalho básico que é executado sempre que uma nova versão é criada em um repositório. Se os testes forem aprovados, o pacote será publicado nos Pacotes do GitHub.
name: Node.js Package
on:
release:
types: [created]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 12
- run: npm ci
- run: npm test
publish-gpr:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 12
registry-url: https://npm.pkg.github.com/
- run: npm ci
- run: npm publish
env:
NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
Primeiro, o arquivo de fluxo de trabalho deve existir no .github/workflows
diretório. É prática comum nomear um fluxo de trabalho que publica um novo pacote sempre que uma nova versão é criada algo como release-package.yml
, para facilitar que os colaboradores do projeto entendam sua finalidade sem navegar até o arquivo de fluxo de trabalho.
O fluxo de trabalho anterior faz algumas coisas depois que uma nova versão é criada:
- Um trabalho chamado
build
é executadonpm ci
("ci" para Integração Contínua) para instalar dependências diretamente dopackage-lock.json
arquivo, bem como os testes para o projeto. - Quando o
build
trabalho for bem-sucedido, o trabalho nomeadopublish-gpr
publicará o pacote. - O fluxo de trabalho publica o pacote usando
registry-url: https://npm.pkg.github.com/
um token de acesso para autenticação.
Usar o Registro de Contêiner do GitHub para hospedar e gerenciar imagens de contêiner do Docker
Os pacotes GitHub suportam o uso de contêineres, Kubernetes e outras tecnologias nativas da nuvem para gerenciar todo o ciclo de vida do aplicativo, incluindo operações de produção, desenvolvimento, lançamento e implantação. Os pacotes do GitHub também oferecem um registro de contêiner projetado para suportar as necessidades exclusivas de imagens de contêiner. Você pode usar o Registro de Contêiner do GitHub para hospedar e gerenciar perfeitamente imagens de contêiner do Docker em sua organização do GitHub ou conta de usuário pessoal. O Registro de Contêiner do GitHub permite configurar quem pode gerenciar e acessar pacotes usando permissões refinadas.
Com o registro de contêiner, você pode:
- Armazene imagens de contêiner em sua organização e conta de usuário em vez de um repositório.
- Defina permissões refinadas para as imagens de contêiner.
- Aceda a imagens de contentores públicos de forma anónima.
Depois de criar a imagem e autenticar e entrar no serviço Registro de Contêiner do GitHub em ghcr.io
, você pode marcar e enviar a versão mais recente da imagem para o registro de contêiner usando estes comandos:
echo $GITHUB_TOKEN | docker login ghcr.io -u USERNAME --password-stdin
docker tag IMAGE_ID ghcr.io/OWNER/IMAGE_NAME:latest
docker push ghcr.io/OWNER/IMAGE_NAME:latest
Nota
Para autenticar usando um fluxo de trabalho de Ações do GitHub, você pode usar um GITHUB_TOKEN:
- Para registos de pacotes em
PACKAGE-REGISTRY.pkg.github.com
. - Para o registro de contêiner em
ghcr.io/OWNER/IMAGE-NAME
.