Введение
В этом руководстве вы создадите рабочий процесс GitHub Actions, чтобы протестировать код, а затем опубликовать его в GitHub Packages.
Если вы используете управляемая учетная запись пользователя, невозможно опубликовать пакет в репозитории, принадлежащем вашей учетной записи. Чтобы следовать этому руководству, используйте личная учетная запись для GitHub.com вместо этого.
Публикация пакета
-
Создайте новый репозиторий в GitHub, добавив
.gitignore
для Node. Дополнительные сведения см. в разделе Создание репозитория. -
Клонируйте репозиторий на локальный компьютер.
git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY.git cd YOUR-REPOSITORY
-
Создайте файл
index.js
и добавьте базовое оповещение, говорящее "Hello world!"JavaScript console.log("Hello, World!");
console.log("Hello, World!");
-
Инициализируйте пакет npm с помощью
npm init
. В мастере инициализации пакета введите пакет с именем@YOUR-USERNAME/YOUR-REPOSITORY
и задайте для тестового скрипта значениеexit 0
. При этом будет создан файлpackage.json
со сведениями о пакете.$ npm init ... package name: @YOUR-USERNAME/YOUR-REPOSITORY ... test command: exit 0 ...
-
Выполните
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
-
Создайте каталог
.github/workflows
. В этом каталоге создайте файл с именемrelease-package.yml
. -
Скопируйте следующее содержимое 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}}
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}}
-
Укажите npm, какие области и реестр следует публиковать пакеты, используя один из следующих методов:
-
Добавьте файл конфигурации npm для репозитория, создав
.npmrc
файл в корневом каталоге с содержимым:@YOUR-USERNAME:registry=https://npm.pkg.github.com
-
Измените
package.json
файл и укажитеpublishConfig
ключ:"publishConfig": { "@YOUR-USERNAME:registry": "https://npm.pkg.github.com" }
-
-
Зафиксируйте и отправьте изменения в 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
-
Созданный рабочий процесс будет выполняться при каждом создании нового выпуска в репозитории. Если тесты пройдены, пакет будет опубликован в GitHub Packages.
Чтобы проверить это, перейдите на вкладку Код в репозитории и создайте новый выпуск. Дополнительные сведения см. в разделе Управление выпусками в репозитории.
Просмотр опубликованного пакета
Вы можете просмотреть все опубликованные вами пакеты.
-
На GitHubперейдите на главную страницу репозитория.
-
В правой боковой панели репозитория щелкните " Пакеты".
-
Найдите и выберите имя пакета, который требуется просмотреть.
Установка опубликованного пакета
Теперь, когда вы опубликовали пакет, его можно использовать в качестве зависимости в ваших проектах. Дополнительные сведения см. в разделе Работа с реестром npm.
Следующие шаги
Базовый рабочий процесс, который вы только что добавили, запускается в любое время при создании нового выпуска в вашем репозитории. Но это только начало работы с GitHub Packages. Вы можете публиковать свой пакет в нескольких реестрах с помощью одного рабочего процесса, активировать выполнение рабочего процесса при различных событиях, таких как объединенный запрос на вытягивание, управление контейнерами и многие другие.
Сочетание GitHub Packages и GitHub Actions помогает автоматизировать практически все аспекты процессов разработки приложений. Готовы приступить к работе? Ниже приведены некоторые полезные ресурсы для следующих шагов в GitHub Packages и GitHub Actions:
- "Изучение GitHub Packages" для подробного руководства по пакетам GitHub
- "Написание рабочих процессов" для подробного руководства по GitHub Actions
- AutoTITLE для конкретных вариантов использования и примеров