介绍

在DevOps的现代时代,自动化已变得越来越流行,而创建/上传软件包已成为过去。而且,软件包的数量在开发人员的生活中日益增加。因此,在NuGet.org上手动构建、发布和部署所有软件包并不容易。我们可以手动管理几个软件包(1-2),但是如果我们需要管理更多的软件包(5,10,依此类推),那么它将变得很繁琐。

使用GitHub的actions,我们可以使此过程完全自动化。

这是逐步指导如何自动将程序包生成、发布和部署(发布)到NuGet。

步骤

第1步

GitHub创建一个新的存储库并上传您的代码。

第2步

创建一个GitHub Action,使构建和发布变得容易。当我们创建工作流程时,它将创建一个.yaml文件。在此示例中,我将为.NET Core(C#)创建工作流。

第3步

上一步创建.NET Core环境的工作流。它具有预定义的结构,这是构建和测试的良好起点。它具有以下示例代码。

name: .NET Coreon:push:branches: [ master ]pull_request:branches: [ master ]jobs:build:runs-on: ubuntu-lateststeps:- uses: actions/checkout@v2- name: Setup .NET Coreuses: actions/setup-dotnet@v1with:dotnet-version: 3.1.101- name: Install dependenciesrun: dotnet restore- name: Buildrun: dotnet build --configuration Release --no-restore- name: Testrun: dotnet test --no-restore --verbosity normal

第4步

上面的默认代码足以构建和测试代码。但是我们需要在NuGet.org上发布该软件包。为此,我们需要在.yaml文件中添加一个发布步骤。

注意:我添加了工作目录标签,因为在同一解决方案中有多个项目。

- name: Publishuses: brandedoutcast/publish-nuget@v2.5.2with:PROJECT_FILE_PATH: Extensions/Extensions.csprojNUGET_KEY: ${{secrets.NUGET_API_KEY}}

brandedoutcast创建了可重用的GitHub Action以发布NuGet软件包。此操作将查找对.csproj文件中的<version>{}</version>标记的更改。

在NuGet.org上进行部署时,我们需要一个API密钥来对此进行验证。为此,我们使用了变量。

第5步

从NuGet.org创建API密钥,然后将其添加到GitHub存储库中的设置 >Secrets下。创建一个变量名“NUGET_API_KEY”。

第6步

保存.yaml文件并开始操作。您将看到该解决方案将构建并发布在NuGet.org

第7步

在NuGet.org上打包。

摘要

每当我们更新软件包并在master分支中推送代码时,GitHub action都会自动启动并将软件包推送到NuGet.org。现在,我们无需手动管理软件包,也无需担心软件包的数量。

使用Github Actions构建、发布和部署NuGet软件包相关推荐

  1. GitHub Actions构建镜像并部署服务

    目的 通过GitHub的Actions来(白嫖)部署.Net服务到阿里云服务器. 环境准备 需要一个阿里云服务器并且该服务器还安装了docker环境,如果环境安装不清楚可以查看之前的文章. 创建镜像仓 ...

  2. vuepress-theme-reco + Github Actions 构建静态博客,部署到第三方服务器

    最新博客链接 Github链接 查看此文档前应先了解,vuepress基本操作 参考官方文档进行配置: vuepress-theme-reco VuePress SamKirkland / FTP-D ...

  3. Linux下Jenkins与GitHub自动构建NetCore与部署

    今天我们来谈谈NetCore在Linux底下的持续集成与部署.NetCore我就不多介绍了,持续集成用的是Jenkins,源代码管理器用的是GitHub.我们就跟着博文往下走吧. 1.Linux环境 ...

  4. 使用 GitHub Actions 在 EKS 上部署 InterSystems IRIS 解决方案

    假设你想了解 InterSystems 在数据分析方面能提供什么. 你研究了理论,现在想要进行一些实践. 幸运的是,InterSystems 提供了一个项目:Samples BI,其中包含了一些很好的 ...

  5. 通过GitHub Actions构建和部署Jekyll网站

    目录 我已经有什么 使用Github动作创建相同的内容 a)构建Jekyll站点 b)通过SSH连接到我的服务器并部署 奖励:在页脚中显示提交ID/内部版本号 在本文中,您将学习如何构建Jekyll站 ...

  6. GitHub Actions 部署 VuePress 文档

    GitHub Actions 是 GitHub 的持续集成服务,于2018年10月推出.这些天,我一直在试用,觉得它非常强大,有创意,比 Travis CI 玩法更多. 本文是一个简单教程,演示如何使 ...

  7. 使用 GitHub Actions 来构建应用程序

    使用 GitHub Actions 构建应用程序 写在前面 开始 Action 环境变量/加密密码 默认环境变量 自定义环境变量 使用环境变量 其他类型变量 加密密码 创建加密密码 使用加密密码 学完 ...

  8. Vuepress + GitHub Actions实现文档博客自动部署

    说明 接着我上一篇文章,已经使用vuepress+github pages搭建好了自己的文档博客,并且可以在本地打包上传后就可以在pages上查看更新内容.但是有1个比较明显的缺点:打包速度并不快!! ...

  9. GitHub Actions 入门教程

    https://jiangren.com.au/blog/github-actions 一.GitHub Actions 是什么? 大家知道,持续集成由很多操作组成,比如抓取代码.运行测试.登录远程服 ...

最新文章

  1. 【python语言基础】疑难点整理2
  2. 2021算法竞赛入门班第八节课【数学】习题
  3. excel层级数据获取_量化获取股票市场及金融财经数据到Excel
  4. xss-lab靶场通关writeup(1~6.......在更新)
  5. jQuery学习之---效果
  6. pythonunittest模块_python单元测试模块unittest
  7. 基于NFC的Android读写软件,基于Android的NFC商场助手软件的设计与实现
  8. 20120329_dmp 文件导入ibm p750-2个LPAR 小机知识点
  9. 人工智能来了 微智全景首款刷脸支付终端亮相
  10. 嵌入式linux保存参数数据
  11. 微信、支付宝分账~进行中
  12. IFD-x 微型红外成像仪探测距离说明
  13. js实现每次调用一个函数自动加1
  14. 如何将大量图片文件合并成一个*.bin文件
  15. Jquery实现即点即改
  16. web测试与APP测试方法总结
  17. 腾讯云LAMP搭建Discuz 域名解析
  18. MTK Http Socket GPRS以及解析器和下载器概述
  19. Dz经典加密解密方法。
  20. C/C++ 木材加工

热门文章

  1. sql中exec是什么意思_SQL 中为什么经常要加NOLOCK?
  2. sql 相加_Java整数相加溢出怎么办?Java 8 还是厉害!
  3. 在计算机系统中 外存储器必须通过,大学计算机基础第4章作业.doc
  4. # 根据三边求角度_七年级数学:怎么求旋转射线构成的角度?掌握这种方法口算出结果...
  5. python抓取网站图片_利用python抓取网站图片
  6. diff算法_Virtual Dom和Diff算法
  7. flask如何查询mysql_bootstrap+flask+mysql实现网站查询
  8. spring3.0 aop 获取 ibatis 执行的语句_Mybatis 源码分析:执行器
  9. 安卓rtmp推流app_同城直播电商APP小程序平台开发
  10. 年底,喜庆红色中国风C4D电商促销背景,美工收好!