工欲善其事,必先利其器。在开始正式的教程之前我们先来聊聊准备工作。
  • 管理工具会VSTS。
  • 代码管理会用GITHUB。
  • 服务器会用Azure。

    所有的东西都是利用现有服务。不会说自己从虚拟机开始玩。我们就专注于写代码。

什么是VSTS?

VSTS的全称是Visual Studio Team Services。

介绍VSTS之前先说下TFS(Team Foundation Server)。TFS是微软推出的一款ALM(Application Lifecycle Management)软件生命周期管理工具。通过它你可以从代码管理->代码版本管理->项目管理->持续集成->自动发布->自动测试等一系列软件生命周期在内的全家桶功能。

而VSTS(Visual Studio Team System)是基于SaaS(多租户)化TFS的云产品。

听了之后是不是感觉很强大。

关于Github

Git 是由 Linux 之父 Linus Tovalds 为了更好地管理linux内核开发而创立的分布式版本控制/软件配置管理软件。

GitHub是一个通过Git进行版本控制的软件源代码托管服务,由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath、PJ Hyett和Tom Preston-Werner使用Ruby on Rails编写而成。



图片来自知乎。

为什么会有这个需求。

目前Github作为一个全球最大的码(tong)农(xing)交友社区。也是最大的开源社区,但是它没有自动部署,在导航篇的时候我们说了。我们是一个,通过开源实际项目的方式给大家一个良好的体验。

涉及到的技术也会用微软全家桶的方式来进行开发的。

恭喜VSTS开通香港节点

没有香港节点也就是东亚区域之前呢,大家只能从 美国中部加拿大中部西欧印度南部澳大利亚东部巴西南部这几个节点选择账户所在区域。

这些节点都有一个特点,对我们国家不怎么友好。按照 Julia 的说法,我们国家强大的防火墙。恩恩。

在11月2日的微软科技大会上,微软研发部门的全球副总裁潘正磊女士宣布了微软研发云VSTS将于2017年底前落地中国香港。然后在10号的时候VSTS的老大布雷恩就宣布开通了VSTS在香港的节点。

这意味在大陆使用微软全家桶的速度, 蹭蹭噌的加速了。

好了,闲话少叙。开始干吧!

注册VSTS

首先你要有一个微软邮箱,没有自己去注册。

然后打开https://app.vsaex.visualstudio.com/me?mkt=zh-CN 新建账户。

这里的所在地一定要选择东亚,因为其他地区的速度慢。

正文

我们现在开始做一些正经事。

  • 首先创建一个新项目

  • 创建完毕后,进入项目。

  • 在Build And Release 菜单栏下的Builds中,选择新建一个“Empty process” 。

    你可以给这个任务创建一个名字,然后这里有几个队列,我们选择"Hoste vs2017"的队列

  • 然后选择“Get Sources” ,选择github。



    这里需要你的github账户授权,这里你可以选择用网页授权还是用个人密钥授权。

    我们采用Authorize using OAuth,然后这里请注意,弹窗很容易被拦截。

    这里你要允许弹出。



    授权成功后,可以看到你github中仓库的信息。

  • 然后选择菜单栏上的“Triggers”触发器按钮。打开触发器,

  • 选择Options配置下信息。

    Build number format 是指创建生成的生成码。你可以试试。



    最后,右上角“Save& queue”保存。

至此整个功能配置已经完毕了。

使用VSTS给github的README 文件创建构建状态

构建完毕了,我们来看看怎么让逼格显得稍微高大上点。打开我们的github项目。



以上是效果图!!!

链接地址:https://github.com/ltm0203/aspnetcore

我们在VSTS中为项目创建一个自定义的通知消息,方法是利用VSTS的构建生成的URL,利用markdown的语法来完成。

  • 首先在打开你的github,导航到你所在的仓库,这里我们使用的是aspnetcore项目中。
  • 创建一个README.md的文件。

    然后将vsts中生成的徽章标记链接,粘贴到README.md文件中即可。

    代码段:
[<img src="https://ltm0203.visualstudio.com/_apis/public/build/definitions/06667c49-f49d-4e3b-8eda-1ee96b1914c7/1/badge">](https://51abp.visualstudio.com/_apis/public/build/definitions/d985e2b0-acd1-4556-bcb9-148d80437520/1/badge)

vsts中生成的徽章URL:

  • 在github项目中的"Setting"中,打开webhooks,可以看到你绑定的webhook。每次对GitHub仓库的提交都会触发VSTS中的构建。
  • 我们返回到vsts中,打开build。可以看到我们创建的队列。



    这里可以看到更加详细的统计信息,你编译的次数,状态,每次提交的信息等等。

实际开发呢?

在实际开发的项目中,我们更多的时候,是一个几个功能写好了才提交一次,而当前的情况每个文件发生变化就编译一次,这稍微有点不合理。我们通过对队列任务这里你可以随意取一个名字的进行修改,让项目编译更加的合理。修改为每提交一次才编译。

  • 打开VSTS,点击“Build & Release”,再点击“Builds”,找到任务名称“这里你可以随意取一个名字”,然后点击“Edit”按钮。

  • 点击‘Trigger’.修改起来也很简单。。



    修改为如图所示即可。

  • 然后点击Save & queue,再点击Save。

    总结

以上就是利用Vsts自动编译构建项目的完成,然后在github项目中看到项目的构建状态!

核心是为了解决帮助大家在开发过程进行的日常编译问题。自动化构建。

VSTS的整体功能肯定不止这么一点,在后面的日子内,我会带着大家慢慢玩!

请扫描此二维码关注公众帐号,你将会得到及时的文章推送信息。

【52ABP实战教程】0.1-- Devops如何用VSTS持续集成到Github仓库!的更多相关文章

  1. 【52ABP实战教程】0.3-- 从github推送代码回vsts实现双向同步

    需求 在之前的文章中"[DevOps]如何用VSTS持续集成到Github仓库" 我们有讲述如何将vsts中的代码编译推送到github中,这一篇我们来完善,如果有人给你开源项目推 ...

  2. Python接口测试实战5(上) - Git及Jenkins持续集成

    如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...

  3. 【52ABP实战教程】00-- ASP.NET CORE系列介绍

    为什么是.net core? 记得在半年前.NET CORE刚刚出了1.0,当时有朋友推荐我使用的时候,个人觉得还不成熟. 现在.NET Core已经到了2.0,.NET Standard 2.0 添 ...

  4. 2019 DevOps 必备面试题——持续集成篇

    原文地址:https://medium.com/edureka/devops-interview-questions-e91a4e6ecbf3 原文作者:Saurabh Kulshrestha 翻译君 ...

  5. 【OF框架】在Azure DevOps中配置项目持续集成CI服务,推送镜像到Azure容器注册表

    准备工作 开通Azure账号,具有开通服务权限,关键是里面要有钱. 开通Azure DevOps,能够创建组织和项目. 具备一定的DevOps知识,了解CICD概念.Docker基本操作. 一.创建& ...

  6. 【52ABP实战教程】0.2-- VSTS中的账号迁移到东亚

    需求从哪里来! VSTS的全称是Visual Studio Team Services. 在上一篇的文章中已经给大家说了VSTS之前是没有香港节点.大家的访问速度回比较慢.但是11月10号微软就宣布开 ...

  7. mybatis实战教程(mybatis in action)之五:与spring3集成

    在这一系列文章中,前面讲到纯粹用mybatis 连接数据库,然后 进行增删改查,以及多表联合查询的的例子,但实际项目中,通常会用 spring 这个沾合剂来管理 datasource 等.充分利用sp ...

  8. DevOps安装、部署持续集成

    1.重启docker服务,开启iptables转发功能 # systemctl start docker # vi /etc/sysctl.conf # sysctl -p [root@localho ...

  9. Docker + Jenkins + Gitlab + Pytest + Allure 接口自动化测试之持续集成实战终极教程

    实战教程篇 前言 这边就不教大家怎么用 pytest 写项目了哦,下面有系列文章能帮助你快速入门 Pytest + Allure 这一篇教程主要是教如何从 0 到 1 搭建自动化测试的持续集成环境 后 ...

随机推荐

  1. PDF加密无法做笔记

    尝试打印PDF,若无法打印,可以利用PDFescape(http://www.pdfescape.com/) PDFescape是一个可以在线修改.做笔记的网站,但是在线使用有上传PDF大小限制(小于 ...

  2. 使用Intellij IDEA生成JavaDoc

    以下是常用的注释标签,规范书写生成的文档中才能显示: @author 作者 @version 版本 @see 参考转向 @param 参数说明 @return 返回值说明 @exception 异常说 ...

  3. 缺少libssl.so.4文件

    1.报错代码: /usr/local/pureftpd/sbin/pure-ftpd: error while loading shared libraries: libssl.so.4: wrong ...

  4. zabbix的各种键值

    zabbix服务器端通过与zabbix agent通信来获取客户端服务器的数据,agent分为两个版本,在配置主机我们可以看到一个是agent,另一个是agent(active). agent:zab ...

  5. RabbitMQ 通信过程

    Rabbit MQ的通信过程 MQ全称为Message Queue, 是一种分布式应用程序的的通信方法,是消费-生产者模型的典型的代表,producer往消息队列中不断写入消息,而另一端consume ...

  6. 【ASP.NET Core】如何隐藏响应头中的 “Kestrel”

    全宇宙人民都知道,ASP.NET Core 应用是不依赖服务器组件的,因此它可以独立运行,一般是使用支持跨平台的 Kestrel 服务器(当然,在 Windows 上还可以考虑用 HttpSys,但要 ...

  7. jquery datatable ajax配置详解

    我写的这个东西类似于个人笔记,如果你想要完整的而了解 可以去这里看看 http://dt.thxopen.com/ 包括英文原网站都不错. 通过配置ajax的属性和服务器交互 $("sele ...

  8. Java基础学习笔记五 Java基础语法之面向对象

    面向对象 理解什么是面向过程.面向对象 面向过程与面向对象都是我们编程中,编写程序的一种思维方式.面向过程的程序设计方式,是遇到一件事时,思考“我该怎么做”,然后一步步实现的过程.例如:公司打扫卫生( ...

  9. 『练手』通过注册表 获取 VS 和 SQLServer 文件路径

    获取任意 VS 和 SQLServer 的 磁盘安装目录. 背景需求:如果磁盘电脑安装了 VS 或者 SQLServer 则 认定这台计算机 的使用者 是一名 软件研发人员,则让程序 以最高权限运行. ...

  10. 听翁恺老师mooc笔记(13)--类型定义和联合

    typedef 虽然我们知道使用struct这个关键字定义一个结构类型,然后可以使用该结构类型定义变量.但是每次要使用的时候都需要带着struct这个关键字,那么如何摆脱这个关键字哪?C语言提供了一个 ...