Azure Devops - 尝试一下在Pipeline中使用Self-hosted Windows agent
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中
1) 在VSCode打开项目,在Souce Control界面中,点击Publish to Github按钮,
2) 可能会弹出如下的窗口,点击Authorize Visual-Studio-Code按钮即可,
3) 在VSCode的上方会弹出如下下拉框,选择Publish to Github public repository选项,
4)最后在Github中就出现了项目了
2.2 Azure Devops操作
2.2.1 创建项目
1) 打开Azure Devops平台,点击New project
2) 设定 Project name, 同时Visibility栏中选择Public,最后点击Create按钮,
3)最后创建的project如下图所示,
2.2.2 创建Agent
1) 点击Azure Devops左下角的Organization settings,
2) 点击左侧菜单中的Agent pools,在右侧的面板中点击Add pool进行Agent pool的创建,
3) 在新建的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
1) 在Azure Devops对应Project中,点击左侧的Pipelines选项,然后再右侧面板中点击Create Pipeline按钮
2)在出现的 Souce code配置中,选择GitHub选项
3)选择一下之前publish到的Github Repository
4) 在弹出的Approve & Install Azure Pipelines 窗口中,点击Approve & Install按钮
5) 在Configure your pipeline面板中,选择ASP.NET
6) 接着会出现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相结合的功能了。
如果本文哪里有错误,麻烦告之,谢谢谢谢!