{"meta":{"title":"GitHub Packages 快速入门","intro":"使用 GitHub Packages 发布到 GitHub Actions。","product":"GitHub Packages","breadcrumbs":[{"href":"/zh/enterprise-server@3.17/packages","title":"GitHub Packages"},{"href":"/zh/enterprise-server@3.17/packages/quickstart","title":"快速入门"}],"documentType":"article"},"body":"# GitHub Packages 快速入门\n\n使用 GitHub Packages 发布到 GitHub Actions。\n\n> \\[!NOTE]\n> GitHub Enterprise Server 目前不支持 GitHub 托管的运行器。\n\n## 简介\n\n在本指南中，你将创建一个 GitHub Actions 工作流来测试代码，然后将其发布到 GitHub Packages。\n\n## 发布您的软件包\n\n1. 在GitHub上创建一个新仓库，并添加适用于 Node 的`.gitignore`。 有关详细信息，请参阅“[创建新仓库](/zh/enterprise-server@3.17/repositories/creating-and-managing-repositories/creating-a-new-repository)”。\n\n2. 将存储库克隆到本地计算机。\n\n   ```shell\n   git clone https://YOUR-HOSTNAME/YOUR-USERNAME/YOUR-REPOSITORY.git\n   cd YOUR-REPOSITORY\n   ```\n\n3. 创建 `index.js` 文件，并添加一个基本警报，提示“你好，世界！”\n\n   ```javascript copy\n   console.log(\"Hello, World!\");\n   ```\n\n4. 使用 `npm init` 初始化 npm 包。 在包初始化向导中，输入名称为 *`@YOUR-USERNAME/YOUR-REPOSITORY`* 的包，并将测试脚本设置为 `exit 0`。 这将生成一个 `package.json` 文件，其中包含有关包的信息。\n\n   ```shell\n   $ npm init\n     ...\n     package name: @YOUR-USERNAME/YOUR-REPOSITORY\n     ...\n     test command: exit 0\n     ...\n   ```\n\n5. 运行 `npm install` 以生成 `package-lock.json` 文件，然后将更改提交并推送到 GitHub。\n\n   ```shell\n   npm install\n   git add index.js package.json package-lock.json\n   git commit -m \"initialize npm package\"\n   git push\n   ```\n\n6. 创建 `.github/workflows` 目录。 在此目录中，创建名为 `release-package.yml` 的文件。\n\n7. 将以下 YAML 内容复制到 `release-package.yml` 文件中，并将 `YOUR-HOSTNAME` 替换为您的企业名称。\n\n   ```yaml copy\n   name: Node.js Package\n\n   on:\n     release:\n       types: [created]\n\n   jobs:\n     build:\n       runs-on: ubuntu-latest\n       steps:\n         - uses: actions/checkout@v6\n         - uses: actions/setup-node@v7\n           with:\n             node-version: 20\n         - run: npm ci\n         - run: npm test\n\n     publish-gpr:\n       needs: build\n       runs-on: ubuntu-latest\n       permissions:\n         packages: write\n         contents: read\n       steps:\n         - uses: actions/checkout@v6\n         - uses: actions/setup-node@v7\n           with:\n             node-version: 20\n             registry-url: https://npm.YOUR-HOSTNAME.com/\n         - run: npm ci\n         - run: npm publish\n           env:\n             NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}\n   ```\n\n8. 告诉 NPM 使用以下方法之一发布包的范围和注册表：\n   * 在根目录中创建包含以下内容的 `.npmrc` 文件，为存储库添加 NPM 配置文件：\n\n     ```shell\n     @YOUR-USERNAME:registry=https://npm.pkg.github.com\n     ```\n\n   * 编辑 `package.json` 文件并指定 `publishConfig` 密钥：\n\n     ```shell\n     \"publishConfig\": {\n       \"@YOUR-USERNAME:registry\": \"https://npm.pkg.github.com\"\n     }\n     ```\n\n9. 提交更改并将其推送到 GitHub。\n\n   ```shell\n   $ git add .github/workflows/release-package.yml\n   # Also add the file you created or edited in the previous step.\n   $ git add .npmrc or package.json\n   $ git commit -m \"workflow to publish package\"\n   $ git push\n   ```\n\n10. 只要您的仓库中创建新版本，您创建的工作流程就会运行。 如果测试通过，则将包发布到 GitHub Packages。\n\n    要测试这一点，请导航到存储库中的“代码”选项卡，并创建新版本。 有关详细信息，请参阅[在仓库中管理发行版](/zh/enterprise-server@3.17/repositories/releasing-projects-on-github/managing-releases-in-a-repository#creating-a-release)。\n\n## 查看已发布的包\n\n您可以查看您发布的所有软件包。\n\n1. 在 GitHub 上，导航到存储库的主页面。\n2. 在存储库的右侧边栏中，单击“包”。\n\n   ![存储库页面的边栏的屏幕截图。 “包”部分用橙色框出。](/assets/images/help/package-registry/packages-from-repo.png)\n3. 搜索要查看的包的名称，然后单击该名称。\n\n## 安装已发布的包\n\n现在，您已发布该包，您需要在各个项目中将其用作依赖项。 有关详细信息，请参阅“[在 npm 注册表上工作](/zh/enterprise-server@3.17/packages/working-with-a-github-packages-registry/working-with-the-npm-registry#installing-a-package)”。\n\n## 后续步骤\n\n您刚刚添加的基本工作流程在仓库中创建新版本时运行。 但这只是你可以用 GitHub Packages 做的事情的开始。 您可以通过单个工作流将包发布到多个注册表，并在不同事件（例如合并拉取请求）发生时触发工作流运行，管理容器等。\n\n组合 GitHub Packages 并 GitHub Actions 有助于自动执行应用程序开发流程的几乎所有方面。 准备好开始了吗？ 以下是一些有用的资源，可帮助你了解关于 GitHub Packages 和 GitHub Actions 的后续步骤：\n\n* 请参阅 [了解 GitHub Packages](/zh/enterprise-server@3.17/packages/learn-github-packages)，了解有关 GitHub Packages 的深度教程。\n* ```\n            有关 GitHub Actions 深度教程的 [AUTOTITLE](/actions/how-tos/write-workflows)\n  ```\n* 有关特定用例和示例，请参阅 [使用 GitHub Packages 注册表](/zh/enterprise-server@3.17/packages/working-with-a-github-packages-registry)"}