Skip to main content

GitHub Packages 快速入门

通过 GitHub Actions 发布到 GitHub Packages。

Note

GitHub Enterprise Server 目前不支持 GitHub 托管的运行器。 可以在 GitHub public roadmap 上查看有关未来支持计划的更多信息。

简介

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

发布包

  1. 在 GitHub 上创建新存储库,为节点添加 .gitignore。 有关详细信息,请参阅“创建新仓库”。

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

    git clone https://YOUR-HOSTNAME/YOUR-USERNAME/YOUR-REPOSITORY.git
    cd YOUR-REPOSITORY
    
  3. 创建 index.js 文件,并添加指示“Hello world!”的基本警报

    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 文件中,将 YOUR-HOSTNAME 替换为企业名称。

    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.YOUR-HOSTNAME.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 的后续步骤: