使用 semantic-release 在发布中更新版本字符串,并通过提交非 npm 项目

using semantic-release to update version strings in release and via commit for non-npm project

我正在 Gitlab 上开发一些 WordPress 项目,我想使用语义发布来自动管理发布。为此,我试图完成一些额外的事情:

我很确定我已经接近了,我得到了第一个项目(通过 google 的 semantic-release-replace-plugin)但没有第二个。到目前为止,我已经尝试通过语义发布的插件生态系统来做大部分事情,但如果需要,我可以冒险进入脚本领域。

我的 .releaserc 看起来像:

{
  "branches": [ "main" ],
  "plugins": [
    "@semantic-release/commit-analyzer",
    "@semantic-release/release-notes-generator",
    [
      "@google/semantic-release-replace-plugin",
      {
        "replacements": [
          {
            "files": ["style.css"],
            "from": "Version: .*",
            "to": "Version: ${nextRelease.version}",
            "results": [
              {
                "file": "style.css",
                "hasChanged": true,
                "numMatches": 1,
                "numReplacements": 1
              }
            ],
            "countMatches": true
          }
        ]
      }
    ],
    [
      "@semantic-release/git",
      {
        "assets": ["style.css"]
      }
    ],
    [
      "@semantic-release/gitlab", 
      {
        "assets": [
          {"path": "experiments.zip", "label": "zip"}
        ]
      }
    ]
  ]
}

.gitlab-ci.yml 看起来像:

variables:
  GL_TOKEN: $GL_TOKEN

stages:
    - release

before_script:
  - npm install

publish:
  image: cimg/php:7.4-node
  stage: release
  script:
    - npm run build
    - npm run zip
    - npx semantic-release
  only:
    refs:
      - main

其中 npm run build 编译一些资产,npm run zip 是一个基于 JavaScript 的脚本,用于压缩所需的生产就绪文件,在本例中生成 experiments.zip.

如有任何建议,我们将不胜感激!

所以这里的主要问题是编译没有在正确的时间发生,我需要滑动

"@semantic-release/exec",
{
    "prepareCmd": "node bin/makezip.js"
}

在“@semantic-release/git”和“@semantic-release/gitlab”之间。