Közzététel a GitHub Packagesben és a GitHub Container Registryben
Itt elsajátíthatja a Munkafolyamatok GitHub Packagesben való közzétételének alapjait, valamint a Docker-rendszerképek GitHub-tárolóregisztrációs adatbázisba való létrehozásához, hitelesítéséhez, címkézéséhez és leküldéséhez szükséges lépéseket.
A GitHub Packages-hez való közzétételhez használj munkafolyamatot.
A GitHub Packages lehetővé teszi a csomagok biztonságos közzétételét és használatát, a csomagok kóddal együtt történő tárolását, valamint a csomagok privát vagy nyilvános megosztását a csapatával vagy nyilvánosan a nyílt forráskódú közösséggel. A GitHub Actions használatával automatizálhatja a csomagokat.
Az alábbiakban egy egyszerű munkafolyamatot mutatunk be, amely akkor fut, amikor új kiadás jön létre egy adattárban. Ha a tesztek sikeresek, a csomag közzé lesz téve a GitHub Packagesben.
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}}
Először is a munkafolyamat-fájlnak a .github/workflows könyvtárban kell lennie. Gyakori eljárás, hogy egy új csomagot közzétevő munkafolyamatot nevezünk el, amikor új kiadást hozunk létre, például release-package.yml, hogy a projekt közreműködői könnyen megértsék a célját anélkül, hogy a munkafolyamat-fájlra navigálnak.
Az előző munkafolyamat néhány dolgot tesz egy új kiadás létrehozása után:
- Egy
buildnevű feladat anpm ci("ci" a folyamatos integrációra) futtatásával telepíti a függőségeket közvetlenül apackage-lock.jsonfájlból, valamint futtatja a projekt tesztjeit. - A
buildfeladat sikeres végrehajtása után apublish-gprnevű feladat közzéteszi a csomagot. - A munkafolyamat egy hozzáférési token használatával teszi közzé a csomagot a
registry-url: https://npm.pkg.github.com/-ra.
A GitHub Container Registry használata Docker-tárolólemezképek üzemeltetéséhez és kezeléséhez
A GitHub Packages támogatja a tárolók, a Kubernetes és más natív felhőtechnológiák használatát az alkalmazás teljes életciklusának kezeléséhez, beleértve az éles műveleteket, a fejlesztést, a kiadást és az üzembe helyezést. A GitHub Packages emellett egy tárolóregisztrációs adatbázist is kínál, amely a tárolólemezképek egyedi igényeit támogatja. A GitHub Container Registry használatával zökkenőmentesen üzemeltetheti és kezelheti a Docker-tárolólemezképeket a GitHub-szervezetben vagy a személyes felhasználói fiókban. A GitHub Container Registry lehetővé teszi annak konfigurálását, hogy ki felügyelheti és érheti el a csomagokat részletes engedélyekkel.
A tárolóregisztrációs adatbázissal a következőt teheti:
- Tárolólemezképeket tárol a szervezeten és a felhasználói fiókon belül, nem pedig adattárat.
- Adjon meg részletes engedélyeket a tárolólemezképekhez.
- Nyilvános tárolórendszerképek névtelen elérése.
Miután elkészítette a rendszerképet, és hitelesítette és bejelentkezett a GitHub Container Registry szolgáltatásba a ghcr.io, a következő parancsokkal címkézheti és leküldheti a lemezkép legújabb verzióját a tárolóregisztrációs adatbázisba:
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
Jegyzet
Ha GitHub Actions-munkafolyamattal szeretne hitelesíteni, használhat egy GITHUB_TOKEN:
- Csomagregisztrációs adatbázisok esetén a
PACKAGE-REGISTRY.pkg.github.com. - A tárolóregisztrációs adatbázis
ghcr.io/OWNER/IMAGE-NAME.