2

我有一个基于 Node/npm 的项目并使用 commitlint、husky 和语义发布。每当我推送到受保护的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步骤之前似乎按预期工作

在此处输入图像描述

但是我怎样才能将它作为资产添加到版本中呢?

4

1 回答 1

2

您需要 使用配置文件配置语义发布github-plugin

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的语义释放替代方案。它是一个带有发布 NPM 包的策略的 SDK(有点像语义发布)。看看GithubNpmPackageStrategy

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

于 2021-11-06T06:59:11.167 回答