1. 引言

首先,Bitbucket提供支持Mercurial和Git版本控制系统的网络托管服务。简单来说,它类似于GitHub,不同之处在于它支持个人免费创建私有项目仓库。除此之外,Bitbucket提供的Pipeline功能可以帮助我们进行项目的自动构建、测试和部署。

2. 使用指南

该项目是使用Abp创建的.Net Core版本的模板项目,项目结构如下:

点击Pipeline,我们选择.NET Core,即可创建用于配置Pipeline的配置文件bitbucket-pipelines.yml

从图中可以看出,其配置很简单,主要包括以下几个部分:

  1. image:了解过docker的同学肯定不陌生,通过指定image来告诉pipeline要拉取何种镜像用于项目编译。
  2. export:通过export指定我们要编译的项目名和测试项目名。(注意:需要使用相对路径)。
  3. dotnet:.net core的还原、编译和测试命令。

由于我们的项目是基于.net core 2.0,且分层架构如下:

我们要对bitbucket-pipelines.yml做以下几项修改:

修改完成,点击Commit File即刻进入Pipeline运行界面,运行结果如下:

至此,我们就完成了.NET Core项目的构建和测试。那如何让它自动进行这两项操作呢?简单,回到Pipeline界面,点击【Schedules】菜单,创建一个【Schedule】即可。

那如何完成部署呢?

因为我使用的Micosoft Azure进行部署,所以按照官方文档Deploy to Microsoft Azure,我们仅需在bitbucket-pipelines.yml后面添加一条git push命令即可,如下:
- git push https://$AZURE_LOGIN:$AZURE_PASSWORD@abpeshop.scm.azurewebsites.net/Abpeshop.git master
其中$AZURE_LOGIN$AZURE_PASSWORD是Azure的部署凭据,我们需要在我们当前项目仓库中定义环境变量,如下图所示:

最后无图无真相:

3. 最后

Bitbucket提供的Pipeline的免费构建时间为50mins/月,但对于我们简单尝鲜来说是足够了!当然如果不够用,其付费策略也很优惠,2$/月,拥有500mins/月的构建时间。
当然微软的VSTS,也是一个很好地选择。

参考文章:
.NET Core 2.0 持续集成,持续发布环境
Building NuGet (.NET Core) Using Atlassian Bitbucket Pipelines
Building .NET Core apps with BitBucket Pipelines and Docker

使用Bitbucket Pipeline进行.Net Core项目的自动构建、测试和部署的更多相关文章

  1. 用Ant实现Java项目的自动构建和部署

    原文地址:http://tech.it168.com/j/2007-11-09/200711091344781.shtml         本文请勿转载! Ant是一个Apache基金会下的跨平台的构 ...

  2. 用Ant实现Java项目的自动构建和部署(转)

    Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作. 一.            ...

  3. 用Ant实现Java项目的自动构建和部署(转)

    Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作. 一.            ...

  4. 用Ant实现Java项目的自动构建和部署(转载以作收藏)

    原文地址:http://tech.it168.com/j/2007-11-09/200711091344781.shtml        本文请勿转载! Ant是一个Apache基金会下的跨平台的构件 ...

  5. 在Centos7中创建.net core 项目,并用Apache做代理服务器部署.net core项目

    这一篇实例记录一次用Centos7创建并部署.net core项目的过程,希望能帮到用到的小伙伴. Kestrel 是 ASP.NET Core 项目模板中包括的默认 Web 服务器,Kestrel可 ...

  6. Ubuntu系统下使用Jenkins进行项目的自动构建还是项目回滚方法

    上面虽然实现了项目的自动部署,但是有时部署失败的时候我们需要回滚到指定版本的构建,这样才能更灵活的进行项目的构建部署.我们可以选择“参数化的构建过程”进行传递不同的参数来选择是进行新的构建还是回滚 如 ...

  7. 使用jenkins进行项目的自动构建部署

    jenkins 简介 Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:持续的软件版本发布/测试项目和监控外部调用执行的工作. 官网地址地址: https://je ...

  8. 使用Jenkins进行android项目的自动构建(5)

    之前在项目中引入的单元测试使用的是JUnit,可以在构建前进行测试,这里在介绍一下使用Instrumentation 进行单元测试.使用Instrumentation进行测试,比之前多一些步骤,需要把 ...

  9. 使用Jenkins进行android项目的自动构建(3)

    建立Jenkins项目 1. “新增作业”->填写作业名称->选择“建置 Maven 2 或 3 專案”->OK.新增成功后会进入“組態設定”,暂时先保留默认值,稍后再进行设定. 2 ...

随机推荐

  1. Call From master/192.168.128.135 to master:8485 failed on connection exception: java.net.ConnectException: Connection refused

    hadoop集群搭建了ha,初次启动正常,最近几天启动时偶尔发现,namenode1节点启动后一段时间(大约10几秒-半分钟左右),namenode1上namenode进程停掉,查看日志: -- :: ...

  2. iOS下OpenCV开发用OC还是Swift

    本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃 其实标题中这个问题并不准确,准确的说法应该是iOS下的OpenCV开发是使用OC还是Swift ...

  3. javascript高性能写法

    看到一篇不错的博文,如果想写出比较高性能的代码,可参看这个链接http://developer.51cto.com/art/200906/131335.htm

  4. ng-options指令语法

    ng-options一般有以下用法 对于数组: label for value in array select as label for value in array label group by g ...

  5. ACID 数据库正确执行四要素

    ACID:数据库事务正确执行所必须满足的四个基本要素的缩写: 原子性(atomicity,或叫不可分割性),一致性(consistency),隔离性(isolation,又称独立性),持久性(dura ...

  6. Linux 文件系统模型

    声明:本文仅限于 cnblogs 发布,其他第三方网站均为盗版,原文地址:Linux 文件系统模型 在 Linux 环境下有过一些经历的同学可能都会遇到一个问题,这个问题就是往机器上插入 U盘 或者其 ...

  7. 解决IE下CSS因 Mime 类型不匹配而被忽略的问题

    写页面的时候在chrome,firefox等页面上显示正常,但是换成IE9之后就完全没有样式了,报错信息是CSS 因 Mime 类型不匹配而被忽略,下面与大家分享下这个问题的相关的回答.IE真是个奇葩 ...

  8. 最大流——Dinic算法

    前面花了很长时间弄明白了压入-重标记的各种方法,结果号称是O(V3)的算法测demo的时候居然TLE了一个点,看了题解发现所有人都是用Dinic算法写的,但它的复杂度O(V2E)明显高于前者,具体是怎 ...

  9. 【开源】canvas图像裁剪、压缩、旋转

    前言 前段时间遇到了一个移动端对图像进行裁剪.压缩.旋转的需求. 考虑到已有各轮子的契合度都不高,于是自己重新造了一个轮子. 关于图像裁剪.压缩 在HTML5时代,canvas的功能已经非常强大了,可 ...

  10. Win32 SDK 编程开始, 创建窗口, 消息的处理, 消息循环

    Windows SDK 编程的一般步骤为: 1. 注册窗口类, 使用到的结构 WNDCLASSEX, 函数 RegisterClassEx. 2. 创建窗口, 函数 CreateWindowEx. 3 ...