Publicera till GitHub Packages och GitHub Container Registry
Här lär du dig grunderna i att använda ett arbetsflöde för att publicera till GitHub Packages och de steg som krävs för att skapa, autentisera, tagga och skicka en Docker-avbildning till GitHub Container Registry.
Använda ett arbetsflöde för att publicera till GitHub Packages
Med GitHub Packages kan du på ett säkert sätt publicera och använda paket, lagra dina paket tillsammans med din kod och dela dina paket privat med ditt team eller offentligt med communityn med öppen källkod. Du kan också använda GitHub Actions för att automatisera dina paket.
Följande är ett exempel på ett grundläggande arbetsflöde som körs när en ny version skapas på en lagringsplats. Om testerna godkänns publiceras paketet till 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}}
Först måste arbetsflödesfilen finnas i .github/workflows
katalogen. Det är vanligt att namnge ett arbetsflöde som publicerar ett nytt paket när en ny version skapas ungefär som release-package.yml
, för att göra det enkelt för projektmedarbetare att förstå dess syfte utan att gå till arbetsflödesfilen.
Föregående arbetsflöde gör några saker när en ny version har skapats:
- Ett jobb med namnet
build
körnpm ci
("ci" för kontinuerlig integrering) för att installera beroenden direkt frånpackage-lock.json
filen, samt testerna för projektet. build
När jobbet har slutförts publicerar jobbet med namnetpublish-gpr
paketet.- Arbetsflödet publicerar paketet till med hjälp av
registry-url: https://npm.pkg.github.com/
en åtkomsttoken för autentisering.
Använda GitHub Container Registry som värd för och hantera Docker-containeravbildningar
GitHub Packages stöder användning av containrar, Kubernetes och andra molnbaserade tekniker för att hantera hela programlivscykeln, inklusive produktionsåtgärder, utveckling, lansering och distribution. GitHub Packages erbjuder också ett containerregister som är utformat för att stödja de unika behoven hos containeravbildningar. Du kan använda GitHub Container Registry för att sömlöst vara värd för och hantera Docker-containeravbildningar i din GitHub-organisation eller ditt personliga användarkonto. Med GitHub Container Registry kan du konfigurera vem som kan hantera och komma åt paket med detaljerade behörigheter.
Med containerregistret kan du:
- Lagra containeravbildningar i organisationen och användarkontot i stället för en lagringsplats.
- Ange detaljerade behörigheter för containeravbildningarna.
- Få åtkomst till offentliga containeravbildningar anonymt.
När du har skapat avbildningen och autentiserat och loggat in på GitHub Container Registry-tjänsten på ghcr.io
kan du tagga och push-överföra den senaste versionen av avbildningen till containerregistret med hjälp av följande kommandon:
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
Kommentar
Om du vill autentisera med ett GitHub Actions-arbetsflöde kan du använda en GITHUB_TOKEN:
- För paketregister på
PACKAGE-REGISTRY.pkg.github.com
. - För containerregistret på
ghcr.io/OWNER/IMAGE-NAME
.