提问人:Jon Larsen 提问时间:11/9/2023 最后编辑:Jon Larsen 更新时间:11/10/2023 访问量:52
获取标记化文件列表并部署它们
Get list of tokenized files and deploy them
问:
我的谷歌foo让我失望了。 我们有一个由数千个文件的 10 个文件编译的系统。 其中数百个我们有一个环境令牌 {#...#}。大多数都是 PL/SQL,因此我们部署的是单个文件,而不是构建的包。 当我们从生产环境中刷新非生产环境时,我们需要重新部署所有这些标记化文件。
我们正在使用 AzureDevops 发布管道中的“替换令牌”步骤。但它会部署在所选的 Git 提交哈希中发生更改的文件。
有没有办法务实地获取所有这些标记化文件。更改和不更改,并且仅通过 AzureDevops 管道部署那些?
答:
1赞
Dou Xu-MSFT
11/9/2023
#1
有没有办法务实地获取所有这些标记化文件。已更改,但未更改
如果要替换所有标记化文件(已更改和未更改),可以在“替换令牌”任务中指定参数。它将搜索根目录中的所有文件,并将令牌替换为您定义的变量。 结果:Target files
**\*
如果有任何误解,请随时告诉我。
更新
如果你想告诉流水线只部署所有这些标记化的文件(更改和未更改),你可以使用 task 和 task 来实现它。powershell
Replace 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 文件夹中,您可以选择要部署的临时文件夹。
希望能有所帮助。
评论
0赞
Jon Larsen
11/10/2023
正确。但是,有没有办法我可以告诉管道部署所有这些,并且只部署那些,即使它们没有在 Git 中更改?因此,在您的示例中,即这 2 个文件,我希望管道部署它们的最新版本,无论它们是否已更改
0赞
Dou Xu-MSFT
11/10/2023
嗨,乔恩,更新了答案,请检查它是否可以帮助您。
评论