如何在Azure DevOps中自动对npm包进行版本控制(不触发新管道)?

问题描述 投票:0回答:2

我们正在努力做什么

我们正在使用 Azure Pipelines (

azure-pipelines.yml
) 来自动化 ci/cd。我们的部分配置完成了项目的版本控制,以发布到 Azure Artifacts。我们还尝试对其进行配置以更新
package.json
中的现有版本号,而不触发 Azure DevOps 中的新管道。

这是我们的

azure-pipelines.yml
文件的相关部分:

  - script: |
      git config --global user.email "[email protected]"
      git config --global user.name "User name"
      npm version patch -m "Bump version to %s [skip ci]" --force
    displayName: 'Bump release version'
  - script: |
      npm pack
    displayName: 'Package package'

这可以很好地将包发布到我们的 Azure Artifacts feed,但不会更新

package.json

中的现有版本

我们的

package.json
包含以下内容:

"release": {
    "plugins": [
        "@semantic-release/commit-analyzer",
        "@semantic-release/release-notes-generator",
        "@semantic-release/changelog",
        [
            "@semantic-release/npm",
            {
                "npmPublish": false
            }
        ],
        [
            "@semantic-release/git",
            {
                "assets": [
                    "dist/",
                    "package.json",
                    "CHANGELOG.md"
                ],
                "message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
            }
        ]
    ]
}

问题

我们如何更新脚本以确保

version
中的
package.json
值也得到更新,而不触发另一个管道执行(这将导致触发新管道执行的无限循环)?

npm azure-devops semantic-versioning
2个回答
6
投票

您可以添加另一个脚本任务来推送回您的 devops git 存储库。但首先,您需要添加 checkout 步骤并将 persistCredentials 设置为 true 以验证 git 命令。请参阅下面的示例:

- checkout: self
  persistCredentials: true

- script: |

   git config --global user.email "[email protected]"
   git config --global user.name "User name"
   npm version patch -m "Bump version to %s [skip ci]" --force

  displayName: 'Bump release version'

- script: |

   git push origin HEAD:$(Build.SourceBranchName)

  displayName: 'Update Git Repo'
  

因为提交消息中有 [skip ci] 。推回更新的 package.json 文件不会触发新的构建。请参阅此处


0
投票

我没有足够的代表发表评论,所以我将其放在这里。

Levi Lu-MSFTs answer 对我有用,但有一个小小的改变:我必须将

$(Build.SourceBranchName)
替换为
$(Build.SourceBranch)

© www.soinside.com 2019 - 2024. All rights reserved.