【发布时间】:2023-01-11 16:31:06
【问题描述】:
我正在尝试使用当前版本的版本在我的存储库中创建一个文件,只要有推送到主版本,该文件就会自动更新。我试过使用
- task: Bash@3
inputs:
targetType: 'inline'
script: |
sudo echo "$(major).$(minor).$(patch)" > version.txt
cat version.txt
但是,即使 cat 命令显示了正确的内容,该文件也不会在 repo 上创建。
我的一个同事建议我使用一个神器,我开发了以下代码:
steps:
- task: Bash@3
inputs:
targetType: 'inline'
script: |
sudo echo "$(major).$(minor).$(patch)" > version.txt
cat version.txt
- task: PublishPipelineArtifact@1
inputs:
publishLocation: filepath
targetPath: version.txt # path to the folder or file to publish
artifactName: version # name of the artifact to create
工件制作正确,我可以下载它并查看正确的版本号。有没有办法将这个工件直接推送到我的 Azure 存储库主分支的根目录中?提前致谢。
【问题讨论】:
-
sudo echo??? !!! -
@phd 我已经尝试了 echo 和 sudo echo 以了解为什么我无法在存储库上创建文件
-
您不能使用
sudo echo > file来克服重定向到文件的权限问题,因为第一个 shell 在运行sudo之前进行了重定向;如果重定向失败,shell 甚至不会启动sudo。我的建议是在这里删除sudo。
标签: bash git azure azure-devops azure-pipelines