Azure DevOps代码同步到Github
半野

1.前言

VS自带的源码管理工具可以很方便的连接到Azure DevOps(即原来的VSTS),相比于Github,Azure DevOps功能更加强大,能够对项目进行编译、测试、发布等。因此我们可以使用Azure DevOps对自己GitHub上的项目做持续集成,并利用Github来开源自己的代码。 本文主要介绍实现Azure DevOps与Github代码同步的过程,文中所使用的项目以我的开源项目CoreSpatial为例。

2.新建项目

首先,需要在Azure DevOps新建一个项目,项目名同样为CoreSpatial。

image

图 1

因为这个项目已经在Github上存在了,因此,我们需要将这个项目导入到Azure DevOps。进入项目后,点击左侧“Repos”,然后在上方菜单处点击代码仓库切换按钮,可以看到“Import repository”选项(如图2),点击此选项,然后填写Github上仓库的代码位置,即可将代码导入到Azure DevOps中。 注意,在导入时,Name不能与现在的代码仓库同名,例如现在已经有一个“CoreSpatial”的仓库了,这个Name就不能再为CoreSpatial了。我们可以在导入代码后,将通过仓库切换按钮下来菜单中的“Manage repositories”(如图2)将原来的默认仓库删除,并将新导入的仓库名改为“CoreSpatial”。

image

图 2

imageimage

图 3

3.创建Pipeline

3.1.新建Pipeline

点击Pipelines,然后创建Pipeline,此时,选择使用classic editor(如图4所示)。

接着选择代码仓库(如图5),在选择Pipeline模板时,选择使用空的job(如图6所示)。

image

图 4

image

图 5

image

图 6

3.2.添加任务步骤

接着,我们再Pipeline添加“命令行工具”(位于Utility下,如图7(1)),然后选中刚添加的任务步骤,并在右侧的面板中填写“Display Name”和“Script”选项(如图8)。Display Name仅是一个用于显示这个步骤的名称,可以随便填写,Script中则填写相关的git操作脚本(如图7(2))。

为了避免直接修改Github上的代码仓库,导致push时的合并冲突,先选择从Github上拉取下代码,然后在推送。因此,这个命令行工具主要用于pull代码,然后还需要再添加一个命令行工具,这个工具用于push代码到Github上。添加步骤与上相同,主要是在填写Script时有所不同。

image

(1)

image

(2)

图 7

要想操作Github上的代码,必须要有相关的授权权限才可,否则直接push肯定是会被拒绝的,因此,需要先到Github上申请一个“Personal access token”,位置位于“Settings/Developer settings”下。需要注意的是,这个token仅在创建时会显示一次,以后均不在显示,也无法查询。

获取到“Person access token”后,回到Azure DevOps中,在Pipeline上方选择“Variables”标签,然后添加一个新的变量githubToken,value为上述申请得到的Github的“Person access token”。此时,将要操作的Github的仓库地址改为:“https://$(githubToken)@github.com/zxyao145/CoreSpatial.git”,即可对远程仓库进行push操作(如图8所示)。

image

图 8

3.3.设置触发器

为了使得每次向Azure DevOps上推送代码时,Azure DevOps能够自动向Github上同步,需要为Pipeline添加触发器,开启持续集成选项。

选择上方选项卡中的Triggers,然后在右侧选中“Enable continuous integration”选项,此时我们还可以在下方对持续集成的分支进行筛选(如图9所示)。

image

图 9

至此,同步工作已经完成。当然,还可以在这个管道中添加build等其他步骤。

由 Hexo 驱动 & 主题 Keep
总字数 105.7k 访客数 访问量