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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

艾拓先锋
搜索
查看: 247|回复: 0

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

[复制链接]
来自- 日本

参加活动:0

组织活动:0

发表于 2018-11-18 15:54:11 | 显示全部楼层 |阅读模式 来自- 日本
本帖最后由 adminlily 于 2018-11-18 16:07 编辑 9 G& G" H2 z% p; N' f9 p% s

0 O2 [9 G% N5 t
“ 工欲善其事,必先利其器。磨刀不误砍柴工!”

) K2 X# G( r" M
2 @! X! [. m" o$ K, y
  • 管理工具会VSTS。
    2 u- s/ x9 g, n
# e6 M  A( S4 ]- K3 T
2 u$ d6 O4 r+ I  e! B
  • 代码管理会用GITHUB。

    1 m4 d. ]& ^. `3 Q( @

9 V0 S2 l0 U, n3 o
, C( _+ W: O+ }
  • 服务器会用Azure。

    2 _3 w8 h. y; `- O. e, i% |
    3 U7 R7 J" r) R# z2 W
    所有的东西都是利用现有服务。不会说自己从虚拟机开始玩。我们就专注于写代码。
* @  H: q9 W4 v$ D) o) ~) e* `
6 Q7 s% K% E% l# J' M' O
什么是VSTS?
' k+ y* V. m. @5 U: ?7 p9 B$ }
VSTS的全称是Visual Studio Team System。
) j3 b* o' L! M* `# I9 r  J1 Z
  A, T* n! M5 ^+ E
介绍VSTS之前先说下TFS(Team Foundation Server)。

. P. r3 S! y& {& O# [8 P
) d; g0 U" l& o/ h" \* y
TFS是微软推出的一款ALM(Application Lifecycle Management)软件生命周期管理工具。通过它你可以从代码管理->代码版本管理->项目管理->持续集成->自动发布->自动测试等一系列软件生命周期在内的全家桶功能。
& f$ I. \! a- v3 U
3 ?$ [; v. e8 K( e- A' J% R
VSTS(Visual Studio Team System)是基于SaaS(多租户)化TFS的云产品。
4 c. a: y3 i! f5 m3 K

8 w3 \8 w" a* F- V# c6 L0 o# v听了之后是不是感觉很强大。
6 e! |' u. g3 Q  u+ `7 q5 X

2 W, L/ X: T4 Y! V7 o% g7 f
关于Github' d2 K0 o% X0 i6 }( F! Q9 s# L

  d( S" K9 v% B" o1 O% u
' N- l7 e4 D1 w; @5 F) Z- N
Git 是由 Linux 之父 Linus Tovalds 为了更好地管理linux内核开发而创立的分布式版本控制/软件配置管理软件。

! X" S6 o& \  ]9 H7 K5 L
2 t* h  P8 }# i8 g" I: x
GitHub是一个通过Git进行版本控制的软件源代码托管服务,由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath、PJ Hyett和Tom Preston-Werner使用Ruby on Rails编写而成。

, X  q+ A/ i# \* p& t8 C

+ a6 M: I$ ^+ M/ x, j5 E
0?wx_fmt=png.jpg
先上一张图

3 _# V( u2 C2 ^( ?

! Q/ ^! @+ W) |, q/ n$ L! b+ I/ E
图片来自知乎。
" \0 v& a. v3 X* w4 w" L
0 U6 s, t3 D& ]% g0 j+ u  M* w: k
为什么会有这个需求。
; y& U% h  s$ f9 T8 e( _' K
7 K" W' q% \% R4 r9 F& W
目前Github作为一个全球最大的码(tong)农(xing)交友社区。也是最大的开源社区,但是它没有自动部署,在导航篇的时候我们说了。我们是一个,通过开源实际项目的方式给大家一个良好的体验。
0 a2 Y# w- ~* U2 \3 N, C0 ~+ y
7 W% E7 }$ Z  D! Q4 ]
涉及到的技术也会用微软全家桶的方式来进行开发的。

& \; S4 ]+ {' S- z
" ^+ J9 A$ L! z5 l* A
恭喜VSTS开通香港节点
- y3 _) ?# e/ f: a! k  h. j" m( @8 }, \5 T2 V2 O
  T7 m1 m/ n* P0 e
没有香港节点也就是东亚区域之前呢,大家只能从 美国中部、加拿大中部、西欧、印度南部、澳大利亚东部、巴西南部这几个节点选择账户所在区域。
' [1 O- n* @, S$ y- s6 I3 |7 K

& @- e+ P# t' ^$ i& }$ ?6 [这些节点都有一个特点,对我们国家不怎么友好。按照 Julia 的说法,我们国家强大的防火墙。恩恩。

' d7 x% D' d2 v' N4 ]
3 Z5 s: ]' Z# X$ M
在11月2日的微软科技大会上,微软研发部门的全球副总裁潘正磊女士宣布了微软研发云VSTS将于2017年底前落地中国香港。然后在10号的时候VSTS的老大布雷恩就宣布开通了VSTS在香港的节点。

; O2 O, H8 @' P( b3 G" J
9 m% d6 ^9 @: V/ ~+ n* r+ k* y
这意味在大陆使用微软全家桶的速度, 蹭蹭噌的加速了。

2 o2 h( d0 K5 j/ `9 q

/ W- w) w/ s+ p. Q
好了,闲话少叙。开始干吧!

7 v% E( {+ m2 l

5 I# W) l/ g9 Z$ T; d# C" \; X
注册VSTS+ l" k1 D, d3 r6 I+ |2 d4 v8 G2 }

1 Y  z7 k4 {. D& P$ ]
首先你要有一个微软邮箱,没有自己去注册。
7 g; a' @) k: f, j. g# T
0 Q% y! k! T( U( \
然后打开https://app.vsaex.visualstudio.com/me?mkt=zh-CN 新建账户。
. P/ L1 \7 t+ z

7 i9 A. h4 a2 \8 q. u# i# b* n- r1 E& G

7 M$ e0 x6 H- o: Z' c, E
0?wx_fmt=png.jpg
image.png

. i  |) o1 v  [' M9 |' H
0 ^. V+ j3 X5 {7 ?
这里的所在地一定要选择东亚,因为其他地区的速度慢。

  j4 V- N, Z$ P- F' t- C  h5 T

; M* [! p) n6 K3 _
正文
  A* z7 P* S: h# |& k9 w4 o; I! p1 k, A
我们现在开始做一些正经事。

  Y. ?) j" ?! b3 n
( j/ R2 A$ A* O- \! }+ c
  • 首先创建一个新项目

    # H+ m0 i9 L, N6 A; f6 r
    0?wx_fmt=png.jpg
    image.png

    - Q$ H- b- e& y; E* D3 P; N$ H
; _( `. ?+ u( x! {- I* r
  • 创建完毕后,进入项目。
    ! {$ j' S/ Z3 h% C. U( q8 [0 Y" \
    0?wx_fmt=png.jpg
    image.png
    ; `4 W- j) }: ~) R# b

0 s3 j4 U# n  V. ~% W5 M' p
2 X4 t( M6 {' O# W! @0 f+ [
  • 在Build And Release 菜单栏下的Builds中,选择新建一个“Empty process” 。
    / c; j( h5 c! ~* e你可以给这个任务创建一个名字,然后这里有几个队列,我们选择"Hoste vs2017"的队列
    - c4 a& \: W# }3 N/ @: w( P& {
    0?wx_fmt=png.jpg
    image.png
    & L, ^  N9 `. s/ y: \- P$ A, P
) i- a: v: x. M4 I2 N
& b, G% j# Z3 c" C$ o$ V% P
  • 然后选择“Get Sources” ,选择github。

    ' k% y, Z' c; f/ G, {
    0?wx_fmt=png.jpg
    image.png

    6 B4 ^$ z4 b5 A# o$ C
    这里需要你的github账户授权,这里你可以选择用网页授权还是用个人密钥授权。
    # {' g5 l) m3 x我们采用Authorize using OAuth,然后这里请注意,弹窗很容易被拦截。5 F+ \6 }1 r6 F
    这里你要允许弹出。

    : {$ t: y; k6 I7 h
    0?wx_fmt=png.jpg
    image.png

    - r5 U' n; z9 s' F% \% R) ?授权成功后,可以看到你github中仓库的信息。# @3 N$ Q% i1 T3 Z9 O4 G' }
    0?wx_fmt=png.jpg
    image.png
    ! R  ?+ v- B' A5 J4 f/ J
# M, a' o6 B& E% n' k: z8 ]

/ O7 K8 d! a, E
  • 然后选择菜单栏上的“Triggers”触发器按钮。打开触发器,

    ( G7 A# u  q0 j- I
    0?wx_fmt=png.jpg
    image.png
    - {2 `3 W+ v8 b  I2 L* I

- L. E$ @1 a  s8 Z* m6 K
  • 选择Options配置下信息。
    ( x2 s, Z* ~( D% \" n7 l
    0?wx_fmt=png.jpg
    image.png

    * ]/ t% e/ \9 }/ N0 B  h
    最后,右上角“Save& queue”保存。

    & P  r8 n" A/ r1 e5 G# I1 i; w
    0?wx_fmt=png.jpg
    保存信息

    1 P8 y/ R3 ?+ U( u* R) G8 h0 V

9 d4 b2 O5 T/ g( `% n- Z

: B4 M  c; }5 F+ `. o
  • Build number format 是指创建生成的生成码。你可以试试。

    . }' O- s  k0 D) C9 {
4 @, r3 W( t% p
至此整个功能配置已经完毕了。

! }/ D4 M7 j* D# e. J- j

( \2 M7 D5 j' i; ]
使用VSTS给github的README 文件创建构建状态) X' H& r( Q+ z. C1 }0 a: y& H& j4 _
1 b# }' N2 O6 d) z

3 `$ E0 a8 H# C, Y- h5 }
构建完毕了,我们来看看怎么让逼格显得稍微高大上点。打开我们的github项目。- `7 g* l* i$ r/ W
- _+ c$ _$ S7 ~  U$ W1 R; c5 u
& Q4 h0 N2 K( R% q
0?wx_fmt=png.jpg
image.png
0 e; m+ k+ q) H8 `! X
以上效果图!!!

4 q% S; h0 J# h: p  p

% w- J3 H5 a* u8 @' C: k0 |: p4 b链接地址:https://github.com/ltm0203/aspnetcore
$ V5 E1 j/ e/ @
. }& I# J- ?+ b2 j" c+ P$ e
我们在VSTS中为项目创建一个自定义的通知消息,方法是利用VSTS的构建生成的URL,利用markdown的语法来完成。
" R+ t1 n2 L/ C  x& z& f3 Q

( I$ [9 p% v  `
  • 首先在打开你的github,导航到你所在的仓库,这里我们使用的是aspnetcore项目中。
    0 ]. d- V* Z; u
/ x; j- j1 ~$ l  \
  u) v# r/ R1 `2 q8 {# i4 r" L
  • 创建一个README.md的文件。

      Y' E; ]% b! M
- P; B1 O9 }+ P' `2 j
) r" [; U9 P, Y4 w3 @, e
  • 然后将vsts中生成的徽章标记链接,粘贴到README.md文件中即可。
    2 S8 l8 e( m& [* w1 q代码段:

    , J) [* D" V1 {2 N/ Z! b, z) _; s$ R
. V" y3 Z  y& i9 @. J: w* \' m
[<img src="https://ltm0203.visualstudio.com/_apis/public/build/definitions/06667c49-f49d-4e3b-8eda-1ee96b1914c7/1/badge">](https://51abp.visualstudio.com/_ ... 48d80437520/1/badge)) t# [% _! a5 w3 g( X) \

% ?) y& {6 ?. ?' H# f. y
% W6 \5 [% {* f! ]6 z  S
vsts中生成的徽章URL:
8 I1 d( ~" S0 ~
: K8 _9 H8 R* v8 \# \3 }3 U
0?wx_fmt=png.jpg
徽章URL.png
% M5 O  t# L; E9 h% m$ R0 \( @* X( O: z
3 h% f# z8 I: a0 k0 u! F
  • 在github项目中的"Setting"中,打开webhooks,可以看到你绑定的webhook。每次对GitHub仓库的提交都会触发VSTS中的构建。

    # g9 }% @0 Z* t/ ?. P9 {, y. g

' B. H1 @/ C! F
  • 我们返回到vsts中,打开build。可以看到我们创建的队列。
    ! f( Z# a( F8 Z5 H; h
    0?wx_fmt=png.jpg
    image.png

    # t3 S- X, Z* t% N# U( \
    这里可以看到更加详细的统计信息,你编译的次数,状态,每次提交的信息等等。

    & T, |8 n' z' T3 _7 M6 J
' b/ {- T  o8 a$ R5 ~8 a# S$ E

7 S( z  o, J$ s; y( b实际开发呢?
- y6 s0 |2 G- h" e6 @* V* |2 d3 y$ n5 e: e6 O9 G: f
" H& k- J3 `; t. h9 [
在实际开发的项目中,我们更多的时候,是一个几个功能写好了才提交一次,而当前的情况每个文件发生变化就编译一次,这稍微有点不合理。我们通过对队列任务这里你可以随意取一个名字的进行修改,让项目编译更加的合理。修改为每提交一次才编译。

' z6 ]' U* y* l# }: @; x) s8 b

0 X9 G" r2 s% |! D! E% C) w, S
  • 打开VSTS,点击“Build & Release”,再点击“Builds”,找到任务名称“这里你可以随意取一个名字”,然后点击“Edit”按钮。
    4 a: J6 m7 A% f
0 i0 \6 {# j7 G; I$ c5 l
  • 点击‘Trigger’.修改起来也很简单。。

    1 E. q  F$ M  Y4 p; i' c4 T
    0?wx_fmt=png.jpg
    看这里.png
    : y  ]5 e) B! D( t6 X2 G' L
    修改为如图所示即可。

    . c) p; l' j" U+ R/ a: A$ Y1 r& ]0 O

' K1 }  N/ {1 G

& U( C3 l. i! a! o1 E5 [: G: ]( r
  • 然后点击Save & queue,再点击Save。
    7 d0 J' `- {. {( J
: c/ k) }9 g, n# B6 P3 U( e
总结" }! l( I5 E/ \
) X( m3 w: ^$ d: E6 Q9 o/ W9 u, y
以上就是利用Vsts自动编译构建项目的完成,然后在github项目中看到项目的构建状态!
; s7 x6 m. N  _# l
6 C3 q. K' \* d- N; X7 u
核心是为了解决帮助大家在开发过程进行的日常编译问题。自动化构建。

( M2 ]/ C. ?- R' D. K

6 U' z: N: y) y4 yVSTS的整体功能肯定不止这么一点,在后面的日子内,我会带着大家慢慢玩!

2 g& q, k4 E% J8 `+ u/ ]$ x9 N+ _

4 o9 E: Z: I5 J' C
原创:梁桐铭

) ~+ O0 L) E6 y0 F2 x
/ i- V7 H0 R  F, B6 O9 k# f, `! r$ z) l& J0 ]' S- Z

本版积分规则

选择云运维时代的王牌讲师-长河老师,助你轻松入门ITIL Foundation培训课程

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

Baidu

GMT+8, 2019-2-24 13:43 , Processed in 0.242693 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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