请选择 进入手机版 | 继续访问电脑版

IT运维管理,ITIL,ITSS,ITSM,ISO20000-ITIL先锋论坛

 找回密码
 微信、QQ、手机号一键注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

搜索
查看: 2439|回复: 0

【52ABP实战教程】-- Devops如何用VSTS持续集成到Github仓库!

[复制链接]
发表于 2018-11-18 15:54:11 | 显示全部楼层 |阅读模式
本帖最后由 adminlily 于 2018-11-18 16:07 编辑 - ~! S0 n$ z/ e4 s" v4 L% O9 M
& V/ [3 T7 b4 T" T
“ 工欲善其事,必先利其器。磨刀不误砍柴工!”
- Z, S- y- U1 g

, M  N, w2 r, e4 S6 l! b
  • 管理工具会VSTS。
    3 B0 r, A( e) H3 D, u

% r4 N4 G* G+ l+ @; j9 y$ g& j
' Z( g0 n" |* b- ^! c
  • 代码管理会用GITHUB。
    3 E$ I3 r8 B3 E( i5 A

* G7 t% A( W* N/ @* ]
: ?9 w0 o  [. ?1 s3 Z
  • 服务器会用Azure。

    # _; }' M& G) `, t: T
    % D+ U! |0 O2 K5 Q8 f0 h
    所有的东西都是利用现有服务。不会说自己从虚拟机开始玩。我们就专注于写代码。

* v5 [' I# D/ j) @
4 }% o; r& V; V3 l/ ]
什么是VSTS?
- X( c' P  D, I
VSTS的全称是Visual Studio Team System。
% z$ l  M, m1 p% W& ~

6 n# H8 D" ~: [% L# S9 i介绍VSTS之前先说下TFS(Team Foundation Server)。
1 z- {, q' I* k5 d4 \

+ [( v4 f# n5 ~- E5 J
TFS是微软推出的一款ALM(Application Lifecycle Management)软件生命周期管理工具。通过它你可以从代码管理->代码版本管理->项目管理->持续集成->自动发布->自动测试等一系列软件生命周期在内的全家桶功能。

6 y$ s  D( n, o1 |6 W, \/ d
4 y: F7 B2 n8 T# k  H; e
VSTS(Visual Studio Team System)是基于SaaS(多租户)化TFS的云产品。

9 D3 P/ B! U9 l& V: \$ b& H, f- s3 W" {/ q
! r6 u  f" g0 E: e# P; q5 D
听了之后是不是感觉很强大。
4 s. u5 V/ D& E) C# ]) Q

; I) }& M% z# D
关于Github! m3 z5 ~6 [1 C- c
1 R0 D& s8 b0 p+ A- w. l

% U; v) R! {. T" t; q) E
Git 是由 Linux 之父 Linus Tovalds 为了更好地管理linux内核开发而创立的分布式版本控制/软件配置管理软件。

7 l) i. z7 I: T. F+ j  c

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

5 H6 ]6 F3 n8 E  p

, t2 j7 ]4 e" n( ~4 v% o
0?wx_fmt=png.jpg
先上一张图
' O! e: J% j* ]/ p- Z& _2 x

" c: `) r: }/ r- b4 i0 h$ r. t! N
图片来自知乎。
6 f1 }) V" S- E) g# ?  f
$ A0 Q% }- V, `  v: p: ~
为什么会有这个需求。
& w1 F! r5 w) X$ F7 ~8 M
3 N' o4 n( z& n4 C# |5 _" r
目前Github作为一个全球最大的码(tong)农(xing)交友社区。也是最大的开源社区,但是它没有自动部署,在导航篇的时候我们说了。我们是一个,通过开源实际项目的方式给大家一个良好的体验。
/ o9 t% n. s4 @$ [5 L
: K% N2 D' V$ z* a: z' F
涉及到的技术也会用微软全家桶的方式来进行开发的。

: n6 Z6 Y7 |: f2 \" o
5 |' x& y1 h% \+ M9 D
恭喜VSTS开通香港节点& g9 V/ V) P, @: h
$ ^. z+ m- H, v! F2 C& n1 r
' L0 y& U4 l1 C% c+ C
没有香港节点也就是东亚区域之前呢,大家只能从 美国中部、加拿大中部、西欧、印度南部、澳大利亚东部、巴西南部这几个节点选择账户所在区域。
1 l" n: b, e9 Y5 q* h+ L$ C( j
& X$ a( a* {6 ^4 v( B' y. }9 Z: S
这些节点都有一个特点,对我们国家不怎么友好。按照 Julia 的说法,我们国家强大的防火墙。恩恩。

8 X- b! Z& L  f  k  K

9 r& f' q* i' d5 G( K2 v$ u# Y在11月2日的微软科技大会上,微软研发部门的全球副总裁潘正磊女士宣布了微软研发云VSTS将于2017年底前落地中国香港。然后在10号的时候VSTS的老大布雷恩就宣布开通了VSTS在香港的节点。
% p4 ~0 r) m7 {7 O( ]5 x- m

( H1 |4 N- S8 s* u3 {$ e这意味在大陆使用微软全家桶的速度, 蹭蹭噌的加速了。
4 ^. [0 d( i) w4 M& K- E

- }8 _4 H) c6 R: Z
好了,闲话少叙。开始干吧!
) E1 {; ~' W2 o' V

5 f& @% }/ m* {5 n- `
注册VSTS
, X4 G% ?% G/ v3 j0 p5 a
& r' U! @; _9 A/ S
首先你要有一个微软邮箱,没有自己去注册。

4 v5 |$ [$ d- Q6 H' G9 E4 r5 L

' l, Z# A- n. I2 l' m: z然后打开https://app.vsaex.visualstudio.com/me?mkt=zh-CN 新建账户。
2 g: S" z0 {9 c: o
2 u# J4 ]" d, f
. }8 w1 I+ O; }9 ]. ^
0?wx_fmt=png.jpg
image.png
1 u8 ~- K/ _2 @6 l9 s) v1 l7 J% c  d

& j, n6 I$ U0 y1 n/ T% u# X7 c7 S5 m# |
这里的所在地一定要选择东亚,因为其他地区的速度慢。

6 f/ f+ N5 G; j! D6 Z
- p+ H1 m9 S8 k( @3 m7 m5 J" h* H' l# w
正文
8 g" g5 y3 A1 n9 P: b/ X( l2 x; z; b5 Y  V
我们现在开始做一些正经事。
/ w$ ?4 d& B) y: H( K& s

: I5 }% o) w' J6 P
  • 首先创建一个新项目

    5 {: R- _2 W( B0 n
    0?wx_fmt=png.jpg
    image.png

    7 p, E" p- U! ?: B: T1 v1 ]9 L

3 n1 m+ j2 C/ g
  • 创建完毕后,进入项目。

    & ?8 A) U8 A5 c9 B2 o! ^
    0?wx_fmt=png.jpg
    image.png

    5 K; Q7 E; z) V; T

  Z" h1 t" e- H9 i0 F* p
1 w' U9 p2 y( k
  • 在Build And Release 菜单栏下的Builds中,选择新建一个“Empty process” 。9 g; S% y! V# g% }/ a- {0 Q
    你可以给这个任务创建一个名字,然后这里有几个队列,我们选择"Hoste vs2017"的队列

    ; C  @; o4 K# P. L# h/ f0 c2 j
    0?wx_fmt=png.jpg
    image.png
    5 N# r. |5 e, h7 a
2 x, j2 ]7 A: L5 d0 t2 J

+ Z/ @6 `2 e& u. B- s: N
  • 然后选择“Get Sources” ,选择github。
    2 B  N$ T# g$ ?
    0?wx_fmt=png.jpg
    image.png
    - `3 ]# Q' x+ b1 N' G9 J$ [
    这里需要你的github账户授权,这里你可以选择用网页授权还是用个人密钥授权。
    1 S! o# E: e: u, S8 z7 Y我们采用Authorize using OAuth,然后这里请注意,弹窗很容易被拦截。) H2 |) k3 ]' Z5 [/ Y
    这里你要允许弹出。

    5 \( Y! k7 h; z8 g( g
    0?wx_fmt=png.jpg
    image.png
    9 z3 ^; @: N. e3 V  Y: E1 _  `6 Q
    授权成功后,可以看到你github中仓库的信息。3 f( D) {* g. K  Y. }5 i/ T
    0?wx_fmt=png.jpg
    image.png

    ! ~3 f" _! K9 Y$ Q# \8 P

& f) W  [8 N  N& R

* X3 B' \5 B6 f) l  j+ J
  • 然后选择菜单栏上的“Triggers”触发器按钮。打开触发器,

    . k& x4 M5 A( {+ s2 K* N% k4 C5 k5 z
    0?wx_fmt=png.jpg
    image.png

    2 v2 |8 \8 P6 ^; N) z! z; g
4 K. h% K  J. d2 q
  • 选择Options配置下信息。
    # _* A% M1 n- r' s  m  r( V- l
    0?wx_fmt=png.jpg
    image.png
    & {% K. @8 _* O. x4 S
    最后,右上角“Save& queue”保存。
    ) V* r! H% }' K9 e: i
    0?wx_fmt=png.jpg
    保存信息

    % m  v0 o  y: g# a8 ^( T
1 |2 |+ W0 t; V: o
, I4 X  f9 E# u, l
  • Build number format 是指创建生成的生成码。你可以试试。
    * `( x) ~/ z( @" A" X
# E5 ~8 v# |7 d4 K) ]# C& i
至此整个功能配置已经完毕了。

8 w3 v( ~% O  ^' ]( A( u

- s- p: {9 Y7 z# `
使用VSTS给github的README 文件创建构建状态
" @. N; Q8 y" m' r
5 L( l8 p; \- k* _9 x
. P7 }' f/ X% W- q5 s0 Q" }
构建完毕了,我们来看看怎么让逼格显得稍微高大上点。打开我们的github项目。6 f# x/ n% q( R9 @3 |. K$ ^0 H

' W1 `. A7 _& _% ~8 V' Z( r) R2 s. v
! w! O! O/ |( ^1 Y
0?wx_fmt=png.jpg
image.png

$ E: ?. l8 M) I/ g, M' O
以上效果图!!!

# b6 x; F) n+ z7 m: I* E! i" Y
; C4 Y& l+ }: ]. b, ?! C8 @
链接地址:https://github.com/ltm0203/aspnetcore

+ a5 Y- f8 _$ l; k- T

% r, G0 B& r5 Y+ }9 c; Y# F$ \( {+ e
我们在VSTS中为项目创建一个自定义的通知消息,方法是利用VSTS的构建生成的URL,利用markdown的语法来完成。
1 n3 V* r4 [& a4 z4 f; l9 p
$ C5 y1 z: m4 Q  w3 u
  • 首先在打开你的github,导航到你所在的仓库,这里我们使用的是aspnetcore项目中。

    ( y% J' o" K- G! D. I

, y) I6 j! Y1 A4 x' I
8 A- g8 f+ ^/ \% _
  • 创建一个README.md的文件。
    " a1 v9 x' z8 ~

8 }' F/ [& A( O! B

- ?$ d! Y6 F- u( v/ G
  • 然后将vsts中生成的徽章标记链接,粘贴到README.md文件中即可。* F1 ?, o4 V" A+ ~) v1 U# ^
    代码段:

    ( |3 Q# I4 H# g* l$ T& y

, [7 f7 ~7 |# `* d/ R3 I* p[<img src="https://ltm0203.visualstudio.com/_apis/public/build/definitions/06667c49-f49d-4e3b-8eda-1ee96b1914c7/1/badge">](https://51abp.visualstudio.com/_ ... 48d80437520/1/badge)8 X3 z$ s' t# P7 `  @
8 J) Q2 V  u: \* P. ~# [( @

) h1 f9 N! b" M2 ~( P3 z  T
vsts中生成的徽章URL:

7 b9 ~( M4 f# M
6 j( W" i. j$ L& Y+ Y
0?wx_fmt=png.jpg
徽章URL.png

9 [1 R8 r. d0 T

0 n/ o' i; J& y3 ^5 z  Y1 I
  • 在github项目中的"Setting"中,打开webhooks,可以看到你绑定的webhook。每次对GitHub仓库的提交都会触发VSTS中的构建。

    ! |4 D* w5 x+ o/ }, m3 W
- f8 C( ~; t# P6 W- |/ t5 Y
  • 我们返回到vsts中,打开build。可以看到我们创建的队列。

    ! ^0 A+ B1 |* \, \1 a( P
    0?wx_fmt=png.jpg
    image.png
    3 t0 s/ C# y- D) R) ^
    这里可以看到更加详细的统计信息,你编译的次数,状态,每次提交的信息等等。

    : {1 e& a3 v0 [$ j# u& r6 |

9 f% l" s6 \7 A0 H
9 \# A* Q  B9 D1 z
实际开发呢?
  c3 m% P. D+ o( D  i- G: M5 D' Q# T1 A( }9 |% a
. u2 s; S8 y: w5 F  F
在实际开发的项目中,我们更多的时候,是一个几个功能写好了才提交一次,而当前的情况每个文件发生变化就编译一次,这稍微有点不合理。我们通过对队列任务这里你可以随意取一个名字的进行修改,让项目编译更加的合理。修改为每提交一次才编译。

6 g4 [, @: j/ \( ?! ^+ O
, }  A0 T3 a+ \1 V6 |: ?$ X
  • 打开VSTS,点击“Build & Release”,再点击“Builds”,找到任务名称“这里你可以随意取一个名字”,然后点击“Edit”按钮。

    9 e, g% {8 D3 x. Z0 Y& {8 B
1 e$ p$ d, U8 u' y* u
  • 点击‘Trigger’.修改起来也很简单。。
    : h! V  H6 b. X' a0 C9 G
    0?wx_fmt=png.jpg
    看这里.png

    * f7 ]% a7 I4 h  d. B
    修改为如图所示即可。
    # X1 N  F* G2 Y6 ^& \8 C. r2 t

& Z$ [0 K7 w* l
5 c* {, _: h# ^0 i$ p% j$ X
  • 然后点击Save & queue,再点击Save。
    / e. q% k% h, P, |8 m" P

4 t: d( Q' ]+ q  k总结2 a2 I) B, M1 D8 |; J
4 e, D3 R+ @$ Q6 e; r
以上就是利用Vsts自动编译构建项目的完成,然后在github项目中看到项目的构建状态!
- [% h! {* f. U) b/ y& i0 y
. X$ a/ p( M8 f! p& q& a
核心是为了解决帮助大家在开发过程进行的日常编译问题。自动化构建。
6 o$ S' B6 [# _: m
; l; I  W0 R) c% S$ n/ k! G) R+ J
VSTS的整体功能肯定不止这么一点,在后面的日子内,我会带着大家慢慢玩!

: X1 y( r: b7 L+ e. c( T" X; [

: f2 ?1 P; o, ^0 G
原创:梁桐铭
0 \, B  y) P" {* F2 y9 O8 d2 A
" _8 H5 y  ~2 Z

# J3 Y; P8 c' D& j" I  S4 u

本版积分规则

QQ|小黑屋|手机版|Archiver|艾拓先锋网 ( 粤ICP备11099876号-1 )|网站地图

Baidu

GMT+8, 2019-9-23 06:56 , Processed in 0.148184 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表