Tech Hub

@ Solution Architecture Works

Automatisez votre workflow avec GitHub Actions – Partie 2 sur 2

Publier sur GitHub Packages et GitHub Container Registry

Temps estimé :4 minutes 92 vues

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 construires’authentifiertaguer 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écute npm ci (où « ci » signifie Continuous Integration) pour installer les dépendances directement à partir du fichier package-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.

Share this Doc

Publier sur GitHub Packages et GitHub Container Registry

Or copy link

CONTENTS