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

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

 找回密码
 立即注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

查看: 6775|回复: 0

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

[复制链接]
发表于 2018-11-18 15:54:11 | 显示全部楼层 |阅读模式
本帖最后由 adminlily 于 2018-11-18 16:07 编辑 1 [3 }9 O: \' h8 L

" C* x5 m, I( V
“ 工欲善其事,必先利其器。磨刀不误砍柴工!”
; |0 @! X* I2 _

# |" U" {+ M  Q0 n
  • 管理工具会VSTS。

    ! X7 ^1 ^& U0 ~  d

/ ?, c& l7 @: ^+ `
  t8 D( d, t+ k; B  j
  • 代码管理会用GITHUB。
      a  m6 S0 K: F  S- |8 }6 D% l

, _' s2 @7 C7 z' H' A, a0 b! h0 i

" ?2 D. W- j: F2 @4 m# x
  • 服务器会用Azure。

    & U9 T: d' o( Q* R2 z
    $ x8 I( c1 c  N3 V
    所有的东西都是利用现有服务。不会说自己从虚拟机开始玩。我们就专注于写代码。
6 B2 p5 i3 D: y" V& ~8 L

& A. W) r; J5 ?9 m
什么是VSTS?
: P) a7 `$ G# U2 L% ~+ [; n1 {) n
VSTS的全称是Visual Studio Team System。

* G1 b# S8 N& h3 l( U
% O& [) F* T2 H" p$ X" S! z
介绍VSTS之前先说下TFS(Team Foundation Server)。

* `  s: `" ^/ Z" N1 P

/ p% K) U! m2 I$ U( D  r- _
TFS是微软推出的一款ALM(Application Lifecycle Management)软件生命周期管理工具。通过它你可以从代码管理->代码版本管理->项目管理->持续集成->自动发布->自动测试等一系列软件生命周期在内的全家桶功能。
% o5 {3 T6 v. O: C
. Y& @3 h  ]/ U7 B
VSTS(Visual Studio Team System)是基于SaaS(多租户)化TFS的云产品。
* |+ r' b/ z. E
& I* w6 Q$ m& W
听了之后是不是感觉很强大。
3 h, a) A+ C4 D: G3 Y7 O

  |3 P) u' x2 K
关于Github/ |  [: O0 ^- }# g3 i2 [5 c

7 Q, A: d& G: w: n3 E" g5 O; u) K" ~, ]7 P8 o! j+ O" s( q( c  [0 I
Git 是由 Linux 之父 Linus Tovalds 为了更好地管理linux内核开发而创立的分布式版本控制/软件配置管理软件。

- F2 O0 Y/ r* N2 ?
# r, e5 k5 i, ~; {7 W& k( h
GitHub是一个通过Git进行版本控制的软件源代码托管服务,由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath、PJ Hyett和Tom Preston-Werner使用Ruby on Rails编写而成。
+ i  Z( J0 J0 Z6 ^: o( M
8 _- w  H2 v. W5 C0 C* _, ~
0?wx_fmt=png.jpg
先上一张图

0 C% e% [6 }  v) S$ Q* f

0 I; Q; ]2 g  d0 ?+ I
图片来自知乎。

1 ]2 x  Q' s% B
6 }" i9 y4 w) R, U
为什么会有这个需求。
# u2 [6 d6 n5 t: [4 y7 j' r& }6 ]/ C, q7 a" O
目前Github作为一个全球最大的码(tong)农(xing)交友社区。也是最大的开源社区,但是它没有自动部署,在导航篇的时候我们说了。我们是一个,通过开源实际项目的方式给大家一个良好的体验。

# Z6 M) J, o8 W+ E& i# h# W
+ ?) E" [0 l. O% `  N' r5 _+ J
涉及到的技术也会用微软全家桶的方式来进行开发的。

7 @6 X: q' m4 C4 ^" S" N  H

/ I- y1 J. X& X' Y) B* v
恭喜VSTS开通香港节点
' B1 B/ Q- r( C8 b' T9 B- ]8 K6 c( x: J$ n" v9 z

0 `$ ~% V" ?) ~6 b+ I( `
没有香港节点也就是东亚区域之前呢,大家只能从 美国中部、加拿大中部、西欧、印度南部、澳大利亚东部、巴西南部这几个节点选择账户所在区域。
0 y3 K/ P. \2 A# L, X
& N: T' h( _" [' s* {$ M
这些节点都有一个特点,对我们国家不怎么友好。按照 Julia 的说法,我们国家强大的防火墙。恩恩。

. A. V4 D2 C: \- G/ O9 O) c; l% D

( {4 F# r5 f2 C  M& Z: _- n% [, A在11月2日的微软科技大会上,微软研发部门的全球副总裁潘正磊女士宣布了微软研发云VSTS将于2017年底前落地中国香港。然后在10号的时候VSTS的老大布雷恩就宣布开通了VSTS在香港的节点。

9 W* D& p( [" c+ j4 t- k

* G5 M; [/ ?7 g" s这意味在大陆使用微软全家桶的速度, 蹭蹭噌的加速了。

3 m6 g" _; Q; C; o8 ]) n
7 U4 D( Z: A, P; n; X# L
好了,闲话少叙。开始干吧!

4 U& O! L9 M: O& @3 K
  ~9 m5 j' i5 e- B+ m& k
注册VSTS
: m7 m6 C$ I! K1 M
! z& I0 g1 K) d
首先你要有一个微软邮箱,没有自己去注册。
8 _9 d+ |4 T  P. h/ Y* l

7 f/ Q8 C6 d6 O6 t然后打开https://app.vsaex.visualstudio.com/me?mkt=zh-CN 新建账户。
* H5 [+ h( B8 Y& \" v$ l

) m  {$ B* b+ W& n& z/ N

+ b6 ?. S; }6 C) S' g& G
0?wx_fmt=png.jpg
image.png
7 P" _0 N$ A; k9 l

- t( Q9 z5 k# n$ g- A/ ~
这里的所在地一定要选择东亚,因为其他地区的速度慢。
* w" z# {0 |2 J+ p+ e
* S3 r* r$ n# t" ~
正文. ?$ z. v. c0 M6 s) W3 ]$ w

" Z  T" Q6 }- Z$ Z8 H/ [. k
我们现在开始做一些正经事。
9 @* F& p! ]8 v# U# D/ p/ d* K
2 {2 w8 S( z' }5 X8 m3 e' q- q
  • 首先创建一个新项目
    2 E( t! y- U' e+ p
    0?wx_fmt=png.jpg
    image.png
    3 b5 a2 _; P9 \9 \3 ~, k( o

& k( H: x  m: c6 y8 P5 C7 i' m6 x
  • 创建完毕后,进入项目。
    " @' j. c) e1 Z5 x$ K" C3 ^, w. X1 \
    0?wx_fmt=png.jpg
    image.png

    - n7 }& \8 j* A' @+ k5 c
" d9 ?) Q& r- z5 l

0 e5 A# S- [' s5 ?: f; L( P- a
  • 在Build And Release 菜单栏下的Builds中,选择新建一个“Empty process” 。
    * D' y0 O  f0 w8 B2 x* U: X你可以给这个任务创建一个名字,然后这里有几个队列,我们选择"Hoste vs2017"的队列

    ! G6 y: H9 y9 l! C4 u# Q
    0?wx_fmt=png.jpg
    image.png

    ; d! |  U4 L! Y  a5 l- _
4 ?$ [* ]! e6 U7 J6 F
5 o$ Z# Q1 d. T$ f
  • 然后选择“Get Sources” ,选择github。
    6 v- o: r+ S6 n6 t& I6 ]0 n
    0?wx_fmt=png.jpg
    image.png

    * k( j4 p3 w; R, D; N' \
    这里需要你的github账户授权,这里你可以选择用网页授权还是用个人密钥授权。
    ; C4 m9 c; i* t) c; P6 b6 W我们采用Authorize using OAuth,然后这里请注意,弹窗很容易被拦截。0 g% ^6 J1 g( V
    这里你要允许弹出。

    # I1 m1 Y! b# r9 x; f
    0?wx_fmt=png.jpg
    image.png

    1 r* W& A$ l% Q: v* J" w授权成功后,可以看到你github中仓库的信息。3 g( U" V. d; i- [) P4 [
    0?wx_fmt=png.jpg
    image.png

    3 c: k. J! [  `; [; y4 I! j
: n- D7 ?3 u: e9 ]

( Y3 X& G& E* h+ J1 z" D
  • 然后选择菜单栏上的“Triggers”触发器按钮。打开触发器,

      m/ y2 p% @! G; o6 i. E' b! i
    0?wx_fmt=png.jpg
    image.png

    % }+ T9 c; f& H" O
( U; M: W; c0 h; F0 t# ^: E, Y
  • 选择Options配置下信息。
    / v+ p  H! q$ c2 [  H- n
    0?wx_fmt=png.jpg
    image.png
    ; j9 K" Z5 L) u" ]* _
    最后,右上角“Save& queue”保存。

    2 _7 y# w$ ?) W
    0?wx_fmt=png.jpg
    保存信息
    " W1 m: X) e' w! v

6 g( j; F; W8 B& V% f4 H
- E9 ?/ o7 ^, K
  • Build number format 是指创建生成的生成码。你可以试试。
    5 J) i& F+ O& t
3 B' q" w4 s2 h. X$ n# e
至此整个功能配置已经完毕了。
$ K% c) U# `  ~+ |7 D  ~: ~
0 l# P5 B& X- D; C4 X- J3 [
使用VSTS给github的README 文件创建构建状态1 b! q' s: Y9 {+ }, s' {2 |& x6 w
, s" P9 k. Z8 G+ f3 G" |3 A

: g) \( J% N9 O& x
构建完毕了,我们来看看怎么让逼格显得稍微高大上点。打开我们的github项目。
! G1 f6 T( n$ v) o6 q2 C+ A$ V

4 M' E' m; u7 z/ Y* s0 X8 H
9 z4 i$ p# x' C/ n
0?wx_fmt=png.jpg
image.png
% f$ ^. A# _: K; o- @0 H( h! k
以上效果图!!!
; H" j, K: D/ \2 S& U

8 q8 W7 C9 {. p2 d) C3 J/ N6 \链接地址:https://github.com/ltm0203/aspnetcore

9 K1 K& Y' k+ Y- l! O

$ `+ Y; I2 S; j8 v% i4 F
我们在VSTS中为项目创建一个自定义的通知消息,方法是利用VSTS的构建生成的URL,利用markdown的语法来完成。

9 j) P+ ~" b  y# \! \6 Z

/ Z7 z' s& y- V, u# ?% B* l* \. J
  • 首先在打开你的github,导航到你所在的仓库,这里我们使用的是aspnetcore项目中。
    ) g! T* ~+ V2 |1 i

. e& ], Q1 }' o- F

( J& N# {- \9 T/ J# ^$ B' ~* F! Q
  • 创建一个README.md的文件。

    : t) c+ r  p3 l+ N
9 q& A- X' S1 _# F8 m+ O; {2 r: I
& H+ J5 v: M. Y3 `5 i; j: Y* E
  • 然后将vsts中生成的徽章标记链接,粘贴到README.md文件中即可。
    . z+ s1 _+ w3 w( T% d# a' U' E代码段:
    - M2 I" k. R$ P1 M) M: `

9 e0 i5 k: n! W: j: `7 \[<img src="https://ltm0203.visualstudio.com/_apis/public/build/definitions/06667c49-f49d-4e3b-8eda-1ee96b1914c7/1/badge">](https://51abp.visualstudio.com/_ ... 48d80437520/1/badge)
) E; S" U0 F* ?. W0 n, ]( R
7 |8 U/ v5 H8 f7 O& K0 O7 w2 X% k
0 T  k8 [% w* d
vsts中生成的徽章URL:

! L1 k; O: O4 T) ^
- E  v: K7 C7 F0 F1 Q; W, `2 i, Z
0?wx_fmt=png.jpg
徽章URL.png
# K# m/ x: a. S

" K3 ~" G- J; N; P! V0 v4 o
  • 在github项目中的"Setting"中,打开webhooks,可以看到你绑定的webhook。每次对GitHub仓库的提交都会触发VSTS中的构建。

    3 s8 a3 p2 ~! A* I8 K

8 `5 k" o/ o, N
  • 我们返回到vsts中,打开build。可以看到我们创建的队列。
      }3 {% F# Z0 U, H8 Q- U9 j
    0?wx_fmt=png.jpg
    image.png

    , f# ]+ ], H; H# @2 e# i8 |
    这里可以看到更加详细的统计信息,你编译的次数,状态,每次提交的信息等等。
    ! u, X( s$ k' k9 r# G# v
3 l1 Z+ M& ~3 e  ]- x2 q( D% e
$ |" ?! k2 @1 Y& w& w
实际开发呢?  m$ f3 v8 \7 ?7 k

3 ]+ c$ C! W' y3 i7 ]3 P" \4 A6 a3 a
在实际开发的项目中,我们更多的时候,是一个几个功能写好了才提交一次,而当前的情况每个文件发生变化就编译一次,这稍微有点不合理。我们通过对队列任务这里你可以随意取一个名字的进行修改,让项目编译更加的合理。修改为每提交一次才编译。
- w1 l* p. j: M# t& Z& u
8 J% S! Y% z0 \/ R6 S1 t8 f" \
  • 打开VSTS,点击“Build & Release”,再点击“Builds”,找到任务名称“这里你可以随意取一个名字”,然后点击“Edit”按钮。

    7 U+ ?0 k) c9 s5 A
! r8 r2 ?+ ?; U! v) ]9 B
  • 点击‘Trigger’.修改起来也很简单。。

    ( y- s: A2 C" E
    0?wx_fmt=png.jpg
    看这里.png

    2 i- d; T# v5 k) u- M# {& e
    修改为如图所示即可。

    5 j  Q, W1 |; T* L6 L1 V

5 m* v  w% k" Y8 @& x2 |. i6 s

1 N$ @! U, x7 Z4 x2 U* h3 Y
  • 然后点击Save & queue,再点击Save。

    8 L# Y# o' l! t& H* k  v+ A

6 h8 |( [- u$ U8 Y总结
1 E* \4 s2 }/ O' r9 m8 _; o& }7 K  d' M7 Q3 d
以上就是利用Vsts自动编译构建项目的完成,然后在github项目中看到项目的构建状态!
( ~' ^8 D9 T  g

) k. h  v" h. L( ?- F核心是为了解决帮助大家在开发过程进行的日常编译问题。自动化构建。
0 J1 u' U  o4 W, c" V4 z

: p+ a1 X  B2 H& p4 H& `: ?+ @VSTS的整体功能肯定不止这么一点,在后面的日子内,我会带着大家慢慢玩!
0 Q2 [+ C4 f5 n8 f

% z6 v* ?7 }) @3 c% N
原创:梁桐铭

* V2 e# e$ b# E' c6 m( m
5 Q8 `& k9 X+ _. Z
9 e9 ?0 M- G0 w. D8 k




上一篇:程序猿成长日记之独自修炼“六脉神剑”--Devops篇
下一篇:干货:拉动端到端价值交付--平安Devops演进历程ppt
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

参加 ITIL 4 基础和中级专家认证、v3专家升级、DevOps专家认证、ITSS服务经理认证报名
本站关键字: ITIL| ITSM| ISO20000| ITIL培训| ITIL认证| ITIL考试| ITSS| ITSS培训| ITSS认证| IT运维管理| DevOps| DevOps培训| DevOps认证| itop| itil4| sre| 开源ITSM软件

QQ|ITIL先锋论坛 ( 粤ICP备11099876号 )|appname

Baidu

GMT+8, 2021-8-6 07:50 , Processed in 0.115873 second(s), 31 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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