利用FlubuCore用C#来写DevOps脚本的方法详解

2020-07-06 11:00:41王旭

FlubuCore 基于 MIT 协议开源,目前已经是 .NET Foundation 基金会项目成员,作者(Marko Zorec)也是我们 NCC 的核心项目成员之一。

现在你可以利用 C# 去编写构建和部署脚本,同时支持 .NET Framework 和 .NET Core,不需要再去学习其他工具或语言了,而且 FlubuCore 提供了一套 Fluent 式的 API,让你写起来根本停不下来。 看图:

香不香? 快去 Github 点个 Star 支持一下吧,你的一个小小的 Star 也是对整个 .NET 生态的贡献。

FlubuCore Getting Started

虽然 FlubuCore 提供的有中文的 Readme,不过我还是简单的带大家入个门吧。

1. 安装全局命令行工具

打开 CMD 执行一下命令:

dotnet tool install --global FlubuCore.GlobalTool

这个命令的主要作用是安装一个全局的命令行工具,持续集成的平台后续就可以利用 flube 这个命令行工具来执行C#自定义的脚本。

2. 新建一个空的解决方案

mkdir FlubuTest
cd FlubuTest
dotnet new sln
mkdir src
cd src
mkdir mywebapp
cd mywebapp
dotnet new webapp
dotnet sln ../../FlubuTest.sln add ./mywebapp.csproj

觉得麻烦的,Visual Studio 直接新建就可以搞定了。

3. 添加 Flubucore 构建项目

先切换到第2步的解决方案根目录 cd ../../,然后创建build的入口项目:

dotnet new -i FlubuCore.Template
dotnet new FlubuCore
dotnet sln FlubuTest.sln add ./BuildScript/BuildScript.csproj

将 FlubuCore 添加到解决方案主要是后续编写脚本的方便,借助于 VisualStudio 的智能提示等就像编写C#代码一样了,实际上就是C#代码, 当然也可以选择不添加到项目中。

最后的文件夹结构大概是这个样子的:

│──FlubuTest.sln
│
└──BuildScript
│  │ BuildScript.cs
│  │ BuildScript.csproj
└─src
 └─mywebapp
  │ appsettings.Development.json
  │ appsettings.json
  │ mywebapp.csproj
  │ Program.cs
  │ Startup.cs

4. 修改 BuildScript.cs 文件

打开 BuildScript/BuildScript.cs 然后将

context.Properties.Set(BuildProps.SolutionFileName, "Todo");

Todo 修改为解决方案的名字

context.Properties.Set(BuildProps.SolutionFileName, "FlubeTest.sln");

BuildProps 这个对象主要提供了在构建的过程中一些上下文信息,通过设置此对象你可以给flubu 提供更多信息以便于后续的使用等。

5. 开始使用

在项目根目录打开 cmd, 然后使用下面的命令来编译你的项目。

flubu compile

其中 compile 就是文件