CHANGELOG.md

案例


## [1.0.1.2] - 2023-03-10
### myproject2 _ 1.0.1:
- 初步版本 简单实现 还未优化
- fix warning ## [1.0.2] - 2023-03-10 ### mynuget _ v4.0.0.0:
- 初步版本 简单实现 还未优化
### xxx.xxx _ v1.2.0:
- 初步版本 简单实现 还未优化
- fix warning
### myproject1 _ v3.2.0-beta.2:
- 初步版本 简单实现 还未优化
- fix warning
### myproject2 _ 1.0.0:
- 初步版本 简单实现 还未优化
- fix warning

解析

  • 1.0.1.2 / 1.0.2 这两个是主要发版版本, 也就是您 github 页面呈现的 release 版本号.
  • myproject2 _ 1.0.1 / mynuget _ v4.0.0.0 / myproject2 _ 1.0.0 这些是工程发布版本号, 也就是您要推送到 nuget 上的包名以及版本号.
  • myproject2/mynuget 等包名必须在工程文件csproj 中指明,即 <PackageId>mynuget</PackageId>.
  • {package_name} _ v4.0.0.0 / v1.2.0 / v3.2.0-beta.2 这些版本号若带后缀,必须符合 nuget 发版规范, 比如 alpha/beta 等写法.

注意工程必须开启打包功能: <IsPackable>true</IsPackable>

原理

版本号不需要在工程文件中填写,因为模板是以 CHANGELOG.md 的节点版本为主.

比如:在以上案例中, mynuget 即将发布的版本是 v4.0.0.0 , 它将在 CI 环境中被打包成 v4.0.0.0 版本,并推送到 nuget 服务器上.

注意事项

  • 您的 CHANGELOG.md 节点名称必须与您工程文件中打包名匹配, 否则单元测试将不会推送这个包,实际上它也找不到这个包.
  • 可重复推送, 管道功能会检测包版本, 在没有高版本时它将不会推送到服务器.
  • 如果您发布的 CHANGELOG.md 中, 有多个包,但只有一个包能成功推送, 那么管道也会标识成功.

注意 CHAMGELOG.md 改完之后推送到主分支上. 如果需要更改触发条件, 配置文件在.github\workflows\release.yml

发布功能:

1. 发布 github release 信息

管道将根据 CHANGELOG.md 文件的节点版本记录自动发布 release 信息. 请将之前的版本放在注释里或者归档到其他地方,否则发新版时将会携带旧版本的信息.

重复触发管道不会有异常和例外情况,允许重复触发,每次重复触发都将会更新 release.

2. 推送 nuget

管道将根据 CHANGELOG.md 文件最后一个节点, 自动发布 nuget 包(含符号).

重复触发管道不会有异常和例外情况, 允许重复触发.

3. 归档计划

将当前的 {项目名}_VNext 计划归档到具体版本计划, 然后创建一个新的 {项目名}_VNext 计划.

重复触发管道不会有异常和例外情况, 当已存在归档计划时,管道将不会继续运行.

注意,多次触发并不会产生并发问题, 该管道功能中, 3个功能为并发执行, 但多管道运行需要排队.

4. 覆盖率文件上传

覆盖率文件属于同时运行的另一个管道,它将根据 project.yml 节点配置生成覆盖率配置文件.

同为 test 节点, 与单元测试不同, 配置覆盖率上传的选项为: trigger_codecov, 设置为 true 即可.

如果您的覆盖率文件生成需要特定的.NET环境, 您可以在 .github\NMS_TEMPLATE\codecov.yml.template 中进行配置.

学习与使用

1. 将项目 fork 到你的仓库中, 然后 Setting 作为模板.

2. 文章导航

基于 Github 平台的 .NET 开源项目模板 - 发布与归档 相关的更多相关文章

  1. 基于 Github 平台的 .NET 开源项目模板. 嘎嘎实用!

    简介 大家好,为了使开源项目的维护和管理更方便一些,出于个人需求写了一款开源项目的模板,该模板基于 Github 平台,并使用 .NET 来实现管道功能. 在接受过实战检验后, 于今天开源, 项目地址 ...

  2. GitHub Android 最火开源项目Top20 GitHub 上的开源项目不胜枚举,越来越多的开源项目正在迁移到GitHub平台上。基于不要重复造轮子的原则,了解当下比较流行的Android与iOS开源项目很是必要。利用这些项目,有时能够让你达到事半功倍的效果。

    1. ActionBarSherlock(推荐) ActionBarSherlock应该算得上是GitHub上最火的Android开源项目了,它是一个独立的库,通过一个API和主题,开发者就可以很方便 ...

  3. GitHub 优秀的 Android 开源项目(转)

    今天查找资源时看到的一篇文章,总结了很多实用资源,十分感谢原作者分享. 转自:http://blog.csdn.net/shulianghan/article/details/18046021 主要介 ...

  4. GitHub 优秀的 Android 开源项目

    转自:http://blog.csdn.net/shulianghan/article/details/18046021 主要介绍那些不错个性化的View,包括ListView.ActionBar.M ...

  5. 盘点 Github 所用到的开源项目

    http://www.php100.com/html/it/mobile/2014/0401/6736.html 在致力于开源事业的同时,Github也使用一些非常优秀的开源项目的来打造自己的平台与服 ...

  6. 【转】GitHub 优秀的 Android 开源项目

    转自:http://blog.csdn.net/shulianghan/article/details/18046021 主要介绍那些不错个性化的View,包括ListView.ActionBar.M ...

  7. GitHub优秀的Android 开源项目

    GitHub上优秀Android开源项目 转载自 : http://my.eoe.cn/sisuer/archive/3348.html http://my.eoe.cn/sisuer/archive ...

  8. 【Android 应用开发】GitHub 优秀的 Android 开源项目

    原文地址为http://www.trinea.cn/android/android-open-source-projects-view/,作者Trinea 主要介绍那些不错个性化的View,包括Lis ...

  9. [转]GitHub 优秀的 Android 开源项目

    GitHub 优秀的 Android 开源项目 主要介绍那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageV ...

  10. github上有android开源项目

    下面是一些比较好的开源项目,总共分为5大类,也许对某一些人有用,有些项目也许将来某一天对自己也有用,所以整理到此,希望对大家有帮助.首先声明非原创,这篇blog的目的是分享给那些可能需要的人. htt ...

随机推荐

  1. 关于phpstudy小坑 经典数据库报错 1044

    经典数据库报错  1044   权限问题 一个很经典的问题 使用的集成环境的phpstudy ,  一直都挺好的  但是每次删除后不能创建同名的数据库   最后发现原来默认的只有一个库  在这个库下面 ...

  2. 我恨 gevent

    报错了一晚上,最后发现是 python 版本不对.3.11,3.12,3.8,3.10 试了个遍,最后 3.10 终于编译通过了‍ 还有这个 greenlet,每次都是它和 gevent 合着来恶心我 ...

  3. Postman Code Java-Unirest 代码的依赖

    本来是Postman的Code直接使用的,结果根据这个名字 Unirest,搜出来了很多依赖,使用了排名第一的, https://search.maven.org/search?q=Unirest 结 ...

  4. 淘宝开放平台接口出租,top平台接口出租,订单R2权限出租,淘宝开放平台R2权限,淘宝开放平台进存销应用出租,淘宝开放平台API出租,TOP平台API出租,淘宝API出租

    淘宝开放平台  open.taobao.com 早在 2016年4月已经关闭erp标签的应用申请了,订单管理标签也关闭了. 这会儿目前肯定是申请不到带有R2权限的订单应用了,要做类似打单软件.订单同步 ...

  5. 2019牛客暑期多校训练营(第四场)J-free(分层图最短路)

    >传送门< 题意:给你n个城市,m条道路,经过每一条要花费这条路的代价,现给你k个机会,使得最多k条路的代价为0,问从起点s到终点t花费的最少代价 思路:分层图最短路经典裸题 方法一 Co ...

  6. 全网最适合入门的面向对象编程教程:55 Python字符串与序列化-字节序列类型和可变字节字符串

    全网最适合入门的面向对象编程教程:55 Python 字符串与序列化-字节序列类型和可变字节字符串 摘要: 在 Python 中,字符编码是将字符映射为字节的过程,而字节序列(bytes)则是存储这些 ...

  7. Java日期时间API系列20-----Jdk8中java.time包中的新的日期时间API类,ZoneId时区ID大全等。

    Java日期时间API系列19-----Jdk8中java.time包中的新的日期时间API类,ZonedDateTime与ZoneId和LocalDateTime的关系,ZonedDateTime格 ...

  8. 2022年 GOPS 全球运维大会(上海站)资料分享

    2022年 GOPS 全球运维大会(上海站)主题为"XOps 风向标",共分为16个专场,主要侧重方向是运维.DevOps.AIOps.DevSecOps.云原生.研发效能.可观测 ...

  9. TX御加固脱壳

    示例APP某小说 其实脱这个有好几个方法,我使用了两个方法都可以脱掉. 首先使用Y佬的APK测试: 上传文件后经过等待提示任务成功,把给的ZIP包下载下来. 解压后得到两个文件,txt文件是脱壳后的a ...

  10. Vue3中的新的内置组件

    在vue2中的内置组件: 动态路由中的 component :作用:动态显示路由的挂载点,使用 is 属性动态显示组件 : keep-alive :作用:使被包裹的组件保留状态,避免被重新渲染 : 路 ...