继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

使用Azure Pipelines发布Nuget Package

慕虎7371278
关注TA
已关注
手记 1250
粉丝 203
获赞 873

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

1、Install Azure Pipelines

点击进入GitHub Marketplace


webp

github.png


找到Azure Pipelines


webp

marketplace.png


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

webp

install.png

2、创建测试项目

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


webp

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,并确保下边的钩保持选中

webp

new repo.png


提交代码

webp

push code to github.png


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

webp

repo.png


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


3、集成Azure Pipelines

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

webp

Azure DevOps.png


webp

new project.png


点击Pipelines

webp

Pipelines.png


创建一个新的pipeline
选择github

webp

source.png


模板选择ASP.NET Core

webp

template.png


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

webp

remove publish.png


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

webp

add .net core.png


webp

pack.png


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

webp

add nuget.png


webp

push.png


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

webp

apikey.png


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

webp

Add nuget server.png


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

webp

enable CI.png


最后一步保存并编译

webp

save&queue.png


编译结果以及Nuget package

webp

build result.png


webp

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);
        }
    }
}

webp

commit & push.png


webp

CI build.png


触发自动编译并通过


webp

nuget package.png



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


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP