我在 azure 中创建了一个 repo,我创建了一个 bash 文件,该文件使用以下命令从我的 CLI 中克隆了 repo:
$curl git clone https://username@dev.azure.com/organization/project/_git/reponame
它克隆了回购。我现在的挑战是自动化我保存在本地机器中的 yaml 文件,这样当我推送时,它会转到远程仓库并自动构建。我会很感激你的想法。谢谢
我在 azure 中创建了一个 repo,我创建了一个 bash 文件,该文件使用以下命令从我的 CLI 中克隆了 repo:
$curl git clone https://username@dev.azure.com/organization/project/_git/reponame
它克隆了回购。我现在的挑战是自动化我保存在本地机器中的 yaml 文件,这样当我推送时,它会转到远程仓库并自动构建。我会很感激你的想法。谢谢
如果您尚未为您的存储库创建 azure 管道,则推送 yaml 文件不会触发管道,因为它不存在。
如果您打算使用 curl 请求创建 azure 管道。您可以通过cli调用Build Definition Create restful api来创建管道。
POST https://dev.azure.com/{organization}/{project}/_apis/build/definitions?api-version=5.1
请参见下面的脚本示例:
点击此处获取个人访问令牌。
您可以调用repository list rest api来获取您的存储库的 id。您还可以获取 UI 的存储库 ID(转到项目设置--> Repo下的存储库-->选择您的存储库 --> 您将在地址栏中看到存储库 ID ) repositoryId=96a56858-..-...
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 管道。请在此处查看详细步骤。因为你已经有了你的 yaml 文件。您可以 Existing Azure Pipeline YAML file
在设置向导中进行选择。见下文:
通过上述方法创建管道后自动触发管道。您需要在 yaml 文件中定义触发器。请参阅此处了解更多信息。
例如:每次推送到 master 分支都会触发 master 分支上的构建。
trigger:
- master
注意:分支中必须存在 yaml 文件才能触发针对该分支的构建。
您可以使用 Azure DevOps CLI:
然后将运行相关的构建。