Publier sur GitHub Packages et GitHub Container Registry
Dans cette section, vous allez apprendre les bases de l’utilisation d’un workflow pour publier sur GitHub Packages, ainsi que les étapes nécessaires pour construire, s’authentifier, taguer et pousser une image Docker vers le GitHub Container Registry.
Utiliser un workflow pour publier sur GitHub Packages
GitHub Packages vous permet de publier et de consommer des paquets de manière sécurisée, de stocker vos paquets à côté de votre code, et de les partager en privé avec votre équipe ou publiquement avec la communauté open source. Vous pouvez également utiliser GitHub Actions pour automatiser la gestion de vos paquets.
Voici un exemple de workflow de base qui s’exécute à chaque fois qu’une nouvelle version est créée dans un dépôt. Si les tests réussissent, le paquet est alors publié sur 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}}
Publier sur GitHub Packages et GitHub Container Registry
Tout d’abord, le fichier de workflow doit se trouver dans le répertoire .github/workflows
. Il est courant de nommer un workflow qui publie un nouveau paquet à chaque création de version quelque chose comme release-package.yml
, afin que les collaborateurs du projet comprennent facilement son objectif sans avoir à ouvrir le fichier.
Le workflow précédent effectue plusieurs actions après la création d’une nouvelle version :
- Un job nommé
build
exécutenpm ci
(où « ci » signifie Continuous Integration) pour installer les dépendances directement à partir du fichierpackage-lock.json
, ainsi que les tests du projet. - Une fois le job
build
réussi, le job nommépublish-gpr
publie le paquet. - Le workflow publie le paquet vers l’URL du registre :
https://npm.pkg.github.com/
en utilisant un jeton d’accès pour l’authentification.
Utiliser GitHub Container Registry pour héberger et gérer des images de conteneurs Docker
GitHub Packages prend en charge l’utilisation de conteneurs, de Kubernetes et d’autres technologies cloud-native pour gérer l’ensemble du cycle de vie des applications, y compris les opérations en production, le développement, la publication et le déploiement. GitHub Packages propose également un registre de conteneurs conçu pour répondre aux besoins spécifiques des images de conteneurs.
Vous pouvez utiliser GitHub Container Registry pour héberger et gérer facilement des images Docker dans votre organisation GitHub ou votre compte utilisateur personnel. Ce registre vous permet de configurer des autorisations précises pour gérer et accéder aux paquets.
Avec le registre de conteneurs, vous pouvez :
- Stocker des images de conteneurs dans votre organisation ou votre compte utilisateur, plutôt que dans un dépôt.
- Définir des autorisations fines pour les images de conteneurs.
- Accéder anonymement aux images de conteneurs publiques.
Une fois que vous avez construit l’image, que vous vous êtes authentifié et connecté au service GitHub Container Registry à l’adresse ghcr.io
, vous pouvez taguer et pousser la dernière version de l’image vers le registre à l’aide des commandes suivantes :
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
Remarque
Pour vous authentifier via un workflow GitHub Actions, vous pouvez utiliser un GITHUB_TOKEN
:
Pour le registre de conteneurs à l’adresse ghcr.io/OWNER/NOM-DE-L’IMAGE
.
Pour les registres de paquets à l’adresse PACKAGE-REGISTRY.pkg.github.com
.