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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

查看: 6718|回复: 0

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

[复制链接]
发表于 2018-11-18 15:54:11 | 显示全部楼层 |阅读模式
本帖最后由 adminlily 于 2018-11-18 16:07 编辑
" a- S8 L+ v# p0 Z- M3 W
' ]2 A2 h0 z) t0 s& n5 N5 {) W
“ 工欲善其事,必先利其器。磨刀不误砍柴工!”

# u2 Y0 r' F" r" }' R( A$ z3 v- Z0 D1 _: N/ d% a5 C- _) x
  • 管理工具会VSTS。
    2 Q' M  D& L; v! j' R1 M

- r" N. s0 B0 B

# L5 f3 E8 l! o  v9 Q; I, _
  • 代码管理会用GITHUB。
    ! t8 f2 _, R; E
0 z8 D9 @- v) d& Q" V
7 F% S4 [9 K, b  `" O8 x
  • 服务器会用Azure。
    0 q( A8 ]! E# z/ z/ v% w: O3 V5 L

    , A/ ^" |! p# I3 M
    所有的东西都是利用现有服务。不会说自己从虚拟机开始玩。我们就专注于写代码。
- B' c- Z* \! |

# A, u- Z! n- L* F3 ~. l0 z) D, u
什么是VSTS?, M, X# `) t4 ?4 B" ]0 K5 G7 A
VSTS的全称是Visual Studio Team System。
+ n8 @1 `& d7 a

/ K9 P$ e5 f3 z# U' N/ b介绍VSTS之前先说下TFS(Team Foundation Server)。
* i( ^" f. B7 E5 f

5 Y% d# M$ y! V# x/ x5 y8 V+ E
TFS是微软推出的一款ALM(Application Lifecycle Management)软件生命周期管理工具。通过它你可以从代码管理->代码版本管理->项目管理->持续集成->自动发布->自动测试等一系列软件生命周期在内的全家桶功能。

! m% ]3 U+ ^# ^+ h* b

' s( _9 K$ U) @
VSTS(Visual Studio Team System)是基于SaaS(多租户)化TFS的云产品。

% V+ A$ a' M; m% d$ D& M# Y

5 i8 V& O, ~0 [3 B# z听了之后是不是感觉很强大。
3 ]3 Q$ ]9 }6 }+ H
% q7 X& D* [/ C. S
关于Github5 s7 n2 X5 O' Y
3 s& w5 [9 J" {. T# d2 z0 j
4 F- e/ A, q4 z
Git 是由 Linux 之父 Linus Tovalds 为了更好地管理linux内核开发而创立的分布式版本控制/软件配置管理软件。
" q4 F/ ]6 n- |$ b1 F8 M

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

& R) m& w) W; E5 k. U
! X* _: J% s6 H* V& y! h
0?wx_fmt=png.jpg
先上一张图
% J/ a; R7 M8 y: Z' U8 f/ M5 k

* R& [2 v5 {+ L3 W0 Z: F
图片来自知乎。

3 H, {2 b3 U( f6 F; N( B' q! O
) Z! Z  k; v5 h! i
为什么会有这个需求。
* m. o3 Y1 e1 j$ A7 L: I8 f; }: A
目前Github作为一个全球最大的码(tong)农(xing)交友社区。也是最大的开源社区,但是它没有自动部署,在导航篇的时候我们说了。我们是一个,通过开源实际项目的方式给大家一个良好的体验。

4 Z' m4 _! n( u& I$ M

% {, u6 B3 n, c- W涉及到的技术也会用微软全家桶的方式来进行开发的。

: L6 ~) R3 a8 g# V
+ O+ H- ~6 H5 S" d4 L/ f1 o
恭喜VSTS开通香港节点: N( ^* O& M5 O7 I9 |
0 T) i! n# A- z" w- k

" ]8 J/ c: Z/ o( {7 k; g! x' a$ b: ~6 _
没有香港节点也就是东亚区域之前呢,大家只能从 美国中部、加拿大中部、西欧、印度南部、澳大利亚东部、巴西南部这几个节点选择账户所在区域。

( ^) ?: X! C% h8 T8 K6 |. \
. u4 S7 F" n8 L4 {* A# b
这些节点都有一个特点,对我们国家不怎么友好。按照 Julia 的说法,我们国家强大的防火墙。恩恩。

2 R4 K( ~; v/ @/ N

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

$ @* W6 C: m5 B& F7 P
" V) U. n4 ^  i1 j5 Z1 u
这意味在大陆使用微软全家桶的速度, 蹭蹭噌的加速了。
* P7 }& D# \2 ^6 B6 F

9 b1 v* |" k# ^  v6 i
好了,闲话少叙。开始干吧!
0 {& b, M9 g  z( E; o
0 R! A) o/ x, W% ]" |' C8 c
注册VSTS
/ U) h: v* n! C1 H" y. v  F( O. F. k2 S* Z: [
首先你要有一个微软邮箱,没有自己去注册。

1 q( j' s' w+ P! e0 V- H

9 o9 @. g0 c, j8 Q* g9 R2 k1 O) L6 j) j然后打开https://app.vsaex.visualstudio.com/me?mkt=zh-CN 新建账户。
6 {5 M) C6 ]2 [; C
, V* o7 X1 [* g0 \7 K+ V* @
0 s5 n) A2 C$ W& q! k" [) r
0?wx_fmt=png.jpg
image.png

1 y7 E2 C; P9 m4 v5 G& G
, |0 G' V0 I) g- N2 g; h2 W( D
这里的所在地一定要选择东亚,因为其他地区的速度慢。
: h# p8 s, H5 V) i5 H

" O: d4 p& B+ N; I+ p. M! V
正文
- R- `: z1 j7 k7 c* v( X6 M, }% i- ?: K4 S% K5 J& z% I
我们现在开始做一些正经事。
5 s/ v) ]' O  Z" v0 n6 a

% h4 k; [0 V/ i( U! J
  • 首先创建一个新项目

    % `4 j$ H+ T& x* L  Z; e
    0?wx_fmt=png.jpg
    image.png
    6 Y3 }* M5 N; L

$ G9 F# I3 k- P$ p6 i; W. h/ m
  • 创建完毕后,进入项目。
    # m0 [" B& F: z1 g0 ?
    0?wx_fmt=png.jpg
    image.png

    / W' d% l) H$ k7 z; M% }- o7 T

1 [" Y, Y2 e, }
/ K4 U: u- @( r( J
  • 在Build And Release 菜单栏下的Builds中,选择新建一个“Empty process” 。
    3 J# n1 Z& o3 K1 I' ]1 U! U( t你可以给这个任务创建一个名字,然后这里有几个队列,我们选择"Hoste vs2017"的队列
    . q6 L1 V! U9 c
    0?wx_fmt=png.jpg
    image.png
    % g  x. y9 ], u2 P4 S
5 W- ~' J$ ], V" L' A" E

! O* {$ m/ n% }0 t
  • 然后选择“Get Sources” ,选择github。
    + N; ^' W, x! E% G
    0?wx_fmt=png.jpg
    image.png
    4 h( }, H0 @: E" Y
    这里需要你的github账户授权,这里你可以选择用网页授权还是用个人密钥授权。7 j. ?# a0 E$ Q- V% }: O! _
    我们采用Authorize using OAuth,然后这里请注意,弹窗很容易被拦截。
    6 B1 U9 o& b; S3 |& p8 c8 z这里你要允许弹出。

    / ?) Q" v9 [) n; k
    0?wx_fmt=png.jpg
    image.png
    % ^% W. j  E5 ?; _
    授权成功后,可以看到你github中仓库的信息。
    # k! }; ~+ v0 _
    0?wx_fmt=png.jpg
    image.png
    / s* s0 W3 D. _4 Z

3 K) y" n& q) u3 }1 u4 u, a. l
/ K1 S$ X: u$ Q" @9 F$ X% F
  • 然后选择菜单栏上的“Triggers”触发器按钮。打开触发器,

    ' `7 |4 U7 b6 E0 p# n  [9 t/ ^  e
    0?wx_fmt=png.jpg
    image.png

    * ?2 @# j' o/ T, p  u% {
. i/ C) ^# H( v
  • 选择Options配置下信息。

    + C  n+ X( U- f& _8 J0 h# X
    0?wx_fmt=png.jpg
    image.png
    1 C* q4 I& N1 e1 T& S: q# Y3 b2 I
    最后,右上角“Save& queue”保存。

    # @3 a; u6 Q8 h1 }% \, m
    0?wx_fmt=png.jpg
    保存信息

    6 t" `% i$ B: n8 L: L( s# e
' [- r* [$ F" E5 \3 {) E4 R. `( R9 _
0 y( L4 H3 N" m, @/ v& a
  • Build number format 是指创建生成的生成码。你可以试试。

    4 L) L7 Z" w9 u1 y  P2 f
) D) s: }, D# p6 B% {2 R( `
至此整个功能配置已经完毕了。
8 s+ q+ x7 }5 y% d" h
, ]0 k( P: ~( f  _2 n) ?5 `
使用VSTS给github的README 文件创建构建状态9 Z: q- N1 Y. r* _; l1 F$ a6 [0 [/ _

9 r. f1 k  g  z
) J" Y0 c" U9 l$ B
构建完毕了,我们来看看怎么让逼格显得稍微高大上点。打开我们的github项目。
; D( @# Z* C; ~- X5 R) ^7 O
9 Q& F/ W; P6 z' ?4 _! U. R
+ N: H: U. M! x1 s: c, a
0?wx_fmt=png.jpg
image.png
) w% s' K% ]* E$ b
以上效果图!!!
3 s3 U+ g" h4 a. H$ g: ?" j9 k
/ n  a# J. |$ s' @* w0 \8 E  b
链接地址:https://github.com/ltm0203/aspnetcore

# s8 ^- r0 w- ]
0 x, F4 J5 T5 M1 r) h8 A
我们在VSTS中为项目创建一个自定义的通知消息,方法是利用VSTS的构建生成的URL,利用markdown的语法来完成。

% @; C0 Y5 B+ Y; k+ Z

' A" k8 b: s! w
  • 首先在打开你的github,导航到你所在的仓库,这里我们使用的是aspnetcore项目中。

    3 Q2 c  E+ A( Q( r: l

0 c, K3 |* B6 U- g% B

8 v* e& C" P9 @6 r
  • 创建一个README.md的文件。
    8 p) r4 f4 v- R7 |

# W: G2 _1 s6 D4 S9 j

' a  z' B) o, A7 t
  • 然后将vsts中生成的徽章标记链接,粘贴到README.md文件中即可。0 |8 ^6 b0 I1 h6 l4 h
    代码段:
    ' r) m# R. N7 ^6 u" u( n
" h: P& ~+ X, u. i3 B: J
[<img src="https://ltm0203.visualstudio.com/_apis/public/build/definitions/06667c49-f49d-4e3b-8eda-1ee96b1914c7/1/badge">](https://51abp.visualstudio.com/_ ... 48d80437520/1/badge)
9 ^0 ^4 r$ g- J9 \! B' r: H( F. ?9 e' p" V2 {
  ?5 s; k$ c* X5 B' Y  k& M
vsts中生成的徽章URL:

/ @; a1 M: T/ U* Q
1 R$ w: @( F5 B" ]7 [
0?wx_fmt=png.jpg
徽章URL.png
* D( z7 g7 E6 A2 z2 ^) q
! `: d0 A+ S' Q7 M1 y) [8 |
  • 在github项目中的"Setting"中,打开webhooks,可以看到你绑定的webhook。每次对GitHub仓库的提交都会触发VSTS中的构建。

    3 k* J" u& E7 m7 }' U# J& O( S- d
9 M$ R1 d$ f% i4 k0 v7 z, z
  • 我们返回到vsts中,打开build。可以看到我们创建的队列。

    2 v; }7 l' z+ q
    0?wx_fmt=png.jpg
    image.png
    . S1 k8 A; d% O0 S3 N6 E0 w+ Y
    这里可以看到更加详细的统计信息,你编译的次数,状态,每次提交的信息等等。
    ' m; ^* ], o- V2 F* g

9 t& G, W) v; n1 O; P

' I- _1 _  @/ G6 [$ g. C% ]实际开发呢?, Q9 s* c- a: F/ @% y* ]
; Z  \6 J/ u7 y( ^/ T3 j- u* [, r

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

$ O1 ^' @( [% V$ d0 Q/ T
2 g* j' G" |- ?6 _4 @/ N6 ^
  • 打开VSTS,点击“Build & Release”,再点击“Builds”,找到任务名称“这里你可以随意取一个名字”,然后点击“Edit”按钮。
    1 T( ?$ F$ N* Z, P4 e) q

) z/ m! p/ `4 g! p9 Q
  • 点击‘Trigger’.修改起来也很简单。。

    7 P5 Q1 Z( P% L, K* r( F
    0?wx_fmt=png.jpg
    看这里.png
    : E4 ^4 L7 `9 [: q3 R/ {
    修改为如图所示即可。
    # n9 g5 R2 p( R+ z) T
! h* f, \$ C# T- W/ A" @2 V2 c
% }! [' a2 `: l+ Y2 l
  • 然后点击Save & queue,再点击Save。
    * J2 t) l' @; Y# {! i

: F( V+ W+ |# N! {' X总结( Z5 H5 ^/ S6 }: j, G
, O! L) n. R4 {, e' t4 h3 y. b
以上就是利用Vsts自动编译构建项目的完成,然后在github项目中看到项目的构建状态!
* d) B1 s& `7 h1 ^5 u
8 P$ k1 d% |/ t9 k
核心是为了解决帮助大家在开发过程进行的日常编译问题。自动化构建。

8 ]/ W5 o# X) J) l0 k% B
( F$ v  v1 S9 |! {4 |
VSTS的整体功能肯定不止这么一点,在后面的日子内,我会带着大家慢慢玩!

5 h/ \5 t, t5 I+ q: U

, V+ a# t& R9 }4 x# q
原创:梁桐铭
" N  S  W$ G# I- k- g0 u2 N
: i' h  E8 X* a) y! L
$ y, ^2 {, u1 Q9 H* i  B* g: [" I9 i




上一篇:程序猿成长日记之独自修炼“六脉神剑”--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|小黑屋|手机版|Archiver|艾拓先锋网 ( 粤ICP备11099876号-1 )|网站地图

Baidu

GMT+8, 2021-5-7 02:33 , Processed in 0.174150 second(s), 33 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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