需求
在之前的文章中“[DevOps]如何用VSTS持续集成到Github仓库”
我们有讲述如何将vsts中的代码编译推送到github中,这一篇我们来完善,如果有人给你开源项目推送了代码,你审核后,如何自动将代码推送回vsts,从而实现双同步。
准备工作
首先你要生成一个key,登录到你的vsts中。进入“Security”菜单栏。
![img_1acee10580acd87404a82c5a9b5fbcb9.png](https://yqfile.alicdn.com/img_1acee10580acd87404a82c5a9b5fbcb9.png?x-oss-process=image/resize,w_1400/format,webp)
生成密钥
点击Add,添加一个密钥。
![img_76bba13a8edfb691590e8f98664a18c7.png](https://yqfile.alicdn.com/img_76bba13a8edfb691590e8f98664a18c7.png?x-oss-process=image/resize,w_1400/format,webp)
image.png
注意:此处生成的密钥,请自行保存,因为你刷新页面后,此处的密钥就不会再出现。同时密钥是有失效时间的。所以请注意。
创建一个任务
回到我们的“Build and Release”菜单栏,创建一个新的task。
![img_d426217770ebac21f5a09eea350cf6d5.png](https://yqfile.alicdn.com/img_d426217770ebac21f5a09eea350cf6d5.png?x-oss-process=image/resize,w_1400/format,webp)
image.png
点击新增“Empty process”取个名字叫做“SyncFromGithub”,选择队列为“Host”,
![img_575dcb38a249b5451129af790c3677b2.png](https://yqfile.alicdn.com/img_575dcb38a249b5451129af790c3677b2.png?x-oss-process=image/resize,w_1400/format,webp)
image.png
然后选择获取代码源,然后进行github授权,选择你对应的仓库。
![img_094cdd4082a88bbf2bd761c19c0f526b.png](https://yqfile.alicdn.com/img_094cdd4082a88bbf2bd761c19c0f526b.png?x-oss-process=image/resize,w_1400/format,webp)
image.png
回到Phase,新增一个cmd,命令行
![img_5162d03d745b3380942272af23b9b28d.png](https://yqfile.alicdn.com/img_5162d03d745b3380942272af23b9b28d.png?x-oss-process=image/resize,w_1400/format,webp)
image.png
![img_94c79fa3a4335d52011e0801027c756a.png](https://yqfile.alicdn.com/img_94c79fa3a4335d52011e0801027c756a.png?x-oss-process=image/resize,w_1400/format,webp)
命令行.png
在第一个命令行中填入以下代码。其中$(vststoken)为参数名称,我们待会儿说。
pull https://$(vststoken)@52ABP.visualstudio.com/_git/52ABP.School master
我们先拉取下vsts中仓库的代码。
![img_5d6ceca0c113f757f53ded19841c86fa.png](https://yqfile.alicdn.com/img_5d6ceca0c113f757f53ded19841c86fa.png?x-oss-process=image/resize,w_1400/format,webp)
image.png
然后再添加一个命令行工具。
push https://$(vststoken)@52ABP.visualstudio.com/_git/52ABP.School head:master
然后再将代码推送到服务vsts中。
参数的设置
我们之前要的token值,用于授权验证,打开“Variables”菜单栏,
新建一个vststoken的名称。将刚刚生成的token值,输入到value中。
![img_ffed59219d4fa3dc8057fdf4ecbe422d.png](https://yqfile.alicdn.com/img_ffed59219d4fa3dc8057fdf4ecbe422d.png?x-oss-process=image/resize,w_1400/format,webp)
image.png
如上图,加锁后。会启用掩码。这样的话就安全不少。
设置触发器
然后就跟之前的课程一样,设置下触发器。
![img_9eb7e2736cecb5c7557bcd2e6c10ba1b.png](https://yqfile.alicdn.com/img_9eb7e2736cecb5c7557bcd2e6c10ba1b.png?x-oss-process=image/resize,w_1400/format,webp)
image.png
到options中启用标记,如下图
![img_449521d1e3f8d9b29e5a5aefc89a5847.png](https://yqfile.alicdn.com/img_449521d1e3f8d9b29e5a5aefc89a5847.png?x-oss-process=image/resize,w_1400/format,webp)
image.png
生成任务规则
$(BuildDefinitionName)$(SourceBranchName)$(Date:yyyyMMdd)$(Rev:.r)
最后,右上角保存并添加到队列中即可。
END
最后的结果就是这样!
![img_0fe401e6b222e5d746185854f1b66687.png](https://yqfile.alicdn.com/img_0fe401e6b222e5d746185854f1b66687.png?x-oss-process=image/resize,w_1400/format,webp)
image.png
GitHub仓库:https://github.com/52ABP/52ABP.School
视频课程
最近我录制的.net core 入门已经发布有兴趣的可以去了解。
https://mp.weixin.qq.com/s/riPvwXpKe5LuPu0hQfXS9A