Közzététel a GitHub Packagesben és a GitHub Container Registryben

Befejeződött

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:

  1. Egy build nevű feladat a npm ci ("ci" a folyamatos integrációra) futtatásával telepíti a függőségeket közvetlenül a package-lock.json fájlból, valamint futtatja a projekt tesztjeit.
  2. A build feladat sikeres végrehajtása után a publish-gpr nevű feladat közzéteszi a csomagot.
  3. 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.