Pubblicare in GitHub Packages e in GitHub Container Registry
In questa esercitazione verranno illustrate le nozioni di base sull'uso di un flusso di lavoro per la pubblicazione in GitHub Packages e i passaggi necessari per compilare, autenticare, contrassegnare ed eseguire il push di un'immagine Docker nel Registro Contenitori GitHub.
Usare un flusso di lavoro per pubblicare in GitHub Packages
GitHub Packages consente di pubblicare e usare in modo sicuro i pacchetti, archiviare i pacchetti insieme al codice e condividere i pacchetti privatamente con il team o pubblicamente con la community open source. È anche possibile usare GitHub Actions per automatizzare i pacchetti.
Di seguito è riportato un esempio di flusso di lavoro di base che viene eseguito ogni volta che viene creata una nuova versione in un repository. Se i test superano, il pacchetto viene pubblicato in GitHub Packages.
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}}
Prima di tutto, il file del flusso di lavoro deve esistere nella .github/workflows directory . È pratica comune denominare un flusso di lavoro che pubblica un nuovo pacchetto ogni volta che viene creata una nuova versione come release-package.yml, per semplificare la comprensione dello scopo dei collaboratori del progetto senza passare al file del flusso di lavoro.
Il flusso di lavoro precedente esegue alcune operazioni dopo la creazione di una nuova versione:
- Un'attività denominata
buildeseguenpm ci("CI" per l'integrazione continua) per installare le dipendenze direttamente dal filepackage-lock.jsone per eseguire i test per il progetto. - Al termine del processo
build, il processo denominatopublish-gprpubblica il pacchetto. - Il flusso di lavoro pubblica il pacchetto nell'oggetto
registry-url: https://npm.pkg.github.com/usando un token di accesso per l'autenticazione.
Usare Registro Contenitori GitHub per ospitare e gestire le immagini dei contenitori Docker
GitHub Packages supporta l'uso di contenitori, Kubernetes e altre tecnologie native del cloud per gestire l'intero ciclo di vita delle applicazioni, tra cui operazioni di produzione, sviluppo, rilascio e distribuzione. GitHub Packages offre anche un registro contenitori progettato per supportare le esigenze specifiche delle immagini del contenitore. È possibile usare GitHub Container Registry per ospitare e gestire facilmente le immagini dei contenitori Docker nell'organizzazione GitHub o nell'account utente personale. Registro Contenitori GitHub consente di configurare chi può gestire e accedere ai pacchetti usando autorizzazioni specifiche.
Con il registro contenitori è possibile:
- Archiviare le immagini di container all'interno dell'organizzazione e dell'account utente, piuttosto che in un repository.
- Impostare autorizzazioni con granularità fine per le immagini del contenitore.
- Accedere alle immagini del contenitore pubblico in modo anonimo.
Dopo aver compilato l'immagine e aver eseguito l'autenticazione e aver eseguito l'accesso al servizio Registro Contenitori GitHub all'indirizzo ghcr.io, è possibile contrassegnare ed eseguire il push della versione più recente dell'immagine nel registro contenitori usando questi comandi:
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
Annotazioni
Per eseguire l'autenticazione con un flusso di lavoro di GitHub Actions, è possibile usare un GITHUB_TOKEN:
- Per i registri di pacchetti in
PACKAGE-REGISTRY.pkg.github.com. - Per il registro contenitori in
ghcr.io/OWNER/IMAGE-NAME.