如何将构建文件作为资产添加到 Github 中的版本中?

How to add the build files as an asset to a release in Github?

我有一个基于 Node/npm 的项目并使用 commitlint、husky 和 ​​semantic-release。每当我推送到受保护的 main 分支时,我都想创建一个新版本。

在Github中我添加了以下工作流程

name: Release on push on main

on:
  push:
    branches:
      - main

jobs:
  release-on-push-on-main:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 0

      - name: Setup Node
        uses: actions/setup-node@v2
        with:
          node-version: 16.x

      - name: Install dependencies
        run: npm install

      - name: Release
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: npx semantic-release --branches main

哪个做得很好。转到发布时,我看到语义发布附加了源代码

运行 npm run build 为我生成了一个包含所有构建文件的 dist 文件夹。如何增强我的工作流程以将构建添加到资产?

添加步骤

  - name: Run build
    run: npm run build

  - name: Archive build
    uses: actions/upload-artifact@v2
    with:
      name: build
      path: dist

在 运行 之前,Release 步骤似乎按预期工作

但是如何将它作为资产添加到版本中?

您需要配置语义释放github-plugin 使用 configuration file

CLI 使用一些默认配置,如果您需要自定义配置 您将不得不从头开始创建整个配置(据我所知)。

在根项目文件夹中创建一个名为 release.config.js 的文件:

// make sure you install @semantic-release/github as dev dependency
module.exports =  {
  "plugins": [
    // additional config...

    ["@semantic-release/github", {
      "assets": [
        {"path": "dist/asset.min.css", "label": "CSS distribution"},
        {"path": "dist/asset.min.js", "label": "JS distribution"}
      ]
    }],
  ]
}

我还可以推荐使用语义释放的替代方法 称为 atomic-release。 它是一个 SDK,具有发布 NPM 包的策略(有点像语义发布)。看看GithubNpmPackageStrategy

免责声明:我是 atomic-release 的作者。