美文网首页C#.Netcore.NET
使用Azure Pipelines发布Nuget Package

使用Azure Pipelines发布Nuget Package

作者: Weidaicheng | 来源:发表于2018-12-03 15:37 被阅读1次

本文介绍如何使用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.cs
namespace Aquarius.SayHello
{
    public class Talk
    {
        public static string Hello()
        {
            return "Hello";
        }
    }
}
//Talk_Test.cs
using 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.cs
namespace Aquarius.SayHello
{
    public class Talk
    {
        public static string Hello()
        {
            return "Hello";
        }

        public static string Hi()
        {
            return "Hi";
        }
    }
}
//Talk_Test.cs
using 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
新的包也已经上传。

相关文章

网友评论

    本文标题:使用Azure Pipelines发布Nuget Package

    本文链接:https://www.haomeiwen.com/subject/whuycqtx.html