首页 > 解决方案 > 更新 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)

标签: azurepowershellazure-devopsyamlazure-powershell

解决方案


您可以在 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 ...禁用持续集成

在此处输入图像描述


推荐阅读