1.简单介绍
Azure Devops是微软提供的辅助软件的开发,测试,部署以及计划和进度跟踪的平台,通过Azure Devops可以使开发者,项目经理,运维人员在软件的整个生命周期中更紧密地合作,同时借助Continuous Integration(简称CI)和Continuous Deployment(简称CD)的功能,公司或者组织可以更快速地研发和变更软件,从而实现快速迭代。
当前Azure Devops的CICD功能在微软的很多平台上进行了集成,
比如Microsoft Fabric中,

或者在Power Platform中,

这边将尝试在Azure Devops平台中使用一下self-hosted Windows agent
2.具体说明
2.1 准备项目
这边打算基于Asp.Net Core WebApi模板(.NET9)制作项目,然后发布到Github public repository中,后续Azure Devops的Pipeline可以连接到这个repository的。
2.1.1 制作项目
假定已经制作了一个.NET9 WebApi项目,如下图

2.1.2 发布项目
这边将项目从VSCode Push到Github public repository中
- 在VSCode打开项目,在Souce Control界面中,点击Publish to Github按钮,

- 可能会弹出如下的窗口,点击Authorize Visual-Studio-Code按钮即可,

- 在VSCode的上方会弹出如下下拉框,选择Publish to Github public repository选项,

4)最后在Github中就出现了项目了

2.2 Azure Devops操作
2.2.1 创建项目
- 打开Azure Devops平台,点击New project

- 设定 Project name, 同时Visibility栏中选择Public,最后点击Create按钮,

3)最后创建的project如下图所示,

2.2.2 创建Agent
- 点击Azure Devops左下角的Organization settings,

- 点击左侧菜单中的Agent pools,在右侧的面板中点击Add pool进行Agent pool的创建,


- 在新建的agent pool中,点击Agents tab, 然后点击New agent按钮,

4)在弹出的窗口中按照自己的系统类型点击Download按钮,同时按照界面上的指导进行配置,

note, 下载好agent package文件后,需要进行一下配置,其中会使用到Personal access token,这个token的获取方式如下,
点击Azuer Devops右上角的User Settings图标,然后在下拉菜单中选择Personal access tokens,

在出现的Personal Access Tokens界面中,点击New Token按钮进行一下创建即可,

5)安装和配置好agent后,在本地启动一下agent

note, PowerShell需要以管理员身份来运行的,
6)在agent pool的 Agents tab对应的面板中出现了新建的agent了,

2.3 创建和运行Pipeline
- 在Azure Devops对应Project中,点击左侧的Pipelines选项,然后再右侧面板中点击Create Pipeline按钮

2)在出现的 Souce code配置中,选择GitHub选项

3)选择一下之前publish到的Github Repository

- 在弹出的Approve & Install Azure Pipelines 窗口中,点击Approve & Install按钮

- 在Configure your pipeline面板中,选择ASP.NET

- 接着会出现Pipeline的YAML文件,点击Save and run按钮

在Azure Devops的Pipeline中可以配置很多的用于Build,Test, Deployment的task,

7)可以看到有一个Job处于Quened的状态了

8)可以根据需要对pipeline进行进一步配置并运行,如果agent运行正常,则最后job的状态是Success

同时之前启动self-hosted agent的PowerShell命令行中,也有提示的

有了Self-hosted Windows agent,就可以将Pipeline中的agent job跑在本地的计算机中了。
3.总结
本文简单记录了一下在Azure Devops Pipeline中使用Self-hosted Windows agent的过程,Pipeline更加详细的内容还可以参考MS Learn的文章Azure Pipelines。除了可以使用Azure Devops来实现项目的Continuous Integration和Continuous Deployment外,还可以使用Jenkins, Github Actions等工具,随着大语言模型使用的普及,这些平台中也加入了更多与AI相结合的功能了。
如果本文哪里有错误,麻烦告之,谢谢谢谢!