Publiceren naar GitHub Packages en GitHub Container Registry
Hier leert u de basisprincipes van het gebruik van een werkstroom voor het publiceren naar GitHub Packages en de benodigde stappen voor het bouwen, verifiëren, taggen en pushen van een Docker-installatiekopieën naar het GitHub Container Registry.
Een werkstroom gebruiken om te publiceren naar GitHub Packages
Met GitHub Packages kunt u veilig pakketten publiceren en gebruiken, uw pakketten naast uw code opslaan en uw pakketten privé delen met uw team of openbaar met de opensource-community. U kunt ook GitHub Actions gebruiken om uw pakketten te automatiseren.
Hieronder volgt een voorbeeld van een eenvoudige werkstroom die wordt uitgevoerd wanneer een nieuwe release wordt gemaakt in een opslagplaats. Als de tests zijn geslaagd, wordt het pakket gepubliceerd naar 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}}
Eerst moet het werkstroombestand in de .github/workflows
map staan. Het is gebruikelijk om een werkstroom een naam te geven waarmee een nieuw pakket wordt gepubliceerd wanneer een nieuwe release zoiets wordt release-package.yml
gemaakt, zodat projectmedewerkers het doel gemakkelijk kunnen begrijpen zonder naar het werkstroombestand te navigeren.
De voorgaande werkstroom doet enkele dingen nadat een nieuwe release is gemaakt:
- Een taak met de naam
build
'ci' voor continue integratie) wordt uitgevoerdnpm ci
om afhankelijkheden rechtstreeks vanuit hetpackage-lock.json
bestand te installeren, evenals de tests voor het project. - Zodra de
build
taak is voltooid, publiceert de taak met de naampublish-gpr
het pakket. - De werkstroom publiceert het pakket naar het
registry-url: https://npm.pkg.github.com/
gebruik van een toegangstoken voor verificatie.
GitHub Container Registry gebruiken om Docker-containerinstallatiekopieën te hosten en beheren
GitHub Packages biedt ondersteuning voor het gebruik van containers, Kubernetes en andere cloudtechnologieën voor het beheren van de volledige levenscyclus van toepassingen, waaronder productiebewerkingen, ontwikkeling, release en implementatie. GitHub Packages biedt ook een containerregister dat is ontworpen ter ondersteuning van de unieke behoeften van containerinstallatiekopieën. U kunt GitHub Container Registry gebruiken om docker-containerinstallatiekopieën naadloos te hosten en te beheren in uw GitHub-organisatie of persoonlijke gebruikersaccount. Met GitHub Container Registry kunt u configureren wie pakketten kan beheren en openen met behulp van verfijnde machtigingen.
Met het containerregister kunt u het volgende doen:
- Sla containerinstallatiekopieën op in uw organisatie en gebruikersaccount in plaats van een opslagplaats.
- Stel fijnmazige machtigingen in voor de containerinstallatiekopieën.
- Anonieme toegang tot installatiekopieën van openbare containers.
Nadat u de installatiekopie hebt gemaakt en bent geverifieerd en aangemeld bij de GitHub Container Registry-service ghcr.io
, kunt u vervolgens de nieuwste versie van de installatiekopie taggen en naar het containerregister pushen met behulp van deze opdrachten:
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
Notitie
Als u wilt verifiëren met behulp van een GitHub Actions-werkstroom, kunt u een GITHUB_TOKEN gebruiken:
- Voor pakketregisters op
PACKAGE-REGISTRY.pkg.github.com
. - Voor het containerregister op
ghcr.io/OWNER/IMAGE-NAME
.