利用 Azure Devops 创建和发布 Nuget 包

  • 原 Visual Studio Team Service ,简称 VSTS,能够创建 pipelines 管道以构建应用程序,并将其部署到任何平台、云或应用商店,其他平台可能就没有 Azure Devops 对 windows 支持这么
    好了
  • 这个平台还集成了项目管理、版本控制、BUG 跟踪,与 VS 无缝对接,简直强大
  • 收费吗?开源项目免费,小型团队有用户和时长限制,详情请看Azure DevOps 的定价
  • Azure DevOps 功能时间轴

  • 介绍完之后,下面开始介绍如何使用其打包发布 Nuget 包

注册账号

创建项目

  • 创建组织,创建项目,自行完成,最后面来到下面位置

创建构建流水线

  • 点击 Pipelines,然后再点击 New pipeline

  • 选择 Github

  • 选择仓库,由于项目在组织,所以要特别设置。拉到最底下,选择连接。个人项目直接选择即可

  • 选择已经存在的连接

  • 如果没有的话,点击下面的连接,到 Github 插件市场安装一个,选择一个组织,按提示操作即可

  • 回到上一步选择的连接,之后选择仓库

  • 选择推荐的模板

  • 配置流水线,稍微修改一下Microsoft-hosted agents,以及执行的命令
  • 如果是 build 比较复杂的或者其他语言,可能还需要其他工具,参考pipelines的文档,或者参考这个node 的项目,生成 html 文件并自动提交代码

  • 保存提交,自动添加一个azure-pipelines.yml文件到项目。保存之后,项目自动生成Webhooks,一有提交,就会通知 azure devops 开始执行 build 流水线


  • 运行结果

创建发布流水线

  • 这里才是打包 Nuget,发布 Nuget 的步骤,并且这里提供了很多可用的任务,比如构建、工具箱(复制、下载、压缩,github release)、测试、包管理(npm,nuget)、发布(ssh、k8s)、工具安装(.net core sdk、docker cli、node)。
  • 这里 task 都是定义好的,直接调用和配置参数,就没有 build 流水线那样灵活,build 流水线可全部自己定义在 yml 配置文件

  • 还是新建流水线开始,点击 New pipelines,只不过这回是 release 流水线

  • 没有合适的作业,因此选择一个空的

  • 修改步骤名,所有的步骤连在一起构成一个流水线,比如测试、打包、发布。每个步骤又可以有很多个任务。这里只需要一个就好啦

  • 点击链接,编辑步骤

  • 选择作业运行的代理环境,这里选择有 vs2017 的环境

  • 添加任务,并编辑,修改为 pack 的配置,在这一步就打包成 Nuget 包,打包自动 build

  • 修改为 pack,指定打包的项目,包版本设置以日期命名的格式。注意不要勾选Do not build,除非上一步设置为 build

  • 添加 Nuget 任务

  • 编辑 Nuget 任务为 push,添加自定义 Nuget Server

  • 这里使用 myget 作为测试服务,当然发布到 nuget.org 也是没问题的,都是需要 Feed URL 和 ApiKey。申请之后正确填写即可

  • 保存。完成这一切之后,别忘了最重要的事情,是不是全程没有按过保存按钮

  • 添加需要发布的源,

  • 填写 token

  • 选择目标仓库

  • 设置 dev 分支

  • 测试发布

  • 创建发布,选择某次提交来发布

  • 填写发布信息和标签

  • 点击发布,正常创建发布之后会自动添加发布队列,自动运行,设置触发器之后自动运行

  • 设置触发器,文档,以后每次有 push 操作,会自动执行发布

  • 看下结果,可以看到发布成功了, 至于分支是 master,是因为刚才更新到 master 分支。myget 上也出现了发布的版本,将源https://www.myget.org/F/newlife/api/v3/index.json添加的 VS 的 Nuget 包源即可下载安装,包地址https://www.myget.org/feed/newlife/package/nuget/NewLife.XCode


总结

  • 整个过程比较懵逼的是不知道整个流程是怎么样了,充分理解这个流水线之后,就知道每一步可以干什么了,然后根据自己需求来自定义
  • 手把手图文式教程,对于自己来说加深印象和理解,对于别人来说可以作为参考

利用 Azure Devops 创建和发布 Nuget 包的更多相关文章

  1. 【Azure DevOps系列】Azure DevOps构建并发布Nuget程序包

    在Azure DevOps中,管道可以用来构建解决方案,O(∩_∩)O哈哈~快万能了,本章主要介绍如何创建Nuget包并且将其发布到Nuget服务器的过程. 前面我创建了一个非常简单的类库,这边我不做 ...

  2. Azure Terraform(九)利用 Azure DevOps Pipeline 的审批来控制流程发布

    一,引言 Azure Pipeline 管道是一个自动化过程:但是往往我们由于某种原因,需要在多个阶段之前获得批准之后再继续下一步流程,所以我们可以向Azure Pipeline 管道添加审批!批准流 ...

  3. Azure Terraform(十)利用 Azure DevOps 的条件语句选择发布环境

    一,引言 之前我讲过的所有的案例中,都是将整个Azure Resource 部署到同一个订阅下,没有做到灵活的在 Azure Pipeline 在运行前选择需要部署的环境.在实际的项目开发中,我们也会 ...

  4. Azure Terraform(五)利用Azure DevOps 实现自动化部署基础资源

    一,引言 上一篇我们结合学习 Azure Traffic Manger 的内容,做了一个负载均衡的基础设施架构.通过 Terraform 部署执行计划,将整个 Azure Traffic Manage ...

  5. Azure Terraform(七)利用Azure DevOps 实现自动化部署基础资源(补充)

    一,引言 之前一篇文章有讲解到利用 利用Azure DevOps 实现自动化部署基础资源,当时 TF 代码没有针对 Azure 各个资源的封装,所有的资源代码全部写在一个 main.tf 文件中.然后 ...

  6. Azure Terraform(八)利用Azure DevOps 实现Infra资源和.NET CORE Web 应用程序的持续集成、持续部署

    一,引言 上一篇讲解到利用 Azure DevOps 将整个 Azure Web App,Azure Traffic Manager profile,Azure Storage Account,Azu ...

  7. Azure App Service(一)利用Azure DevOps Pipeline 构建镜像,部署应用程序

    一,引言 起因是前两天项目上做测试,需要我把写好的基于.NET 5 的 Web 测试程序作成 Docker 镜像.当我在本地验证完功能后,准备利用 Docker 构建应用程序镜像的时候,发现系统不支持 ...

  8. Azure DevOps(一)利用Azure DevOps Pipeline 构建应用程序镜像到AWS ECR

    一,引言 最近项目上让开始学习AWS,作为一名合格的开发人员,当然也是学会利用Azure DevOps Pipeline 将应用程序部署到 AWS ECS(完全托管的容器编排服务).我们要学会将应用程 ...

  9. Azure DevOps(二)利用Azure DevOps Pipeline 构建基础设施资源

    一,引言 上一篇文章记录了利用 Azure DevOps 跨云进行构建 Docker images,并且将构建好的 Docker Images 推送到 AWS 的 ECR 中.今天我们继续讲解 Azu ...

随机推荐

  1. Statement、PreparedStatement、CallableStatement的区别

    此三个接口的声明如下: public interface Statement extends Wrapper, AutoCloseable public interface PreparedState ...

  2. Java环境编写

    首先安装jdk,本系统中jdk安装在D:\jdk:jre安装在D:\Jre: 然后开始配置环境变量: JAVA_HOME:D:\jdk; JRE_HOME:D:\jre; CLASSPATH:.;%J ...

  3. 解决SecureCRT超时自动断开的问题

    http://blog.csdn.net/hcwzq/article/details/7944941. http://discuzx.sinaapp.com/mediawiki-chapter.htm ...

  4. Cantor表(NOIP1999)

    题目链接:Cantor表 这道题很水,但有的人没看懂题意,这不怪大家,怪题目没说清楚. 给张图: 看到这,你应该明白题目意思了. 先看看有什么规律. 我把这个数列写出来: 1/1,1/2,2/1,3/ ...

  5. GO介绍,环境的配置和安装 简单使用

    1. 介绍与安装 Golang 是什么 Go 亦称为 Golang(按照 Rob Pike 说法,语言叫做 Go,Golang 只是官方网站的网址),是由谷歌开发的一个开源的编译型的静态语言. Gol ...

  6. Oracle服务器修改IP后

    机房有两套网络,一套办公网,一套机房的内网,办公网可以通过vpn在其他地方访问,内网只能在公司办公室访问.团队有同事去外地办公,开发的时候需要通过客户端直连数据库,于是把数据库服务器的网线换到办公网的 ...

  7. Lyft Level 5 Challenge 2018 - Final Round (Open Div. 2) C. The Tower is Going Home(思维+双指针)

    https://codeforces.com/contest/1075/problem/C 题意 一个宽为1e9*1e9的矩阵中的左下角,放置一个车(车可以移动到同一行或同一列),放置一些墙,竖的占据 ...

  8. ACM-ICPC 2018 沈阳赛区网络预赛 B Call of Accepted(表达式求值)

    题目链接:https://nanti.jisuanke.com/t/31443 相关前置链接 https://www.cnblogs.com/dolphin0520/p/3708602.html ht ...

  9. boost-容器

    1.array array相当于是一个增加了STL容器接口的数组,但它不像vector等容器一样可以动态增长,如果需要动态变动array的容量可以使用boost::scoped_array.array ...

  10. centos 下备份oracle数据

    一.在xshell下root用户登录服务器 1.新建oracle数据库备份目录 mkdir -p /casnw/backup/oradata6910bak 2.设置目录权限为oinstall用户组的o ...