Publicare în pachete GitHub și registry container GitHub
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ă:
- O activitate numită
buildruleazănpm ci("ci" pentru integrare continuă) pentru a instala dependențe direct din fișierulpackage-lock.json, precum și testele pentru proiect. - După ce lucrarea
buildreușește, activitatea denumităpublish-gprpublică pachetul. - 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.