ITPub博客

首页 > IT职业 > IT生活 > 使用Azure Pipelines发布Nuget Package

使用Azure Pipelines发布Nuget Package

IT生活 作者:freefly 时间:2021-09-09 10:19:30 0 删除 编辑

本文介绍如何使用Azure Pipelines从Github发布Nuget包。

1、Install Azure Pipelines

点击进入GitHub Marketplace


图片描述

github.png


找到Azure Pipelines


图片描述

marketplace.png


点击安装,之后会登录微软账户,因为我已经安装过所以不再展示详细安装步骤,根据提示继续即可

图片描述

install.png

2、创建测试项目

创建一个类库项目,一个XUnit单元测试项目(前边的前缀主要是为了不重名,不然上传package会报错,当然CI的时候可以修改)


图片描述

project.png


添加如下代码

//Talk.csnamespace Aquarius.SayHello
{    public class Talk
    {
        public static string Hello()
        {            return "Hello";
        }
    }
}
//Talk_Test.csusing Xunit;namespace Aquarius.SayHello.Test
{    public class Talk_Test
    {
        [Fact]        public void Talk_Should_Be_Hello()
        {
            var result = Talk.Hello();

            Assert.Equal("Hello", result);
        }
    }
}

创建一个新项目,名字叫 Aquarius.SayHello,并确保下边的钩保持选中

图片描述

new repo.png


提交代码

图片描述

push code to github.png


其中.gitignore可以忽略,也可以使用git可视化工具或VS中的Git集成进行本步操作

图片描述

repo.png


push成功之后可以看到代码已经存在


3、集成Azure Pipelines

前往Azure DevOps,创建一个新的项目

图片描述

Azure DevOps.png


图片描述

new project.png


点击Pipelines

图片描述

Pipelines.png


创建一个新的pipeline
选择github

图片描述

source.png


模板选择ASP.NET Core

图片描述

template.png


将最后两个publish的删除,保持如下:

图片描述

remove publish.png


添加一个.Net Core并进行如下设置

图片描述

add .net core.png


图片描述

pack.png


添加一个nuget并进行如下设置

图片描述

add nuget.png


图片描述

push.png


在进行下一步之前先去Nuget创建一个apikey,并复制

图片描述

apikey.png


添加一个NuGet server并使用刚才创建的key

图片描述

Add nuget server.png


Feed URL:https://api.nuget.org/v3/index.json
下一步开启CI

图片描述

enable CI.png


最后一步保存并编译

图片描述

save&queue.png


编译结果以及Nuget package

图片描述

build result.png


图片描述

package.png


新的包已经出现(等一段时间就会出现在Published分类中)


4、自动编译

修改代码并提交,如下:

//Talk.csnamespace Aquarius.SayHello
{    public class Talk
    {
        public static string Hello()
        {            return "Hello";
        }        public static string Hi()
        {            return "Hi";
        }
    }
}
//Talk_Test.csusing Xunit;namespace Aquarius.SayHello.Test
{    public class Talk_Test
    {
        [Fact]        public void Talk_Should_Be_Hello()
        {
            var result = Talk.Hello();

            Assert.Equal("Hello", result);
        }

        [Fact]        public void Talk_Should_Be_Hi()
        {
            var result = Talk.Hi();

            Assert.Equal("Hi", result);
        }
    }
}

图片描述

commit & push.png


图片描述

CI build.png


触发自动编译并通过


图片描述

nuget package.png



作者:Weidaicheng
链接:https://www.jianshu.com/p/882a1336e458


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/1064/viewspace-2820196/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-04-15

  • 博文量
    73
  • 访问量
    663