Publicare în pachete GitHub și registry container GitHub

Finalizat

Aici veți afla noțiunile de bază despre utilizarea unui flux de lucru pentru a publica în Pachete GitHub și pașii necesari pentru a construi, a autentifica, a eticheta și a împinge o imagine Docker în Registry container GitHub.

Utilizarea unui flux de lucru pentru a publica în pachete GitHub

Pachetele GitHub vă permit să publicați și să consumați în siguranță pachete, să vă stocați pachetele împreună cu codul și să partajați pachetele în mod privat cu echipa sau public cu comunitatea open-source. De asemenea, puteți utiliza acțiuni GitHub pentru a automatiza pachetele.

Iată un exemplu de flux de lucru de bază care rulează de fiecare dată când se creează o versiune nouă într-un depozit. Dacă testele trec, atunci pachetul este publicat în Pachete 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}}

Mai întâi, fișierul flux de lucru trebuie să existe în directorul .github/workflows. Se recomandă de obicei să denumiți un flux de lucru care publică un pachet nou de fiecare dată când se creează o versiune nouă, cum ar fi release-package.yml, pentru a ajuta colaboratorii proiectului să înțeleagă scopul său fără a naviga la fișierul flux de lucru.

Fluxul de lucru precedent efectuează câteva lucruri după ce se creează o versiune nouă:

  1. O activitate numită build rulează npm ci ("ci" pentru integrare continuă) pentru a instala dependențe direct din fișierul package-lock.json, precum și testele pentru proiect.
  2. După ce lucrarea build reușește, activitatea denumită publish-gpr publică pachetul.
  3. Fluxul de lucru publică pachetul în registry-url: https://npm.pkg.github.com/ utilizând un token de acces pentru autentificare.

Utilizați GitHub Container Registry pentru a găzdui și a gestiona imaginile containerului Docker

Pachetele GitHub acceptă utilizarea containerelor, Kubernetes și a altor tehnologii native în cloud pentru a-și gestiona întregul ciclu de viață al aplicațiilor, inclusiv operațiunile de producție, dezvoltarea, lansarea și implementarea. Pachetele GitHub oferă, de asemenea, un registru de container proiectat să accepte necesitățile unice ale imaginilor container. Puteți utiliza GitHub Container Registry pentru a găzdui și a gestiona perfect imaginile containerului Docker din organizația dvs. GitHub sau din contul de utilizator personal. Registry container GitHub vă permite să configurați cine poate gestiona și accesa pachete utilizând permisiuni avansate.

Cu registry-ul containerului, aveți următoarele posibilități:

  • Stocați imagini container în organizația dvs. și în contul de utilizator, nu într-un depozit.
  • Setați permisiunile avansate pentru imaginile container.
  • Accesați anonim imaginile containerului public.

După ce ați construit imaginea și v-ați autentificat și v-ați conectat la serviciul de registry container GitHub la ghcr.io, puteți apoi să etichetați și să împingeți cea mai recentă versiune a imaginii în registry-ul containerului utilizând aceste comenzi:

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

Notă

Pentru a vă autentifica utilizând un flux de lucru Acțiuni GitHub, puteți utiliza o GITHUB_TOKEN:

  • Pentru registratorii de pachete la PACKAGE-REGISTRY.pkg.github.com.
  • Pentru registry container la ghcr.io/OWNER/IMAGE-NAME.