Publicer til GitHub-pakker og GitHub-objektbeholderregistreringsdatabasen

Fuldført

Her får du mere at vide om, hvordan du bruger en arbejdsproces til at publicere til GitHub-pakker, og de nødvendige trin til at oprette, godkende, mærke og pushe et Docker-billede til GitHub Container Registry.

Brug en arbejdsproces til at publicere til GitHub-pakker

Med GitHub-pakker kan du på en sikker måde publicere og forbruge pakker, gemme dine pakker sammen med din kode og dele dine pakker privat med dit team eller offentligt med community'et med åben kildekode. Du kan også bruge GitHub-handlinger til at automatisere dine pakker.

Følgende er et eksempel på en grundlæggende arbejdsproces, der kører, når der oprettes en ny version i et lager. Hvis testene består, publiceres pakken til GitHub-pakker.

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}}

Først skal arbejdsprocesfilen findes i mappen .github/workflows. Det er almindelig praksis at navngive en arbejdsproces, der publicerer en ny pakke, når der oprettes en ny version, f.eks. release-package.yml, for at gøre det nemt for projektpartnere at forstå formålet uden at navigere til arbejdsprocesfilen.

Den foregående arbejdsproces gør et par ting, efter at en ny version er oprettet:

  1. Et job med navnet build kører npm ci ("ci" for Continuous Integration) for at installere afhængigheder direkte fra den package-lock.json fil samt testene for projektet.
  2. Når det build job lykkes, publicerer jobbet med navnet publish-gpr pakken.
  3. Arbejdsprocessen publicerer pakken til registry-url: https://npm.pkg.github.com/ ved hjælp af et adgangstoken til godkendelse.

Brug GitHub Container Registry til at hoste og administrere Docker-objektbeholderafbildninger

GitHub-pakker understøtter brugen af objektbeholdere, Kubernetes og andre cloudbaserede teknologier til at administrere hele deres programlivscyklus, herunder produktionshandlinger, udvikling, udgivelse og udrulning. GitHub Packages tilbyder også en objektbeholderregistreringsdatabase, der er designet til at understøtte objektbeholderafbildningernes unikke behov. Du kan bruge GitHub Container Registry til problemfrit at hoste og administrere Docker-objektbeholderbilleder i din GitHub-organisation eller personlige brugerkonto. Med GitHub Container Registry kan du konfigurere, hvem der kan administrere og få adgang til pakker ved hjælp af detaljerede tilladelser.

Med objektbeholderregistreringsdatabasen kan du:

  • Gem objektbeholderbilleder i din organisation og brugerkonto i stedet for et lager.
  • Angiv detaljerede tilladelser for objektbeholderbillederne.
  • Få anonym adgang til offentlige objektbeholderbilleder.

Når du har bygget billedet og godkendt og logget på GitHub Container Registry-tjenesten på ghcr.io, kan du derefter mærke og overføre den nyeste version af billedet til objektbeholderregistreringsdatabasen ved hjælp af disse kommandoer:

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

Seddel

Hvis du vil godkende ved hjælp af en Arbejdsproces for GitHub-handlinger, kan du bruge en GITHUB_TOKEN:

  • For pakkeregistre på PACKAGE-REGISTRY.pkg.github.com.
  • For objektbeholderregistreringsdatabasen på ghcr.io/OWNER/IMAGE-NAME.