azure - 更新 Azure DevOps 构建文件
问题描述
我想更新 powershell 文件的模块版本,我使用了 Yaml/Powershell 命令并且能够更改模块版本号,但现在我想将我的更改保存到名为 fileLocation 的文件位置变量我不知道我该怎么做保存我对此 .psd1 文件所做的更改。当前的 Yaml 脚本是:
trigger:
branches:
include:
- master
variables:
versionNumber: '1.0.$(Build.BuildNumber)'
installModule: Install-Module -Name PowerShellGet -Scope CurrentUser -Repository PSGallery -Force -Verbose
data: Get-Content -Path James.Artifactory.psd1
fileLocation: James.Artifactory.psd1
versionUpdate: Update-ModuleManifest -Path James.Artifactory.psd1 -ModuleVersion "$(versionNumber)"
steps:
#Remove or commentout installModule after running it once
#- pwsh: $(installModule)
- pwsh: $(versionUpdate)
- pwsh: $(data)
- pwsh: Get-Content -Path $(fileLocation)
- pwsh: Out-File -FilePath $(fileLocation)
解决方案
您可以在 powershell 脚本中运行 git 命令以将更改提交到您的存储库。
首先,您需要进入项目设置下的存储库。点击Git Repositories,在安全页面,点击加号(+),搜索 group {your project name} build service({your org name})并点击添加,在访问控制摘要页面中,授予贡献并阅读允许。请检查下面的屏幕截图。
然后配置您的 yaml 文件以清理源代码并使用.llow脚本访问系统令牌checkout
。下面的脚本只是一个例子。
pool: default
steps:
- checkout: self
clean: true
persistCredentials: true
- powershell: |
cd $(System.defaultworkingdirectory)
git checkout -B master
New-Item -Path '$(System.defaultworkingdirectory)\newfile366.txt' -ItemType File
git add .
git commit -m "Update"
git push origin master
上面的脚本运行git checkout -B master
到结帐主分支。我用 New-Item
命令创建了一个新文件。然后我提交更改并推送到我的天蓝色存储库。
注意:我在 micrsoft 托管代理和自托管代理上都进行了测试。我只在自托管代理上运行 git 命令。我总是在 Microsoft 托管的代理上遇到NativeCommandError 。如果您遇到相同的错误,请创建您的自托管代理来运行您的 yaml 管道。
_
更新:
上面的 git 命令会将更改提交到您的主分支,如果您启用 CI 构建,它将触发另一个构建。您可以从触发器禁用 CI 构建
单击 3 个点并选择触发器。
然后检查覆盖yaml ...并禁用持续集成
推荐阅读
- angular - 使用 routet-outlet 时如何组件实例
- c++ - 使用“.exe”文件的 Adobe Premiere Pro 扩展
- css - 相对位置的行为与过去不同
- android - WebView 中未加载某些 URL
- java - 如何从文件读入对象(构造函数)
- php - 即使不返回整数,usort(php)如何工作?
- python - 如何使用 Python 抓取多个评论页面?
- java - 如何配置pom文件和TeamCity在maven java项目中构建依赖模块?
- reactjs - 每次使用反应路由器导航到redux组件时,如何阻止状态存储数据在redux组件中累积
- javascript - javascript regexp:匹配 :: 之后的所有内容,但不匹配 >