我在DevOps Azure网站上有一个 repo ,名称为“ my_platform_services”。这个仓库不是Java Maven或Gradle项目,也不是类似的东西。主要是bash脚本。
我基本上想消费 /使用此仓库到我的发布管道,在这里我想添加一个阶段和一些任务来运行其中一个ovf / build目录中my_platform_services存储库中的bash脚本!
我知道我可以在舞台中添加命令行任务,然后将代码放入运行我的脚本,即:
./deploy.sh -i name -v 1.0.0
但是我不断收到No such file or directory error
我不知道如何访问该工件/仓库的工作目录,因此我可以在该代理上运行脚本。我对公司对变量的命名感到困惑。一些构建管道具有类似$BUILD_ARTIFACTSTAGINGDIRECTORY
的变量,我试图模拟的Release管道中的某些脚本具有$(System.DefaultWorkingDirectory)
,有些是$(Build.ArtifactStagingDirectory)
。
我不明白为什么有些相同但大写,或者为什么有些带有括号,我尝试查看Azure / Microsoft文档,但列出的所有“预定义”管道变量都不相同。我什至查看了各自的管道(发布和构建)变量,看是否可以在其中找到任何变量,但其中只有诸如常量之类的变量,以及诸如密码或其他变量之类的变量(没有一个看起来像这样)。
如果我将发布库设置为发布管道的工件,它是否会自动消耗,还是我仍然需要在阶段(在发布管道中)为“下载”添加任务该特定存储库中的“工件”?
那么谁能向我解释这些变量的定义位置以及它们的路径到底是什么?我构建了一些非常简单的基本构建管道,并使用了消耗该构建管道并部署到Azure的发布管道,但是它使用它们“默认”部署到了Azure阶段,因此我不必手动配置任何目录或文件。我会帮忙的!!
答案 0 :(得分:0)
如果您已经将存储库作为工件添加到Release管道中。我的意思是你这样做了:
您应该在工作中轻松找到此步骤:
因此您无需添加任何下载步骤。他们在那里。您还可以在docs中找到
: System.DefaultWorkingDirectory
在部署服务器期间将工件下载到的目录 发布。该目录在每次部署之前都会被清除 需要将工件下载到代理。和...一样 Agent.ReleaseDirectory和System.ArtifactsDirectory。
但是它们并不直接在此文件夹中。定义工件时,您为其添加了别名。它们在此文件夹下。我有两个工件,ls $(System.DefaultWorkingDirectory)
我得到了:
2020-05-05T05:34:40.8873412Z Directory: D:\a\r1\a
2020-05-05T05:34:40.8873732Z
2020-05-05T05:34:40.8873966Z
2020-05-05T05:34:40.8876175Z Mode LastWriteTime Length Name
2020-05-05T05:34:40.8877413Z ---- ------------- ------ ----
2020-05-05T05:34:40.8879803Z d----- 5/5/2020 5:34 AM repos
2020-05-05T05:34:40.8891912Z d----- 5/5/2020 5:34 AM _DevOps Manual-CI
2020-05-05T05:34:40.8955258Z
请检查您的工件的别名是什么,然后尝试命令:
./yourAlias/deploy.sh -i name -v 1.0.0
如果deploy.sh位于存储库的主根目录中。