Rem*_*emi 1 npm azure-devops azure-pipelines
在适用于 npm 的 Azure DevOps Services 快速入门指南中,它在最后的第 6 步:发布 npm 包中说明了以下内容:
“如果您将 npmjs.com 配置为上游并且包名称/版本存在于公共注册表中,那么您将被阻止发布”
换句话说,一旦使用 Azure 管道的构建开始,并且您希望它构建包,它只会在使用不存在的包版本时构建包。
但是,尝试这样做会导致出现橙色/黄色构建状态的警告。
是否可以检查包版本是否已更新,以便构建仅在包版本实际包含新版本时才尝试构建包?或者这里有推荐的另一种方法吗?
这里有三个步骤:
- script: |
PackageName=$(npm list --json --depth=0 | sed -n 2p | cut -d '"' -f4)
NewPackageVersion=$(npm list --json --depth=0 | sed -n 3p | cut -d '"' -f4)
PublishedPackageVersion=$(npm show $PackageName version)
echo "##vso[task.setvariable variable=NewPackageVersion;]$NewPackageVersion"
echo "##vso[task.setvariable variable=PublishedPackageVersion;]$PublishedPackageVersion"
displayName: "Extract package versions"
- task: Npm@1
inputs:
command: publish
displayName: "Publish"
condition: |
and(
ne(variables['NewPackageVersion'], variables['PublishedPackageVersion']),
succeeded(),
eq(variables['Build.SourceBranch'], 'refs/heads/master')
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
973 次 |
| 最近记录: |