我在DevOps Azure网站上有一个repo,名称为“ my_platform_services”。这个仓库不是Java Maven或Gradle项目,也不是类似的东西。主要是bash脚本。
我基本上想消费 /使用此仓库进入我的发布管道,在其中我想添加一个阶段和一些任务以运行my_platform_services仓库中的一个bash脚本在ovf / build目录中!
我知道我可以在舞台上添加命令行任务,然后将代码放入运行我的脚本,这是:
./deploy.sh -i name -v 1.0.0
但是我一直收到No such file or directory error
我不知道如何访问该工件/仓库的工作目录,因此我可以在该代理上运行脚本。我对公司对变量的命名感到困惑。一些构建管道具有类似$BUILD_ARTIFACTSTAGINGDIRECTORY
的变量,一些发布管道中的脚本(我试图模拟它们具有$(System.DefaultWorkingDirectory)
,有些是$(Build.ArtifactStagingDirectory)
)。
我不知道为什么有些相同但大写,或者为什么有些带有括号,我尝试查看Azure / Microsoft文档,但是它们列出的所有“预定义”管道变量都不相同。我什至查看了各自的管道(发布和构建)变量,看是否可以在其中找到任何变量,但其中只有诸如常量之类的变量,以及诸如密码或其他变量之类的变量(没有一个看起来像这样)。
如果我将发布库设置为artifact的发布库,它是否会自动被消耗,还是我仍然需要在阶段中(在发布管道中)添加一个任务,以便从中下载“ Artifacts”该特定的回购协议?
所以有人可以向我解释这些变量的定义位置以及它们的路径到底是什么吗?我构建了一些非常简单的基本构建管道,并使用了消耗该构建管道并部署到Azure的发布管道,但是它使用它们“默认”部署到Azure阶段,因此我不必手动配置任何目录或文件。我会帮忙的!!
如果您已经将存储库作为工件添加到Release管道中。我的意思是你这样做了:
您应该在工作中轻松找到此步骤:
因此您不必添加任何下载步骤。他们在那里。您还可以在[docs](https://docs.microsoft.com/en-us/azure/devops/pipelines/release/variables?view=azure-devops&tabs=batch)中找到:
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在存储库的主根目录中。