手记

使用Azure Pipelines发布Nuget Package

本文介绍如何使用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


0人推荐
随时随地看视频
慕课网APP