获取标记化文件列表并部署它们

Get list of tokenized files and deploy them

提问人:Jon Larsen 提问时间:11/9/2023 最后编辑:Jon Larsen 更新时间:11/10/2023 访问量:52

问:

我的谷歌foo让我失望了。 我们有一个由数千个文件的 10 个文件编译的系统。 其中数百个我们有一个环境令牌 {#...#}。大多数都是 PL/SQL,因此我们部署的是单个文件,而不是构建的包。 当我们从生产环境中刷新非生产环境时,我们需要重新部署所有这些标记化文件。

我们正在使用 AzureDevops 发布管道中的“替换令牌”步骤。但它会部署在所选的 Git 提交哈希中发生更改的文件。

有没有办法务实地获取所有这些标记化文件。更改和不更改,并且仅通过 AzureDevops 管道部署那些?

azure-devops azure-pipelines tokenize

评论


答:

1赞 Dou Xu-MSFT 11/9/2023 #1

有没有办法务实地获取所有这些标记化文件。已更改,但未更改

如果要替换所有标记化文件(已更改和未更改),可以在“替换令牌”任务中指定参数。它将搜索根目录中的所有文件,并将令牌替换为您定义的变量。enter image description here 结果:Target files**\*

enter image description here

如果有任何误解,请随时告诉我。

更新

如果你想告诉流水线只部署所有这些标记化的文件(更改和未更改),你可以使用 task 和 task 来实现它。powershellReplace token

1.Powershell任务

该脚本旨在搜索所有源代码文件中的特定单词或模式。您可以获取所有标记化文件列表并将它们复制到临时文件夹。

 $found_files = Get-ChildItem -Path $(System.DefaultWorkingDirectory) -Recurse | Select-String -Pattern "your token word" | Select path;

 if($found_files){
   foreach ($f in $found_files){ 
    Copy-Item $f.path -Destination  "$(System.DefaultWorkingDirectory)\temp";
   }
 }

2 替换令牌

它将替换临时文件夹中的令牌变量,该文件夹包含所有这些标记化文件。

现在,这些标记化文件位于 $(System.DefaultWorkingDirectory)\temp 文件夹中,您可以选择要部署的临时文件夹。enter image description here

希望能有所帮助。

评论

0赞 Jon Larsen 11/10/2023
正确。但是,有没有办法我可以告诉管道部署所有这些,并且只部署那些,即使它们没有在 Git 中更改?因此,在您的示例中,即这 2 个文件,我希望管道部署它们的最新版本,无论它们是否已更改
0赞 Dou Xu-MSFT 11/10/2023
嗨,乔恩,更新了答案,请检查它是否可以帮助您。