如何使用curl请求使用CLI从yaml文件创建Azure管道?

时间:2020-05-15 01:31:27

标签: bash azure-devops yaml azure-automation azure-pipelines-yaml

我用azure创建了一个存储库,创建了一个bash文件,该文件使用以下命令从CLI克隆了存储库:

$ curl git clone https://username@dev.azure.com/organization/project/_git/reponame

克隆了仓库。我现在面临的挑战是自动化保存在本地计算机中的yaml文件,以便在我推送时将其转到远程存储库并自动生成。我会很感激你的想法。谢谢

2 个答案:

答案 0 :(得分:1)

如果您尚未为回购创建一个蔚蓝的管道,则推送yaml文件不会触发管道,因为它不存在。

  • 如何使用curl请求通过CLI从yaml文件创建Azure管道?

如果您打算使用curl请求创建天蓝色管道。您可以调用Build Definition Create宁静的api通过cli创建管道。

POST https://dev.azure.com/{organization}/{project}/_apis/build/definitions?api-version=5.1

请参见下面的脚本示例:

点击此处获取personal access token

您可以调用repository list rest api来获取存储库的ID。您还可以获取UI的存储库ID(转到回购下的项目设置-> 存储库-> 选择< / strong>您的存储库->您将在地址栏 repositoryId=96a56858-..-...

中看到存储库ID。
curl -X POST \
-u username:personalaccesstoken https://dev.azure.com/{organization}/{project}/_apis/build/definitions?api-version=5.1 \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
    "name" : "MyPipelineName";
    "repository" : {
        "url" : "<the-https-link-to-my-Git-repo>";
        "defaultBranch" : "refs/heads/master";
        "id" : "Id of the repository";
        "type" : "TfsGit";
    };
    "process" : {
        "yamlFilename": "path to/my-pipeline.yml";
        "type" : 2;
    };
    "path": "\A New Folder";
    "type" : "build";
}'

您还可以从您的azure devops项目UI门户创建azure管道。请检查详细步骤here。由于您已经拥有yaml文件。您可以在设置向导中选择Existing Azure Pipeline YAML file。见下文:

enter image description here

要启用通过上述方法创建管道后自动触发管道的功能。您需要在yaml文件中定义触发器。有关更多信息,请参见here

对于下面的示例:每次按下master分支都将触发在master分支上进行构建。

trigger:
- master

注意:分支中必须存在yaml文件才能触发针对该分支的构建。

答案 1 :(得分:0)

您可以使用Azure DevOps CLI:

  1. Store the personal access token in environment(或其他方式)
  2. 通过调用az repos create
  3. 在DevOps组织中创建新的存储库
  4. 通过调用 git push 命令
  5. 将本地git存储库推送到该存储库(#2)
  6. 通过调用az pipelines create
  7. 创建新的Yaml管道

然后将运行相关构建。