
# 使用Windows自定义执行机执行构建任务（自定义执行机/图形化构建）
#### 应用场景
针对不同的构建业务场景，某些构建程序（例如基于C/C++、C#等应用程序）需要基于Windows操作系统进行构建。本示例将指导用户如何使用自有的Windows执行机执行构建。
本实践需要依赖使用的其他服务如下：
[代码托管服务](https://support.huaweicloud.com/codeartsrepo/index.html)，用于存储实践中项目所使用的代码。
#### 约束限制
需已具备CodeArts Repo服务的操作权限，具体操作可参考[授权使用CodeArts Repo服务](https://support.huaweicloud.com/usermanual-codeartsrepo/codeartsrepo_03_0132.html)。
#### 资源和成本规划
本实践需购买ECS作为自定义执行机，关于ECS的购买费用可参考[价格计算器](https://www.huaweicloud.com/pricing/calculator.html#/ecs)。
 #### 前提准备
已参考[自定义购买ECS](https://support.huaweicloud.com/usermanual-ecs/ecs_03_7002.html)购买Windows服务器。服务器规格参考如下：
- CPU架构：X86
- 实例：通用计算型x14U8G
- 操作系统：Windows Server 2022 标准版 64位 中文_40GB
  图1购买后服务器资源示例   
  ![](https://support.huaweicloud.com/bestpractice-codeci/zh-cn_image_0000002300477020.png) 
 
#### 操作流程
表1操作流程 
| **流程**                                                             | **说明**                                                                                                                                                    |
|:---|:---|
| [Windows服务器安装JDK编译工具]  | JDK（Java Development Kit）是用于开发Java应用程序的软件开发工具包。它包含了Java运行环境（JRE）、Java工具和Java基础类库。使用JDK，开发者可以编写、编译和执行Java程序。关于JDK的更多详情请参考[OpenJDK](https://jdk.java.net/)。 |
| [Windows服务器安装GIT编译工具]  | Git是一个分布式版本控制系统，主要用于跟踪计算机文件集的变化，特别是软件开发过程中的代码变化。使用Git，开发者可以记录项目的历史版本、协作开发、回溯到之前的项目状态等。关于Git的更多详情请参考[Git官方网站](https://git-scm.com/)。                       |
| [新建项目]               | 为本实践新建项目。                                                                                                                                                 |
| [新建Windows自定义执行机资源池] | 为本实践新建所需的Windows自定义执行机资源池并创建代理。                                                                                                                           |
| [新建CodeArts Repo代码仓] | 为本实践新建存储代码的代码仓。                                                                                                                                           |
| [新建并执行编译构建任务]           | 为本实践新建构建任务，包括"执行Shell命令"构建步骤。                                                                                                                             |
| [查看构建结果]               | 为您介绍通过查看构建日志确认该实践的构建任务使用的Windows执行机。                                                                                                                      |
   
 #### Windows服务器安装JDK编译工具
1. 在弹性云服务器列表页，单击[前提准备]中购买的服务器所在行的"远程登录"。
2. 选择VNC登录方式。 
   图2VNC登录   
   ![](https://support.huaweicloud.com/bestpractice-codeci/zh-cn_image_0000002063640542.png)
   
   
3. 登录成功后，输入[购买Windows服务器]时预置的密码，登录到Windows系统桌面。
4. 浏览器地址栏输入"https://www.java.com/zh-CN/"，访问该网站。
5. 在浏览器页面单击"下载Java"。 
   图3下载Java   
   ![](https://support.huaweicloud.com/bestpractice-codeci/zh-cn_image_0000002103761049.png)
   
   
6. 在下载页面，单击"Download Java"下载安装包。 
   图4下载安装包   
   ![](https://support.huaweicloud.com/bestpractice-codeci/zh-cn_image_0000002103921169.png)
   
   
7. 下载到本地后，双击下载的可执行文件"jre-8u421-windows-x64"，在弹出的窗口中单击"安装"。
8. 安装完成后，打开"Windows PowerShell"工具，输入java -version命令，按回车执行，输出如[图5 Java安装完成]所示的Java版本信息，代表安装完成。
   
   图5Java安装完成   
   ![](https://support.huaweicloud.com/bestpractice-codeci/zh-cn_image_0000002067972158.png)
   
   
 
 #### Windows服务器安装GIT编译工具
1. 浏览器地址栏输入"https://git-scm.com/downloads"，访问该网站。
2. 单击"Download for Windows"。
   图6下载   
   ![](https://support.huaweicloud.com/bestpractice-codeci/zh-cn_image_0000002068132658.png) 
3. 下载适合用户系统的Git安装程序，当前案例单击"64-bit Git for Windows Setup"，下载到本地。
   图7选择版本   
   ![](https://support.huaweicloud.com/bestpractice-codeci/zh-cn_image_0000002103772857.png) 
4. 双击下载的可执行文件"Git-2.46.2-64-bit"。
5. 根据界面提示单击"Next"，直至安装完成。
6. 安装后，在任意目录按下鼠标右键，选择"Open Git Bash here"。
   图8安装Git   
   ![](https://support.huaweicloud.com/bestpractice-codeci/zh-cn_image_0000002255437684.png) 
7. 在弹出的命令窗口中输入"git -v"，如图所示显示已安装的Git版本号。
   图9安装完成   
   ![](https://support.huaweicloud.com/bestpractice-codeci/zh-cn_image_0000002290058881.png) 
 
 #### 新建项目
1. 使用华为云账号[登录华为云控制台页面](https://console.huaweicloud.com/console)。
2. 单击页面左上角![](https://support.huaweicloud.com/bestpractice-codeci/zh-cn_image_0000002051251774.png)，在服务列表中选择"开发与运维 \> 华为云码道 CodeArts"。
3. 单击"立即使用"，进入CodeArts服务首页。
4. 在首页单击"新建项目"，选用"Scrum"项目模板。
5. 项目名称填写"build-bestpractice"，其他保持默认即可。
6. 单击"确定"后，进入到"build-bestpractice"项目下。
 
 #### 新建Windows自定义执行机资源池
1. 在导航栏中单击用户名![](https://support.huaweicloud.com/bestpractice-codeci/zh-cn_image_0000002273196596.png)，选择"租户设置"。
2. 选择"资源池管理 \> 资源池"。
3. 单击"新建资源池"，在弹出的窗口中参考[表2]配置参数后，单击"保存"。
   
    表2资源池配置参数说明 
   | **参数名称**         | **参数说明**                                |
   |:---|:---|
   | 资源池名称            | 资源池的名称，根据需要自定义。例如：windows。              |
   | 资源池类型            | 选择WINDOWS。执行任务时将拉起一个WINDOWS容器，任务在容器中运行。 |
   | 资源池描述            | 根据需要输入资源池描述。可不填写。                       |
   | 资源池可以被租户下所有子用户使用 | 勾选后，此资源池可以被当前租户下所有子用户使用。可不勾选。           |
      
   
   
4. 单击新建的资源池名称"windows"，进入到资源池配置页面。
5. 单击"新建代理"，在弹出的窗口中，参考[表3]配置代理信息，其他参数项保持默认即可。
   
    表3新建代理参数说明 
   | **参数**     | **说明**                                                                                  |
   |:---|:---|
   | 是否安装Docker | 勾选此项，配需安装Docker。                                                                        |
   | 自动安装Docker | 打开开关，自动安装Docker。                                                                        |
   | AK         | 参考[获取AK/SK](https://support.huaweicloud.com/devg-apisign/api-sign-provide-aksk.html)获取。 |
   | SK         | 参考[获取AK/SK](https://support.huaweicloud.com/devg-apisign/api-sign-provide-aksk.html)获取。 |
   | 代理名称       | 自定义代理名称。例如：agent_1727592540799。                                                         |
   | 代理工作空间     | 填写代理工作空间，需符合标准的linux目录格式。例如：/opt/agent_1727592540799。                                   |
      
   
   
6. 勾选协议，依次单击"生成命令"和"复制命令"。单击"关闭"。
   
   图10新建代理   
   ![](https://support.huaweicloud.com/bestpractice-codeci/zh-cn_image_0000002336970973.png)
   
   
7. 根据"步骤三"提示，在弹性云服务器列表页，通过"VNC登录方式"登录[前提准备]中购买的服务器，在"CMD"命令窗口执行[6]中复制的命令安装Agent，如[图11 Agent安装成功]所示，表示Agent安装成功。
   
   图11Agent安装成功   
   ![](https://support.huaweicloud.com/bestpractice-codeci/zh-cn_image_0000002309430009.png)
   
   
8. 在代理列表页面，单击"刷新列表"，后台自动同步信息后，代理列表中会增加一条代理执行机信息。代理执行机的代理别名为"agent_1727592540799-JEyZiq7Ytw"。 
   图12代理执行机   
   ![](https://support.huaweicloud.com/bestpractice-codeci/zh-cn_image_0000002274514286.png)
   
   
 
 #### 新建CodeArts Repo代码仓
1. 在导航栏中选择"服务 \> 代码托管"，进入代码托管服务首页。
2. 单击"新建仓库"，选择"普通仓库"，单击"下一步"。
3. 在新建仓库页面，"代码仓库名称"填写为"simple_repo"，其他参数保持默认即可，单击"确定"。
 
 #### 新建并执行编译构建任务
1. 在页面导航栏中选择"持续交付 \> 编译构建"。
2. 单击"新建任务"，根据[表4]填写参数信息，单击"下一步"。
   
    表4基本信息配置 
   | **参数** | **说明**                                                                                       |
   |:---|:---|
   | 任务名称   | 自定义任务名称，例如：windows_task。                                                                     |
   | 代码源    | 选择"Repo"。拉取CodeArts Repo代码仓中的代码进行编译构建。                                                       |
   | 代码仓    | 选择[新建CodeArts Repo代码仓]中新建的代码仓库名称"simple_repo"。 |
   | 默认分支   | 选择默认"master"即可。                                                                              |
   | 任务描述   | 对该构建任务的描述。                                                                                   |
      
   
   
3. 选择"空白构建模板"模板，单击"确定"，进入构建步骤配置页面。
4. 参考[表5]配置"构建环境配置"步骤，其他参数保持默认即可，单击"保存并执行"。
   
    表5构建环境配置参数说明 
   | **参数**  | **说明**                                                                                     |
   |:---|:---|
   | 执行主机    | 选择自定义执行。                                                                                   |
   | 选择代理资源池 | 在下拉框中选择[新建Windows自定义执行机资源池]中新建的资源池"windows"。 |
      
   图13构建环境配置   
   ![](https://support.huaweicloud.com/bestpractice-codeci/zh-cn_image_0000002307878253.png)
   
   
5. 单击"点击添加构建步骤"按钮，添加"执行shell命令"步骤。
6. 选择"执行shell命令"步骤，在右侧的窗口输入命令**systeminfo** 。
   
   图14执行shell命令   
   ![](https://support.huaweicloud.com/bestpractice-codeci/zh-cn_image_0000002273202252.png)
   
   
7. 单击"保存并执行"，在弹出的窗口中单击"确定"，跳转到构建任务运行页面。
 
 #### 查看构建结果
1. 在"步骤日志"页签中，构建日志控制台滚动输出构建任务执行日志信息。如[图15]所示，表示本次构建任务使用的是[新建Windows自定义执行机资源池]中的代理机"agent_1727592540799-JEyZiq7Ytw"。
   
   图15构建日志   
   ![](https://support.huaweicloud.com/bestpractice-codeci/zh-cn_image_0000002308917485.png)
   
   
2. 单击"执行shell命令"，在构建日志控制台打印了**systeminfo** 命令执行的日志。如[图16]所示，打印了当前执行机的操作系统信息是Windows。
   
   图16执行shell命令日志   
   ![](https://support.huaweicloud.com/bestpractice-codeci/zh-cn_image_0000002308826897.png)
   
   
 
