Skip to main content

GitHub Packages 快速入门

使用 GitHub Packages 发布到 GitHub Actions。

简介

在本指南中,你将创建一个 GitHub Actions 工作流来测试代码,然后将其发布到 GitHub Packages。

发布您的软件包

  1. 在GitHub上创建一个新仓库,并添加适用于 Node 的.gitignore。 有关详细信息,请参阅“创建新仓库”。

  2. 将存储库克隆到本地计算机。

    git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY.git
    cd YOUR-REPOSITORY
    
  3. 创建 index.js 文件,并添加一个基本警报,提示“你好,世界!”

    JavaScript
    console.log("Hello, World!");
    
  4. 使用 npm init 初始化 npm 包。 在包初始化向导中,输入名称为 @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@v6
          - uses: actions/setup-node@v4
            with:
              node-version: 20
          - run: npm ci
          - run: npm test
    
      publish-gpr:
        needs: build
        runs-on: ubuntu-latest
        permissions:
          packages: write
          contents: read
        steps:
          - uses: actions/checkout@v6
          - uses: actions/setup-node@v4
            with:
              node-version: 20
              registry-url: https://npm.pkg.github.com/
          - run: npm ci
          - run: npm publish
            env:
              NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}
    
  8. 告诉 NPM 使用以下方法之一发布包的范围和注册表:

    • 在根目录中创建包含以下内容的 .npmrc 文件,为存储库添加 NPM 配置文件:

      @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 的后续步骤: