Skip to main content

Краткое руководство по GitHub Packages

Публикация в GitHub Packages с помощью GitHub Actions.

Введение

В этом руководстве вы создадите рабочий процесс GitHub Actions, чтобы протестировать код, а затем опубликовать его в GitHub Packages.

Публикация пакета

  1. Создайте новый репозиторий в GitHub, добавив .gitignore для Node. Дополнительные сведения см. в разделе Создание репозитория.

  2. Клонируйте репозиторий на локальный компьютер.

    git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY.git
    cd YOUR-REPOSITORY
    
  3. Создайте файл index.js и добавьте базовое оповещение, говорящее "Hello world!"

    JavaScript
    console.log("Hello, World!");
    
  4. Инициализируйте пакет npm с помощью npm init. В мастере инициализации пакета введите пакет с именем @YOUR-USERNAME/YOUR-REPOSITORY и задайте для тестового скрипта значение exit 0. При этом будет создан файл package.json со сведениями о пакете.

    $ npm init
      ...
      package name: @YOUR-USERNAME/YOUR-REPOSITORY
      ...
      test command: exit 0
      ...
    
  5. Выполните npm install, чтобы создать файл package-lock.json, а затем зафиксируйте и отправьте изменения в GitHub.

    npm install
    git add index.js package.json package-lock.json
    git commit -m "initialize npm package"
    git push
    
  6. Создайте каталог .github/workflows. В этом каталоге создайте файл с именем release-package.yml.

  7. Скопируйте следующее содержимое YAML в release-package.yml файл.

    YAML
    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: 16
          - run: npm ci
          - run: npm test
    
      publish-gpr:
        needs: build
        runs-on: ubuntu-latest
        permissions:
          packages: write
          contents: read
        steps:
          - uses: actions/checkout@v4
          - uses: actions/setup-node@v4
            with:
              node-version: 16
              registry-url: https://npm.pkg.github.com/
          - run: npm ci
          - run: npm publish
            env:
              NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
    
  8. Укажите npm, какие области и реестр следует публиковать пакеты, используя один из следующих методов:

    • Добавьте файл конфигурации npm для репозитория, создав .npmrc файл в корневом каталоге с содержимым:

      @YOUR-USERNAME:registry=https://npm.pkg.github.com
      
    • Измените package.json файл и укажите publishConfig ключ:

      "publishConfig": {
        "@YOUR-USERNAME:registry": "https://npm.pkg.github.com"
      }
      
  9. Зафиксируйте и отправьте изменения в GitHub.

    $ git add .github/workflows/release-package.yml
    # Also add the file you created or edited in the previous step.
    $ git add .npmrc or package.json
    $ git commit -m "workflow to publish package"
    $ git push
    
  10. Созданный рабочий процесс будет выполняться при каждом создании нового выпуска в репозитории. Если тесты пройдены, пакет будет опубликован в GitHub Packages.

    Чтобы проверить это, перейдите на вкладку Код в репозитории и создайте новый выпуск. Дополнительные сведения см. в разделе Управление выпусками в репозитории.

Просмотр опубликованного пакета

Вы можете просмотреть все опубликованные вами пакеты.

  1. На GitHubперейдите на главную страницу репозитория.

  2. В правой боковой панели репозитория щелкните " Пакеты".

    Снимок экрана: боковая панель страницы репозитория. Раздел "Пакеты" описывается оранжевым цветом.

  3. Найдите и выберите имя пакета, который требуется просмотреть.

Установка опубликованного пакета

Теперь, когда вы опубликовали пакет, его можно использовать в качестве зависимости в ваших проектах. Дополнительные сведения см. в разделе Работа с реестром npm.

Следующие шаги

Базовый рабочий процесс, который вы только что добавили, запускается в любое время при создании нового выпуска в вашем репозитории. Но это только начало работы с GitHub Packages. Вы можете публиковать свой пакет в нескольких реестрах с помощью одного рабочего процесса, активировать выполнение рабочего процесса при различных событиях, таких как объединенный запрос на вытягивание, управление контейнерами и многие другие.

Сочетание GitHub Packages и GitHub Actions помогает автоматизировать практически все аспекты процессов разработки приложений. Готовы приступить к работе? Ниже приведены некоторые полезные ресурсы для следующих шагов в GitHub Packages и GitHub Actions: