• 沒有找到結果。

编辑/删除/复制/收藏构建任务_编译构建 CloudBuild_用户指南_构建任务_华为云

N/A
N/A
Protected

Academic year: 2022

Share "编辑/删除/复制/收藏构建任务_编译构建 CloudBuild_用户指南_构建任务_华为云"

Copied!
91
0
0

加載中.... (立即查看全文)

全文

(1)
(2)

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传 播。

商标声明

和其他华为商标均为华为技术有限公司的商标。

本文档提及的其他所有商标或注册商标,由各自的所有人拥有。

注意

您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或 特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或暗示的声 明或保证。

由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文 档中的所有陈述、信息和建议不构成任何明示或暗示的担保。

(3)

2 使用流程...4

3 构建任务...6

3.1 新建构建任务... 6

3.2 执行/禁用构建任务... 10

3.3 查看构建任务...10

3.4 编辑/删除/复制/收藏构建任务... 11

4 构建步骤...13

4.1 导读... 13

4.2 Maven 构建... 13

4.2.1 构建步骤:Maven 构建... 13

4.2.2 配置依赖仓库... 14

4.2.3 配置发布依赖包到私有依赖库...16

4.2.4 配置单元测试... 17

4.3 Android 构建... 19

4.4 Android APK 签名... 21

4.5 Npm 构建... 23

4.6 Gradle 构建... 24

4.7 SetupTool 构建... 25

4.8 PyInstaller 构建... 26

4.9 执行 shell 命令... 27

4.10 Gnu-arm 构建...27

4.11 Msbuild 构建...29

4.12 Cmake 构建... 33

4.13 Ant 构建... 34

4.14 Golang 构建... 35

4.15 Android-Ionic 构建... 36

4.16 Quickapp 快应用构建...38

4.17 制作镜像并推送到 SWR 仓库... 39

4.18 使用 SWR 公共镜像...41

4.19 使用 dockerHub 公共镜像... 43

4.20 上传软件包到软件发布库... 44

(4)

4.21 上传文件到 OBS... 46

4.22 执行 Docker 命令... 48

4.23 下载发布仓库包...51

5 代码源配置...54

5.1 背景... 54

5.2 使用 GitHub 仓库构建... 54

5.3 使用通用 Git 构建...57

5.4 使用码云仓库构建... 59

5.5 AccessToken 获取方式...61

6 资源池管理...66

6.1 新建资源池... 66

6.2 代理管理... 67

6.3 资源池详情... 70

6.4 权限管理... 70

6.5 操作历史... 71

6.6 在 Linux 上安装 JDK... 72

7 构建参数...73

8 文件管理...77

9 自定义构建环境... 82

10 使用鲲鹏环境构建...85

(5)

开通场景

在DevCloud支持的区域内,各区域独立开通购买、独立计费。

2020年10月16日前,未在DevCloud某个区域下产生过费用的用户,按照新版计费规 则,需在该区域开通/购买DevCloud后使用编译构建服务。

在该区域内产生过费用的用户,延续旧版计费规则,可参考开通按需在该区域开通编 译构建服务按需计费。

例如:

用户于2020年3月在“华北-北京四”购买了半年期的包月套餐。由于疫情影响业务,

套餐到期后关闭了DevCloud服务;2020年10月20日将重新启用DevCloud。

● 若用户仍使用“华北-北京四”,可以开通/购买旧版套餐,或单独开通编译构建 服务使用。

● 若用户使用其它区域,则需开通/购买DevCloud新版计费。

开通按需

开通服务需要您拥有租户帐号,或拥有Tenant Administrator权限的IAM用户帐号,配 置权限策略方法请参考创建用户组并授权。

步骤1 登录DevCloud控制台,在左侧导航选择“编译构建”,单击“开通按需”。

(6)

步骤2 查看并确认服务开通详情,单击页面右下角“立即开通”,在弹框中单击“确认”。

步骤3 页面右上角提示开通进行中,成功开通后系统自动返回控制台。

在“开通记录”页签可查看服务开通记录。

----结束

关闭服务

编译构建服务按构建时长每小时产生费用。为了避免不必要的计费,若您不再使用编 译构建服务,建议您关闭服务。

关闭服务后,构建任务会被删除,无法再进行构建,服务将停止计费。

步骤1 登录DevCloud控制台,在左侧导航中单击“编译构建”。

步骤2 选择“开通记录”页签,单击操作列“关闭服务”

(7)

页面提示“已成功关闭编译构建服务”,开通记录状态显示为“已关闭”。

----结束

(8)

2 使用流程

背景信息

编译构建服务(CloudBuild)为开发者提供配置简单的混合语言构建平台,实现编译 构建云端化,支撑企业实现持续交付,缩短交付周期,提升交付效率。支持编译构建 任务一键创建、配置和执行,实现获取代码、构建、打包等活动自动化,实时监控构 建状态,让您更加快速、高效地进行云端编译构建。

流程介绍

介绍编译构建基本操作流程。

2-1 编译构建基本操作流程

(9)

● 配置构建步骤:编译构建预置了丰富构建步骤,用户可以 根据需要自定义组合。

● 配置参数信息:详见构建参数。

执行任务 任务配置完成后,执行任务。

查看构建结果 任务执行完成后,可查看任务执行结果,详见查看构建任 务。

(10)

3 构建任务

3.1 新建构建任务

前提准备

● 已有可用项目,如果没有,请新建项目。

● 已在项目中新建可用代码仓库,如果没有,请新建代码仓库

选择代码源

1. 配置完基本信息,单击“下一步”,进入“选择代码源”页面。

2. 请根据需要选择代码源,并配置对应源码源信息。

3-1 选择代码源

源码源 描述

CodeHub 编译构建服务默认从代码托管拉取代码构建,请选择已经创建的 代码仓库及分支。

GitHub 对于托管在GitHub上的代码,可以使用GitHub连接实现代码拉 取,详见使用GitHub仓库构建。

通用Git 对于托管在其他服务上的代码,可以使用通用Git连接实现代码拉 取,详见使用通用Git构建。

码云 对于托管在码云上的代码,可以使用码云连接实现代码拉取,详 见使用码云仓库构建。

来自流水线 源码源如果选择来自流水线,则只能通过流水线驱动执行,不能 单独执行。

其中,CodeHub代码源可选择使用指定代码仓库Tag或CommitID构建,展开“高

(11)

说明

克隆深度是指距离最近一次提交的提交次数,该值越大,检出代码的时间越 长。深度为正整数,推荐最大深度为25。

例如:克隆深度输入5,那么在执行任务时,参数“Tag”填写距离最近提交的 前5个标签名中的任意一个都可以。

ii. 执行任务时,会出现弹窗,按需要输入Tag值,单击“确定”,即可启动 任务执行。

– 指定CommitID构建

CommitID是指提交代码(commit)时生成的编号,在代码仓库中显示如 下。

在编译构建任务中,可以通过指定CommitID来使用历史版本代码进行构建。

(12)

i. 选择“指定CommitID构建”,输入克隆深度,保存任务。

说明

克隆深度是指距离最近一次提交的提交次数,该值越大,检出代码的时间越 长。深度为正整数,推荐最大深度为25。

例如:克隆深度输入5,那么在执行任务时,参数“CommitID”填写距离最近 提交的前5个提交号中的任意一个都可以。

ii. 执行任务时,会出弹窗,按需要输入CommitID,单击“确定”,即可启 动任务执行。

选择构建模板

步骤1 配置完代码源,单击“下一步”,进入“选择构建模板”页面。

步骤2 选择适合自己项目的构建模板,单击“确定”;也可以不使用模板,直接创建。

步骤3 进入“构建步骤”页签,页面展示所选模板的默认步骤组合,单击 可根据需要添加 构建步骤,步骤配置请参考构建步骤。

系统预置的工具版本如果满足不了需求,可以使用SWR公共镜像或者使用dockerHub 公共镜像进行自定义环境构建。

(13)

步骤4 (可选)根据需要配置其他页签信息。

● “基本信息”页签修改任务名称、归属项目、任务描述。

● “源码选择”页签修改源码源、源码仓库、仓库分支、配置子模块自动更新等信 息。

子模块属于Git的一个概念,是为了解决代码仓库包含并使用其他项目代码仓库的 问题,详见子模块管理(Git Submodule操作)。

展开高级设置,可以看到“子模块(submodules)自动更新”开关,默认关闭。

打开开关,当代码仓库存在子模块时,系统在构建时会自动拉取子模块仓库的代 码;反之关闭,系统不会自动拉取子模块仓库的代码。

● “参数设置”页签配置执行任务时的自定义参数。

● “执行计划”页签配置定时执行计划。

步骤5 配置完所有信息,单击“新建”,完成任务创建。

----结束

(14)

3.2 执行/禁用构建任务

前提条件

● 编译构建任务已建立并具有权限。

● 项目创建者、项目经理及开发人员可以执行编译构建任务。

● 项目创建者和项目经理可以禁用编译构建任务。

执行任务

1. 在编译构建首页搜索目标任务。

2. 单击编译构建任务所在行 ,开始执行任务。

说明

如果构建任务配置了执行参数,将弹出执行参数提示框,根据需要设置执行参数值。

禁用任务

1. 在编译构建首页搜索目标任务。

2. 单击构建任务所在行的 ,在弹出的下拉列表选项选择“禁用”。

弹出任务禁用提示框,输入禁用原因,单击“确定”。

说明

编译构建任务被禁用后,构建任务名称后会出现“已禁用”标识,则不能再执行构建任 务;如需执行,请单击构建任务所在行的 ,在弹出的下拉列表选项选择“取消禁用”。

3.3 查看构建任务

1. 进入编译构建后,首页展示与当前用户相关的编译构建任务列表,列表项说明如 下:

参数项 说明

构建任务 编译构建任务名及所属项目名,单击任务/项目名称可进入到任 务/项目详情页面。构建成功标记为绿色、构建失败为红色、构建 中止为浅紫色、未构建为灰色。

最近一次执

行 最近一次执行的时间、所用仓库的分支、commitid等信息。

开始时间 &

执行时长

构建开始时间和构建所用时长。

操作 单击 展开下拉菜单(开始构建、编辑、复制、禁用、删除任 务)。

(15)

– 单击“下载构建包”,可以下载最近一次构建成功的包。

– 单击左上角仓库名称,可进入对应代码仓库页面。

如果在“源码选择”中没有添加源码仓库,则不显示仓库名称。

– 查看日志信息时,单击日志窗口右上角放大按钮,可最大化日志窗口;重新 单击放大按钮,可退出最大化。

– 单击左侧导航构建步骤节点(如“代码检出”),可以查看对应编译构建日 志。

3.4 编辑/删除/复制/收藏构建任务

编辑构建任务

前提条件

项目创建者和项目经理可以编辑构建任务。

操作步骤

1. 在编译构建任务列表搜索目标任务。

2. 单击编译构建任务所在行 ,进入“编译构建编辑”页面。

– “基本信息”页签,可修改任务名称和归属项目。

– “源码选择”页签,可修改源码源、源码仓库、分支等信息。

– “构建步骤”页签,可修改构建步骤、步骤参数。

– “参数设置”页签,可配置执行任务时的自定义参数。

– “执行计划”页签,可配置执行计划。

– “修改历史”页签,可查看构建任务的修改记录。

– “权限管理”页签,可配置不同角色的权限。

(16)

– “通知”页签,配置任务事件类型通知信息。

3. 根据需要选择需要页签并进行编辑,单击“保存”完成修改。

删除构建任务

前提条件

只有任务创建者、项目经理和项目创建者可以删除构建任务。

操作步骤

1. 在编译构建任务列表搜索目标任务。

2. 单击编译构建任务所在行 ,选择“删除任务”,请根据实际情况确定是否删除 对应构建任务。

复制构建任务

1. 在编译构建任务列表中搜索目标任务。

2. 单击构建任务所在行的 ,在弹出的下拉列表选项单击“复制”,进入“编译构建 复制”页面。

3. 根据需要修改任务信息,单击“复制”,即可复制该构建任务。

收藏构建任务

1. 在编译构建任务列表搜索目标任务。

2. 鼠标移至任务所在行,单击 ,图标变色即收藏成功。

3. (可选)再次单击 ,即可取消收藏。

说明

● 收藏构建任务后,该任务会在任务列表中置顶显示。

● 收藏构建任务后,会根据该任务设置的通知事件类型获取相应的通知。

(17)

4.1 导读

编译构建预置了丰富构建步骤,用户可以根据需要自定义组合。

如:maven构建,内置了maven、jdk、curl等工具,根据构建场景选择工具版本;如 果预置的工具版本满足不了用户需求,可以通过自定义Docker镜像,加入项目需要的 依赖和工具,将所需环境打包制作成Docker镜像并推送至SWR镜像仓库,并且可以随 用随取,快速构建部署,减少项目对运行环境的依赖,参考制作镜像并推动到SWR仓 库和使用SWR公共镜像。

4.2 Maven 构建

4.2.1 构建步骤:Maven 构建

背景信息

使用Apache Maven构建Java项目,主要包含以下特性:

● Maven构建命令:执行mvn package命令、mvn deploy命令或其他shell命令。

● 发布私有依赖包到私有依赖库:自动在pom文件增加deploy配置,配置后可使用 mvn deploy发布私有依赖包到私有依赖库。

● 自定义公有依赖仓库:支持使用非DevCloud提供的公开依赖仓库构建。

● 自定义私有依赖仓库:支持使用非DevCloud提供的私有依赖仓库构建。

● 配置单元测试报告:支持构建后查看junit单元测试报告。

配置说明

添加“Maven构建”构建步骤,如图:

(18)

参数说明如下:

参数项 说明

步骤显示名称 构建步骤的名称,可自定义修改。

工具版本 根据需要选择工具版本。

命令 配置Maven命令,一般使用系统默认生成的命令即可。

setting配置 增加非DevCloud提供的依赖仓库:即如果需要的依赖无法在 华为开源镜像站、DevCloud私有依赖仓库、HuaweiSDK仓库 找到,则需要在此处添加。详见配置依赖仓库。

发布依赖包到 DevCloud私有依赖 库

选择“配置所有pom”,则会自动在pom.xml文件增加deploy 配置,可使用mvn deploy发布依赖包到DevCloud私有依赖仓 库。详见配置发布依赖包到私有依赖库。

单元测试 选择处理单元测试结果并生成可视化报告,并使用报告结果控 制任务的执行(东北-大连环境暂不支持此功能)。详见配置 单元测试报告。

缓存配置 选择是否使用编译构建提供的缓存以提高构建速度,选择“使 用缓存”后,每次构建时会把下载依赖包缓存起来,后续构建 无需重复拉取,可有效提高构建速度。

4.2.2 配置依赖仓库

编译构建支持使用非DevCloud提供的依赖仓库构建,为区分不同仓库,Maven构建将

(19)

配置自定义公有依赖仓库

配置使用指定的公有依赖仓库构建。

1. 新建Maven构建任务,在配置“Maven构建”构建步骤页面,展开“setting配 置”。

2. 添加公有依赖仓库,输入仓库地址,根据需要勾选“release仓库”和“snapshot 仓库”。

– release仓库:勾选后,构建过程将尝试从仓库中下载release版本依赖。

– snapshot仓库:勾选后,构建过程将尝试从仓库中下载snapshot版本依赖。

说明

release仓库和snapshot仓库至少勾选一个,也可以同时勾选。

配置自定义私有依赖仓库

配置使用指定的私有依赖仓库构建。

1. 新建nexus repository服务扩展点,如:test01。

2. 新建Maven构建任务,在配置“Maven构建”构建步骤页面,展开“setting配 置”。

添加私有依赖仓库,选择上一步创建好的服务扩展点,根据需要勾选“release仓 库”和“snapshot仓库”。

(20)

4.2.3 配置发布依赖包到私有依赖库

背景信息

编译构建服务默认配置私有依赖库作为私有依赖下载源,用户可通过手工上传或 Maven构建方式将依赖上传到私有依赖仓库,如果需要将构建产物上传至私有依赖 库,则需要添加此配置。

说明

● 软件发布库主要用于归档用以部署或其他用途的软件包。

● 私有依赖库主要用于存储供其他项目依赖的工具包等。

使用时要务必注意区分,避免出现如“将依赖上传到软件发布库但是构建时无法下载”此类场 景。

操作步骤

步骤1 创建私有依赖库(如果已经创建,请忽略该步骤)。

步骤2 在“pom.xml”文件配置私有依赖坐标信息(groupId、artifactId、version)。

修改准备构建的私有依赖项目,pom文件中指定坐标为:

<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven- v4_0_0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>come.test.demo</groupId>

<artifactId>deploy</artifactId>

<packaging>jar</packaging>

<version>1.0.0</version>

<name>maven_demo</name>

<url>http://maven.apache.org</url>

<dependencies>

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>3.8.1</version>

<scope>test</scope>

</dependency>

</dependencies>

该配置下,上传私有依赖库成功后,生成依赖的引用坐标为:

<dependency>

(21)

依赖库,搜索并查看上传的依赖。

上传成功后,在其他项目添加如下坐标即可引用。

<dependency>

<groupId>com.test.demo</groupId>

<artifactId>javaMavenDemo</artifactId>

<version>1.0</version>

</dependency>

说明

私有依赖仓库分为release仓库和snapshot仓库,两种仓库对应的使用场景为:

● 对于以调试为目的发布的私有依赖包,一般会给依赖版本号增加-SNAPSHOT后缀(如:

1.0.0-SNAPSHOT),执行发布操作时,此类依赖会自动发布到snapshot仓库,发布时无需 更新版本号,构建命令中增加-U参数即可拉取最新版本。

● 对于正式发布的私有依赖包,版本号中不可带-SNAPSHOT后缀(如:1.0.0),执行发布操 作时,此类依赖会自动发布到release仓库,发布时必须更新版本号,否则会导致构建过程无 法拉取最新依赖包。

----结束

4.2.4 配置单元测试

前提条件

使用“Maven构建”构建步骤提供的单元测试功能,需要在项目中编写单元测试代 码,且满足如下条件:

(22)

● 单元测试用例代码存放位置需满足Maven默认单元测试用例目录规范及命名规 范,或自行在配置中指定用例位置。

如:单元测试用例统一存放在路径“src/test/java/{{package}}/”时,单元测试将 在Maven构建过程自动执行。

● 项目中不可存在忽略单元测试用例配置,即如下配置不可存在于项目pom文件:

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-surefire-plugin</artifactId>

<version>2.18.1</version>

<configuration>

<skipTests>true</skipTests>

</configuration>

</plugin>

操作步骤

步骤1 新建Maven构建任务,进入配置“Maven构建”构建步骤页面。

步骤2 在命令窗口,使用“#”注释掉第8行的默认命令,并删除第13行命令前的“#”。

步骤3 展开“单元测试”。

● 在“是否处理单元测试结果”处勾选“是”。

● 根据需要勾选“是否忽略用例失败”。

– 若勾选“是”,则用例失败时构建任务仍然成功。

– 若勾选“否”,则用例失败时构建任务也失败。

● 配置单元测试结果文件路径。

测试报告需要采集单元测试结果用以生成可视化报告,需在此处指明单元测试结 果文件路径:

– 多数情况下,保留默认路径“**/TEST*.xml”即可满足任务需求。

– 为增加结果准确性,可根据实际情况制定精确的报告路径,如:“target/

surefire-reports/TEST*.xml”。

(23)

步骤4 配置完成后,执行编译构建任务。

执行成功后,即可在测试报告页签查看测试报告。

----结束

4.3 Android 构建

Android构建系统编译应用资源和源代码,然后将它们打包成可供部署、签署和分发的 APK。

自定义安装

sdkmanager命令(sdkmanager packages [options]):

安装需要的Android构建环境,例如,sdkmanager "platform-tools"

"platforms;android-28"。

配置说明

添加“Android构建”构建步骤,如图:

(24)

参数说明如下:

参数项 说明

步骤显示名称 构建步骤的名称,可自定义修改。

Gradle 根据需要选择Gradle版本。

JDK 根据需要选择JDK版本。

NDK 根据需要选择NDK版本,也可以选择“不使用”。

命令 配置Gradle命令,一般使用系统默认给出的命令即可。

Android 版本说明

● SDK:用户项目构建compileSdkVersion版本。

● Build Tools:用户项目构建所需buildToolsVersion版本。

两个版本可以在项目下的“build.gradle”文件或是项目的全局配置文件(用户自定 义)中找到。

(25)

说明

● 用户需要选择正确的compileSdkVersion版本和buildToolsVersion版本。

但是如果没有正确选择项目中需要的compileSdkVersion和buildToolsVersion,构建时会 自动再去下载,也是能够正常构建。

● 也支持Gradle的wrapper构建方式,如果提供的gradle版本没有满足您的要求,您也可以直 接使用gradlew命令,使用wrapper去构建。

会自动下载您所需要的gradle版本,构建命令例如:./gradlew clean build。

4.4 Android APK 签名

通过“Android APK签名”构建步骤,使用apksigner对Android APK进行签名。

配置说明

1. 在“Android构建”步骤后添加“Android APK签名”步骤。

(26)

参数说明如下:

参数 说明

需要签名的APK路

径 Android构建后生成要签名的.apk文件位置,支持正则表达 式,如:可以使用build/bin/*.apk匹配构建出来的APK包。

Keystore文件 用于签名的Keystore文件,单击下拉列表,展示文件管理 页面已经上传的Keystore文件,请根据需要选择。

keystore

password 密钥文件密码。

别名(Alias) 密钥别名。

key password 密钥密码。

apksigner命令行 用户自定义签名参数,默认“--verbose”显示签名详细。

2. 验证签名是否成功。

配置完成后执行构建任务,当显示任务执行成功后,查看构建日志,若“Android APK签名”那段日志中显示“result: Signed”即为签名成功。

(27)

添加“Npm构建”构建步骤,如图:

参数说明如下:

参数项 说明

步骤显示名称 构建步骤的名称,可自定义修改。

工具版本 根据需要选择工具版本。

命令 配置Npm命令,一般使用系统默认生成的命令即可。如有特殊 构建要求,可以在文本域中输入自定义的构建脚本。

(28)

4.6 Gradle 构建

使用Gradle构建工具构建Java,Groovy和Scala项目。

配置说明

添加“Gradle构建”构建步骤,如图:

参数说明如下:

参数项 说明

步骤显示名称 构建步骤的名称,可自定义修改。

Gradle 根据需要选择Gradle版本。

JDK 根据需要选择JDK版本。

命令 配置Gradle命令,一般使用系统默认生成的命令即可。如有特 殊构建要求,可以在文本域中输入自定义的构建脚本。

(29)

使用SetupTools打包时,需要保证代码根目录下存在“setup.py”文件。

● 关于setup文件写法请参见Python官方说明。

● “setup.py”文件请参见https://www.python.org/search/?

q=setup&submit=。

配置说明

添加“SetupTool构建”构建步骤,如图:

参数说明如下:

参数项 说明

步骤显示名称 构建步骤的名称,可自定义修改。

工具版本 请根据需要选择工具版本。

(30)

参数项 说明

命令 配置构建打包命令。

● 可以使用默认的命令打包为“egg”格式的文件。

● Python2.7后建议使用python setup.py sdist

bdist_wheel,打包为源码包和whl格式的安装包,以便使 用pip安装。

4.8 PyInstaller 构建

使用Pyinstaller工具构建Python项目。

自定义安装

pip安装Python的组件。

配置说明

添加“PyInstaller构建”构建步骤,如图:

参数说明如下:

参数项 说明

步骤显示名称 构建步骤的名称,可自定义修改。

(31)

参数说明如下:

参数项 说明

步骤显示名称 构建步骤的名称,可自定义修改。

工具版本 请根据需要选择工具版本。

命令 配置打包命令,使用zip命令将源码所在目录打包。

4.10 Gnu-arm 构建

使用GNU-ARM工具链设计、开发和使用 ARM 模拟器。

(32)

配置说明

添加“Gnu-arm构建”构建步骤,如图:

参数说明如下:

参数项 说明

步骤显示名称 构建步骤的名称,可自定义修改。

工具版本 请根据需要选择ARM工具版本。

(33)

使用arm-linux-gcc命令,例如arm-linux-gcc -o main main.c

– gnuarm-7-2018-q2-update镜像

使用arm-none-eabi-gcc命令,例如arm-none-eabi- gcc --specs=nosys.specs -o main main.c

说明

● Linux下的GNU的makefile编写,请参见官网。

● 注意Makefile只有行注释 "#", 如果要使用或者输出"#"字符, 需要 进行转义, "\#等。

4.11 Msbuild 构建

背景信息

编译构建服务提供了常用的构建模板(构建环境),不同的构建模板中预装了对应构 建所需工具集,MSBuild构建镜像一般预装了msbuild、nuget、.NET Frameword等常 用工具。

使用msbuild构建工具执行引擎、构造工程,支持.NET框架构建,包含.NET Core 和.NET Frameworks。

配置说明

添加“Msbuild构建”构建步骤,如图:

(34)

参数说明如下:

参数项 说明

步骤显示名称 构建步骤的名称,可自定义修改。

工具版本 请根据需要选择Msbuild构建工具版本。

● 请选择相应的.NET版本。

● msbuild15-all版本的工具提供更多的构建支持,如nant、

nodejs的构建命令支持等。

powershell命令 配置Msbuild命令,一般使用系统默认给出的命令即可。

● nuget restore命令会还原csharp项目依赖。

● msbuild命令构建项目:

– OutputPath会指定生成路径,此路径设置会以csproject文 件为相对路径。

– 项目存在多个csproject时可能会因此导致构建失败,删除 路径指定参数后可构建成功。

● .NET Core项目请尝试使用.NET相关命令构建。

Msbuild 系统规格说明

为方便使用,编译构建服务提供的Msbuild构建环境原则上尽可能保持与本地环境一 致,但因Windows与编译构建服务本身一些系统限制,少数场景下可能会导致构建失 败。

使用前建议仔细阅读以下规格说明。

● 不支持带空格的文件路径

C#项目中目录或文件名中包含空格会导致构建失败,目录/文件的命名请使用字 母、数字、下划线的组合,勿使用其他特殊字符,避免不必要的构建失败。

(35)

● 一些特殊场景(如构建时指定输出目录为“Output/release”)下,可能会额外占 用路径长度。

建议您的项目下文件相对路径(以代码仓库为根目录)长度保持在200个字符以 下,原则上尽可能短最好。

● 不可直接引用系统不具备的组件

– 部分场景下,解决方案中可能会直接引入(不使用NuGet等管理工具,直接 引用默认路径下的程序集)如“Microsoft.Office.Interop.Word”等程序集。

但构建时环境中不具备此程序集,导致编译告警,如果项目代码中使用了此 引用,甚至会直接导致失败。

– 由于Windows特殊性,通常情况下,此类程序集默认安装于本地系统,无需 指定程序集位置,VS构建时会从默认配置的几个程序集路径查找,可以构建 成功。

而云端构建环境对应目录无此程序集,进而导致云端构建环境与本地不一致 带来的失败。

– 为解决此类场景,Msbuild集成了NuGet,可以在构建时从远程仓库下载对应 程序集,此时只需于项目中指定“packages.config”,并于其中声明依赖的 程序集即可。

– 特殊情况下,项目引用的程序集可能无法在远程仓库找到,此时需要手工保 存程序集至代码仓库中,并显式指定程序集路径。

详细解决方案请参见找不到程序集(**.dll)。

● 命令行中路径分隔符使用'/'而非'\'

部分场景下,可能需要在命令行中使用路径参数,此处需注意,Msbuild构建环境 要求路径分隔符统一使用“/”格式。

错误示例:

cd test\test1或cd test\\test1

正确示例:

cd test/test1

● 避免直接指定低版本SDK路径

– 编译构建服务提供了“.NET Framework”的4.7.2版本和3.5版本(详细说明 请参见已支持的镜像版本及工具集)。

一般来讲,4.7.2版本可以兼容4.0以上版本SDK,3.5版本可以兼容3.5版本以 下SDK,项目中可以引用兼容版本的SDK内容。

– 在某些场景下,用户可能将引用直接指向了某个低版本的sdk路径,此时会因 找不到SDK导致构建失败。

(36)

如果您的项目出现此类场景,我们建议:

尝试更改您的引用路径,尽可能使用兼容版本SDK。

如果您的项目因为不可回避的原因,必须指向低版本SDK路径,请尝试 联系客服。

Msbuild 构建场景

● 已支持场景

场景类型 说明

无外部依赖 参考镜像版本及对应工具版本,对于仅使用了环境预装依赖库的 项目,选择合适的镜像版本即可直接使用msbuild或.NET命令进 行构建。

例如:项目使用了dotnetframework4.7.2的SDK和Office操作的 相关官方依赖库(MSOffice)。可选用“msbuild15-

dotnetframework4.7.2”版本镜像,使用msbuild命令构建。

使用Nuget 进行依赖管 理

对于使用了环境预装依赖库以外的项目,但使用了Nuget对所有 依赖库进行管理的项目,选择合适的镜像版本后,可先使用 nuget restore命令下载所有依赖,此后使用msbuild命令进行 构建。.NET命令无需先执行nuget命令。

例如:项目使用了“dotnetframework4.7.2”的SDK,依赖了 Myget上某Package并使用Nuget添加了该依赖。可选用

“msbuild15-dotnetframework4.7.2”版本镜像,使用nuget restore && msbuild命令构建。

其他 对于有其他命令需求的项目,如Git、JDK、Nant、Nodejs等,

请参见msbuild15-all版本镜像构建工具集的说明,使用支持的 命令进行操作。

● 未支持场景

场景类型 说明

未使用Nuget管理 依赖库

依赖了本地安装的依赖库,且没有使用nuget对依赖进行管理。

详细解决方案请参见找不到程序集(**.dll)。

例如:某项目使用“dotnetframework4.7.2”的SDK,本地安装 了Nunit依赖库,但没有使用Nuget对其进行管理。

此时使用msbuild命令对其进行构建时会出现找不到库的错误,

导致构建失败。

解决方案版 本低于VS2015(不 包含)

对于使用VS2015(不含)以前版本创建的解决方案,会出现版 本过低不兼容的情况,导致构建失败。请尝试升级解决方案。

Powershell 命令使用

(37)

名。

Expand- Archive(解 压缩命令)

powershell –Command Expand-Archive -Path [SourcePath] -DestinationPath [TargetPath]

● SourcePath

指定需要解压的文件,如“demo.zip”。

● TargetPath

要解压到的目标路径,支持通配符和相对路径。

Copy-Item

(复制命 令)

powershell –Command Copy-Item -Recurse -Path [SourcePath] - DestinationPath [TargetPath]

● SourcePath

指定需要复制的文件或文件夹,支持通配符和相对路径。

● TargetPath

要复制到的目标路径,支持通配符和相对路径。

说明-Recurse选项为循环复制子文件夹,但若在SourcePath中使用了通配 符,此开关会失效,不会复制指定目录下的子文件夹。

其他命令 文档只介绍了构建常用的Powershell命令,更多Powershell命令 请参见微软官方文档:

https://docs.microsoft.com/zh-cn/powershell/module/

cimcmdlets/?view=powershell-5.1

4.12 Cmake 构建

使用CMake构建工具构建跨平台项目工程。

配置说明

添加“Cmake构建”构建步骤,如图:

(38)

参数说明如下:

参数项 说明

步骤显示名称 构建步骤的名称,可自定义修改。

工具版本 请根据需要选择Cmake构建工具版本。

命令 配置Cmake命令,一般使用系统默认给出的命令即可。如有特 殊构建要求,可以在文本域中输入自定义的构建脚本。

4.13 Ant 构建

Apache Ant是一个Java项目的构建工具,用于编译、测试和部署Java项目。

前置准备

项目为Java语言Ant结构,有正确的“build.xml”构建描述文件。

操作步骤

添加“Ant构建”构建步骤,如图:

(39)

参数说明如下:

参数项 说明

步骤显示名称 构建步骤的名称,可自定义修改。

工具版本 默认使用推荐版本,可以根据需要选择和自己编译环境匹配的 Ant与JDK镜像版本。

命令 配置Ant构建命令,一般使用系统默认给出的命令即可。如有 特殊构建要求,可以在文本域中输入自定义的构建脚本。

4.14 Golang 构建

使用Go语言环境构建。

前置条件

项目为Go语言开发项目,代码中有构建描述文件。

配置说明

添加“Go语言构建”构建步骤,如图:

(40)

参数说明如下:

参数项 说明

步骤显示名称 构建步骤的名称,可自定义修改。

工具版本 请根据需要选择工具版本,默认使用推荐版本,可以根据需要 选择和自己编译环境匹配的Go版本。

命令 配置Go项目构建命令,一般使用系统默认给出的命令即可,如 有特殊构建要求,可以在文本域中输入自己的构建脚本。

4.15 Android-Ionic 构建

背景信息

● Ionic是一款基于Angular、Cordova的强大的HTML5移动应用框架,可以快速创 建一个跨平台的移动应用。

● 支持快速开发移动App、移动端Web页面、混合App和Web页面。

自定义安装 npm 组件

● 全局安装:npm install –g xxx。

● 项目下安装:npm install xxx。

● 如果发现镜像内安装的npm组件不符合要求,可以按照如下方式卸载,然后安装

(41)

配置说明

步骤1 确认Ionic项目已经上传到codehub代码仓库。

项目中包含“ionic.config.json、package.json”和“andular.json”等项目编译描述文 件。

步骤2 添加“Ionic Android App构建”构建步骤,如图:

参数说明如下:

(42)

参数项 说明

步骤显示名称 构建步骤的名称,可自定义修改。

工具版本 根据需要选择Gradle、JDK和NDK版本。

命令 配置命令框中的打包脚本。

----结束

4.16 Quickapp 快应用构建

本节主要介绍快应用签名的构建步骤-Android快应用构建。

自定义安装

npm config set xxx命令:配置Npm相关设置。

配置说明

添加“Android快应用构建”构建步骤,如图:

参数说明如下:

参数项 说明

步骤显示名称 构建步骤的名称,可自定义修改。

工具版本 根据需要选择构建工具版本。

(43)

快应用签名操作:

1. 通过openssl命令等工具生成签名文件“private.pem”、

“certificate.pem”,例如:

openssl req -newkey rsa:2048 -nodes -keyout private.pem -x509 -days 3650 -out certificate.pem

在工程的“sign”目录下创建“release”目录,将私钥文 件“private.pem”和证书文件“certificate.pem”拷贝进 去。

2. 发布程序包前需要增加release签名,然后在工程的根目录 下运行:npm run release

生成的应用路径为“/dist/.release.rpk”。

3. 如果需要临时使用debug签名,可以使用:

npm run release -- --debug

说明由于debug签名是公开的,安全性无法保证,一定不要使用debug 签名签发正式上线的应用。

4.17 制作镜像并推送到 SWR 仓库

前置准备

制作Docker镜像需在代码托管服务新建代码仓库,并上传制作好的“Dockerfile”文 件。

说明

● Dockerfile制作请参见官网。

● Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新 的镜像。它们简化了从头到尾的流程并极大的简化了部署工作。

● Dockerfile从FROM命令开始,紧接着跟随各种方法、命令和参数。

● 编译构建提供两种基础镜像,可基于该基础镜像制作Dockerfile文件,详见自定义构建环 境。

(44)

配置说明

步骤1 新建构建任务,选择存放“Dockerfile”文件的代码仓库。

步骤2 在“新建编译构建任务 > 选择构建模板”页面,单击“不使用模板,直接创建”。

步骤3 添加“制作镜像并推送到SWR仓库”构建步骤。

参数说明如下:

参数项 说明

步骤显示名称 构建步骤的名称,可自定义修改。

(45)

镜像标签 自定义镜像标签。

工作目录 自定义工作目录,在此目录下执行docker build。

Dockerfile路径 Dockerfile相对于工作目录的路径。

----结束

4.18 使用 SWR 公共镜像

前提条件

使用SWR Public镜像仓共享镜像前,需满足以下条件:

● 用户需将自定义镜像推送至SWR镜像仓。

● 用户在SWR镜像仓可以编辑自定义镜像为公有或私有。

配置方法

步骤1 由于编译构建无法拉取用户在SWR私有仓中的镜像,因此,需要先将镜像设置为“公 有”。

1. 登录SWR镜像服务。

2. 在左侧导航单击“我的镜像”,然后单击镜像名称进入镜像详情页面,然后单击 右上角“编辑”。

3. 在编辑框中,将“类型”设置为“公开”。

(46)

4. 获取完整的镜像地址。

步骤2 新建构建任务,在“新建编译构建任务 > 选择构建模板”页面,单击“不使用模板,

直接创建”。

步骤3 添加“使用SWR公共镜像”构建步骤。

步骤4 将获得的镜像地址粘贴到“镜像地址”输入框。

(47)

说明

镜像地址粘贴到“镜像地址”输入框时请去掉前面的“docker pull”。

步骤5 在命令窗口输入构建命令(具体命令参考各类型构建任务示例)。

----结束

4.19 使用 dockerHub 公共镜像

步骤1 新建构建任务,在“新建编译构建任务 > 选择构建模板”页面,单击“不使用模板,

直接创建”。

步骤2 添加“使用dockerHub公共镜像”构建步骤。

步骤3 单击“工具版本 > 请单击选择”。

步骤4 在弹出的搜索框中,输入“Maven”来搜索DockerHub仓库中的Maven相关镜像。

(48)

步骤5 选择第一个(Maven官方镜像)并按任务需要选择对应的镜像标签即可。

步骤6 在命令窗口输入构建命令(具体命令参考各类型构建任务示例)。

----结束

4.20 上传软件包到软件发布库

将构建生成的软件包上传到软件发布库,在配置构建步骤时,添加“上传软件包到软 件发布库”构建步骤即可。

● 仅支持上传单个文件、多个文件;不支持上传文件夹、自动创建路径。

例如,“a”目录下有“aa”文件和“b”目录,“b”目录下有“bb”文件,构 建包路径配置为“a/**”。

即递归扫描“a”目录下所有文件,最终上传“aa”文件和“bb”文件,两个文 件是同一个目录下,系统不会在软件发布库里自动创建“b”目录。

● 如果用户有上传文件夹的需要,建议在“上传软件包到软件发布库”构建步骤之 前先将待上传的文件夹打包为单文件后再上传。可以通过现有构建步骤执行打包 命令,也可以新增“执行shell命令”构建步骤执行打包命令。

(49)

参数配置

● 构建包路径

构建包路径支持正则匹配,“**”递归遍历当前目录,“*”匹配0或者多个字符,

“?”匹配一个字符。

系统文件分隔符使用“/”;路径对大小写不敏感。

举例说明:

– *.class

当前目录下匹配“.class”结尾的文件。

– **/*.class

当前目录下递归匹配所有的“.class”结尾的文件。

– test/a??.java

匹配“test”目录下以“a”开头后跟两个字符的java文件。

– **/test/**/XYZ*

递归匹配父目录为“test”文件是“XYZ”开头的所有文件,比如“abc/

test/def/ghi/XYZ123”。

● 发布版本号及包名

包名推荐设置为空,这样可以上传构建包路径匹配的所有文件,但应注意上传文 件数量和大小有上限。

设置包名后,一旦匹配多个文件时,会存在包覆盖的情况。假如包名需要设置且 存在多个文件上传的情况,推荐增加多个上传软件包到软件发布库的构建步骤。

发布版本号及包名是否为空对上传的影响如图:

(50)

4.21 上传文件到 OBS

将构建生成的软件包上传到OBS,在配置构建步骤时,添加“上传文件到OBS”构建 步骤即可。

配置说明

添加“上传文件到OBS”构建步骤,如图:

(51)

参数说明如下:

参数项 说明

步骤显示名称 构建步骤的名称,可自定义修改。

授权用户 ● 当前用户:上传到当前租户的OBS桶。

● 其他用户:可以通过选择IAM账号的方式上传到指定租户的 OBS桶。

构建产物路径 构建结果所在路径,OBS存储文件名为空时,可使用通配符上 传多个文件。如:maven可以使用**/target/*.?ar匹配所有构建 出来的jar包和war包。

桶名 目标OBS桶名(不支持跨region上传)。

OBS存储目录 构建结果在OBS上的存储目录(如:application/version/),

可留空,或填写“./”表示存储到OBS根目录。

OBS存储文件名 构建结果在OBS上的存储文件名(不包含目录),留空时可上 传多个文件,取构建产物文件名为OBS存储文件名;不为空时 只能上传单个文件,如:application.jar。

OBS头域 上传文件时加入一个或多个自定义的响应头,当用户下载此对 象或查询此对象元数据时,加入的自定义响应头会在返回消息 的头域中出现。如:“键”填写成“x-frame-options”,

“值”填写成“false”,即可禁止OBS中存放的网页被第三方 网页嵌入。

(52)

4.22 执行 Docker 命令

介绍在Docker容器执行Docker命令的构建步骤:执行Docker命令。

配置说明

添加“执行Docker命令”构建步骤,如图:

参数说明如下:

参数项 说明

步骤显示名称 构建步骤的名称,可自定义修改。

工具版本 根据需要选择工具版本。

命令 单击“添加”,新增一条命令行,请根据需要选择并配置命

令,可参见常见的Docker命令。

常见的 Docker 命令

docker login

● 描述:登录docker仓库

● 用法:docker login [options] [server]

options:

名称,短名称 描述

--password, -p 密码。

--username, -u 用户名。

--password-stdin 从标准输入获取密码。

(53)

名称,短名称 描述

--file, -f Dockerfile名称,默认为./Dockerfile。

--tag, -t “镜像名:标签”格式。

● 示例:

docker build -t mydocker-registry.com/org/alpine:1.0 . docker push

● 描述:推送镜像到指定的地址

● 用法:docker push [options] name[:tag]

● 示例:docker push mydocker-registry.com/org/alpine:1.0 docker pull

● 描述:从镜像仓库下载镜像到本地

● 用法:docker pull [options] name[:tag|@digest]

options:

名称,短名称 描述

--all-tags, -a 下载镜像仓库所有有tag的镜像。

● 示例:

docker pull mydokcer-registry.com/org/alpine:1.0 docker tag

● 描述:创建一个镜像和标签指向原镜像

● 用法:docker tag source_image[:tag] target_image[:tag]

● 示例:

docker tag mydocker-registry.com/org/alpine:1.0 mydocker-registry/neworg/

alpine:1.0 docker export

● 描述:导出容器的文件系统为tar类型的文件

(54)

● 用法:docker export [options] container

options:

名称,短名称 描述

--output, -o 写文件,而不是使用标准输出。

● 示例:

docker export alpine > alpine.tar

docker export --output="alpine.tar" alpine 说明

alpine是容器名。

● 场景:

制作基础镜像。

比如启动一个alpine镜像为容器,安装一些软件,使用docker export保存这个容 器为一个基础镜像,供其他人使用。

docker import

● 描述:导入一个tar类型文件为镜像文件

● 用法:docker import [options] file|URL|- [repository[:tag]]

options:

名称,短名称 描述

--change, -c 增加dockefile的指令到创建的镜像里。

--message, -m 为导入的镜像设置提交信息。

● 示例:

docker import alpine.tar docker save

● 描述:保存一个或者多个镜像到tar类型的文件,默认是标准输出流。

● 用法:docker save [options] image [image ...]

options:

名称,短名称 描述

--output,-o 写文件,而不是使用标准输出。

● 示例:

docker save -o alpine.tar mydocker-registry.com/org/alpine:1.0 mydocker- registry.com/org/alpine:2.0

(55)

docker load -i alpine.tar docker logout

● 描述:从镜像仓库登出

● 用法:docker logout [server]

● 示例:docker logout mydocker-registry.com

4.23 下载发布仓库包

背景信息

通过配置下载发布仓库包构建步骤,可以将发布仓库中的包或者其他文件下载到构建 任务根目录,以便后续构建步骤使用这些包或者文件。

获取下载包地址

介绍从发布服务获取发布仓库包的下载地址。

步骤1 登录DevCloud首页。

步骤2 搜索目标项目并单击项目名称,在顶部导航栏单击“构建&发布 > 发布”。

步骤3 进入发布服务,查找待下载的仓库包。

步骤4 单击待下载的仓库包名,弹出仓库包“基本信息”页面。

其中“部署下载地址”即为仓库包的下载地址,单击地址旁的 ,复制该地址。

(56)

----结束

配置下载发布仓库包

添加“下载发布仓库包”构建步骤,如图:

(57)

参数说明如下:

参数项 说明

步骤显示名称 构建步骤的名称,可自定义修改。

工具版本 根据需要选择工具版本。

下载包地址 将步骤步骤4复制的仓库包下载地址粘贴到输入框即可。

(58)

5 代码源配置

5.1 背景

服务扩展点是软件开发平台的一种扩展插件,为软件开发平台提供链接第三方服务的 能力。

编译构建使用服务扩展点连接第三方GitHub、通用Git、码云的git仓库获取项目源码,

可以提供对此类连接的新建、编辑、删除等操作。

说明

● 使用三方仓库可能出现网络不稳定或其他问题,具体使用体验取决于三方仓库网络环境和服 务状态。

● 建议使用代码托管的代码导入功能,将代码导入到代码托管,实现安全、稳定、高效下载与 构建。

5.2 使用 GitHub 仓库构建

背景信息

● 编译构建默认从代码托管拉取代码构建,对于托管在GitHub上的代码,可以使用 GitHub连接实现代码拉取。

● GitHub连接可选择使用OAuth授权或使用AccessToken授权,可限制赋予编译构 建服务对仓库的访问权限(可以拉取代码完成构建即可)。

同时可以随时删除连接或取消授权,可有效避免密码泄露风险。

操作步骤

步骤1 创建构建任务,在“选择代码源”阶段选择“GitHub”。

(59)

步骤2 首次使用GitHub连接,需要新建Endpoint实例,单击“Endpoint实例”右侧“新 建”。

进入“服务扩展点管理”页面,在“新建服务扩展点”下拉列表选择“GitHub”。

步骤3 弹出“新建服务扩展点:GitHub”对话框,为连接添加授权,包括“OAuth认证”和

“AccessToken认证”两种验证方式。

OAuth认证

选择“OAuth认证”,输入服务扩展名称,然后单击“使用Oauth授权”。

(60)

参数说明如下表所示:

参数名称 功能描述

验证方式 OAuth认证方式,需要登录GitHub帐号进行手动授权。

服务扩展点名称 服务扩展点的名称。

使用OAuth授权 单击进入GitHub登录页面,登录后手动授权,获取访问 GitHub仓库的权限。

Access Token认证

选择“AccessToken认证”,输入服务扩展点名称,然后参考Github AccessToken,将获取到的token粘贴到“Access Token”输入框。

参数说明如下表所示:

参数名称 功能描述

验证方式 选择“AccessToken认证”

服务扩展点名称 服务扩展点的名称

Access Token 需要在GitHub-Settings-Developer settings中生成 Personal access tokens,并填入此处用来认证

(61)

步骤5 授权成功后,回到新建编译构建任务页面。

刷新并选择Endpoint实例,选择代码仓库及代码分支,单击“下一步”完成后续任务 配置即可。

----结束

5.3 使用通用 Git 构建

背景信息

● 编译构建默认从代码托管拉取代码构建,对于托管在其他服务上的代码,可以使 用通用Git连接实现代码拉取。

● 通用Git连接使用AccessToken授权,可有效限制赋予编译构建对仓库的访问权限

(可以拉取代码完成构建即可)。

(62)

同时可以随时删除连接或取消授权,可有效避免密码泄露风险。

操作步骤

步骤1 创建构建任务,在“选择代码源”阶段选择“通用Git”。

步骤2 首次使用通用Git连接,需要新建Endpoint实例,单击“Endpoint实例”右侧“新 建”。

进入“服务扩展点管理”页面,在“新建服务扩展点”下拉列表选择“通用Git”。

说明

新建通用Git连接时,如非必要,建议使用AccessToken授权而非帐号密码授权。使用

AccessToken授权,可以控制三方应用使用权限,且可以随时撤销授权,使用密码可能存在以下 风险:

当您在浏览器输入密码时,可能存在泄露风险,不使用、不暴露是最安全的方式。

代码无法下载:部分企业版代码仓库可能会开启双因子认证等限制,使用密码时可能出现 代码无法下载问题。

步骤3 弹出“新建服务扩展点:通用Git”对话框。

参数说明如下表所示:

参数名称 功能描述

连接名称 接入点的名称,自定义,不为空即可。

Git仓库Url 从仓库页面拷贝下来的https形式的克隆地址。

(63)

5.4 使用码云仓库构建

背景信息

● 编译构建服务默认从代码托管服务拉取代码构建,对于托管在码云上的代码,可 以使用码云连接实现代码拉取。

● 码云连接可选择使用OAuth授权或使用AccessToken授权,可限制赋予编译构建服 务对仓库的访问权限(可以拉取代码完成构建即可)。

同时可以随时删除连接或取消授权,可有效避免密码泄露风险。

操作步骤

步骤1 创建构建任务,在“选择代码源”阶段选择“码云”。

(64)

步骤2 首次使用GitHub连接,需要新建Endpoint实例,单击“Endpoint实例”右侧“新 建”。

进入“服务扩展点管理”页面,在“新建服务扩展点”下拉列表选择“码云Git”。

步骤3 弹出“新建服务扩展点:码云Git”对话框,为连接添加授权,包括“OAuth认证”和

“AccessToken认证”两种验证方式。

OAuth认证

选择“OAuth认证”,输入服务扩展名称,然后单击“使用Oauth授权”。

参数说明如下表所示:

参数名称 功能描述

验证方式 OAuth认证方式,需要登录码云帐号进行手动授权 服务扩展点名称 服务扩展点的名称

使用OAuth授权 点击进入码云登录页面,登录后手动授权

Access Token认证

选择“AccessToken认证”,输入服务扩展点名称,然后参考码云 AccessToken,将获取到的token粘贴到“Access Token”输入框。

(65)

参数说明如下表所示:

参数名称 功能描述

验证方式 选择“AccessToken认证”。

服务扩展点名称 服务扩展点的名称。

Access Token 需要在“码云 > 设置 > 私人令牌” 中生成私人令牌,并填 入此处用来认证。

----结束

5.5 AccessToken 获取方式

Github AccessToken

步骤1 登录Github,并打开设置页面。

(66)

步骤2 单击“Developer settings”。

步骤3 单击“Personal access tokens > Generate new token”。

步骤4 验证登录帐号。

(67)

步骤5 填写Token描述并选择权限,选择私有仓库访问权限,单击“Generate token”生成 Token。

步骤6 拷贝生成的Token到编译构建服务即可。

(68)

说明

● Token生成后,请及时保存,下次刷新页面将无法读取,需要重新生成新Token。

● 注意填写有效的Token描述信息,避免误删除导致构建失败。

● 无需使用时及时删除Token,避免信息泄露。

----结束

码云 AccessToken

步骤1 登录码云,并打开设置页面。

步骤2 单击 “私人令牌”,然后单击 “生成新令牌”。

步骤3 验证登录帐号,如已登录则进入下一步。

步骤4 填写Token描述并选择权限,选择私有仓库访问权限,单击“提交”生成Token。

(69)

步骤5 拷贝生成的Token到编译构建服务即可。

说明

● Token生成后,请及时保存,下次刷新页面将无法读取,需要重新生成新token。

● 注意填写有效的Token描述信息,避免误删除导致构建失败。

● 无需使用时及时删除Token,避免信息泄露。

----结束

(70)

6 资源池管理

6.1 新建资源池

概述

通过资源池,用户可以拥有自己的执行资源,在执行任务时,可以选择自己通过代理 接入的执行机执行任务,提高任务执行效率,不再依赖DevCloud公共执行资源。

说明

大连当前暂不支持资源池管理。

操作步骤

步骤1 进入DevCloud首页,单击右上角帐号名称,选择“租户设置”。

步骤2 单击“资源池管理 > 资源池”,进入“资源池管理”页面,单击“新建资源池”,设 置资源池名称,单击“保存”。

(71)

概述

代理是一个 Jenkins Remoting 类库的扩展,主要用于任务执行机和服务端之间的通 信,具体功能如下:

指定 jenkins master 创建 jenkins slave,获取 master 的 publicKey 和 slave 的 secretKey 等信息,建立代理和 master 之间的 socket 通讯。

前提条件

● 安装代理的主机必须有访问外网权限,并且开通以下域名的防火墙白名单。

区域名称 域名

北京一(cn-north-1) cloudoctopus-agent.cn- north-1.myhuaweicloud.com 北京四(cn-north-4) cloudoctopus-agent.cn-

north-4.myhuaweicloud.com 上海一(cn-east-3) cloudoctopus-agent.cn-

east-3.myhuaweicloud.com 上海二(cn-east-2) cloudoctopus-agent.cn-

east-2.myhuaweicloud.com 广州(cn-south-1) cloudoctopus-agent.cn-

south-1.myhuaweicloud.com 深圳(cn-south-2) cloudoctopus-agent.cn-

south-2.myhuaweicloud.com

可以通过如下命令检查是否已经加入白名单,如:

telnet cloudoctopus-agent.cn-north-1.myhuaweicloud.com 1211 telnet cloudoctopus-agent.cn-north-1.myhuaweicloud.com 1210

● 安装代理的主机必须安装JAVA8+、Git和Docker17.06+,只能使用root帐号安装 执行命令。

● 请确保安装代理的主机可以访问公网。

● 同一台主机不可以安装相同名称的代理,同一台主机的不同代理不可以使用同样 的代理工作空间。

(72)

获取 AK/SK

生成AK/SK。(如果已生成过AK/SK,则可跳过该步骤,找到原来已下载的AK/SK文 件,文件名一般为:credentials.csv。)

1. 登录管理控制台。

2. 单击用户名,在下拉列表中单击“我的凭证”。

3. 单击“访问密钥”。

4. 单击“新增访问密钥”,进入“身份验证”页面。

5. 输入当前用户的登录密码。

6. 通过邮箱或者手机进行验证,输入对应的验证码。

说明

在统一身份服务中创建的用户,如果创建时未填写邮箱或者手机号,则只需校验登录密 码。

7. 单击“确定”,下载访问密钥。

说明

为防止访问密钥泄露,建议您将其保存到安全的位置。

新建代理

步骤1 在资源池列表,搜索目标资源池,单击资源池名称,进入“代理列表”页面。

步骤2 单击“新建代理”,进入“新建代理”页面,请填写相关参数。

(73)

get install git命令安装,需要用户确认安 装主机是否有适合的yum源本

AK Access Key Id 必选 如何获取

AK/SK?

SK Secret Access Key 必选 - 代理名

代理(Agent)的名称 必选 根据实际情况填

写。

代理工

作空间 代理在主机上运行的工作目录,任务执行的

工作空间。 必选 根据实际情况填

写。

步骤3 填写完参数后,勾选“我已阅读并同意”,单击“生成命令”,自动生成安装代理命 令Octopus Agent,单击“复制命令”,即可复制生成的安装命令。

步骤4 登录目标主机,执行上一步复制的命令,当命令终端显示如下提示:

End Install Octopus Agent,Agent output logs have been printed to [ /opt/octopus-agent/logs/octopus- agent.log ]

此时可在“代理列表”页面查看到已经安装的代理实例状态为“空闲中”,表示安装 成功。

----结束

删除代理

在“代理列表”页面,单击操作列 ,可以删除指定的代理实例。

说明

“运行中”状态的代理实例无法删除。

(74)

启停代理

在“代理列表”页面,单击操作列 ,可停用对应代理,停用后,状态列显示为“停 用”;单击 ,可以重新启用代理,状态列恢复为“下线”。

6.3 资源池详情

步骤1 在资源池列表,搜索目标资源池,单击资源池名称,进入“代理列表”页面。

步骤2 单击“资源池详情”页签,可以查看资源池的详细信息。

----结束

6.4 权限管理

前提条件

资源池管理者(默认为资源池创建者和创建者所属租户)才能对资源池进行权限管 理。

操作步骤

步骤1 在资源池列表,搜索目标资源池,单击资源池名称,进入“代理列表”页面。

步骤2 单击“权限管理”页签,可以对资源池权限进行管理。

● 权限说明

– 资源池管理者对当前资源池拥有所有操作权限,包括资源池的查看、使用与 配置修改等。

– 资源池使用者可以查询当前资源池内详细信息、资源池的操作历史、代理列 表、资源池在任务中的引用等。

● 权限配置

(75)

----结束

6.5 操作历史

步骤1 在资源池列表,搜索目标资源池,单击资源池名称,进入“代理列表”页面。

步骤2 单击“历史操作”页签,可以查看资源池的历史操作详情。

----结束

(76)

6.6 在 Linux 上安装 JDK

介绍如何在Linux上安装JDK,若Linux上已经安装了JDK,则不需要重复安装;若没有 安装,可参考该指导进行安装。以下以jdk-8u144-linux-x64.tar.gz为例介绍安装方 法。

步骤1 源码包准备:通过官网下载JDK。

步骤2 解压源码包

1. 通过终端在“/usr/local/”目录下新建文件夹“java”。

sudo mkdir /usr/local/java

2. 将下载的压缩包拷贝到“java”文件夹中。

cp jdk-8u144-linux-x64.tar.gz /usr/local/java

3. 进入“java”文件夹。

cd /usr/local/java

4. 解压压缩包。

sudo tar -xvf jdk-8u144-linux-x64.tar.gz

5. 删除压缩包。

sudo rm jdk-8u144-linux-x64.tar.gz

步骤3 设置JDK环境变量

采用的全局设置方法,即修改“/etc/profile”,它是所有用户共用的环境变量。

1. 打开文件“/etc/profile”。

sudo vim /etc/profile

2. 在文件末尾添加以下代码段。

export JAVA_HOME=/usr/local/java/jdk1.8.0_144 export JRE_HOME=/usr/local/java/jdk1.8.0_144/jre

export CLASSPATH=.:$JAVA_HOME/LIB/DT.JAR:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:

$CLASSPATH

export PATH=$JAVA_HOME/bin:$PATH 说明

在添加上述代码过程中,请注意:

– 不要在等号(“=”)前后添加空格。

– 每个变量之间用冒号(“:”)隔开,而非分号(“;”)。

3. 保存修改。

source /etc/profile

步骤4 检验是否安装成功 输入以下代码。

java -version

显示以下内容时,表示安装成功。

java version "1.8.0_144" Java(TM) SE Runtime Environment (build 1.8.0_144-b03) Java HotSpot(TM) 64-Bit Server VM (build 25.77-b03, mixed mode)

----结束

數據

表 8-1 文件管理角色权限说明 连接操作 角色权限 创建 项目下所有用户。 查看 连接创建者、相同租户的用户。 使用 连接创建者、连接创建者配置了使用权限的用户。 更新 连接创建者、连接创建者配置了更新权限的用户。 删除 连接创建者、连接创建者配置了删除权限的用户。 权限配置 连接创建者。 说明 创建者默认有所有权限并且不可被删除和被修改。 生成 Keystore 签名文件 ● 使用JDK的keytool工具生成签名文件 a

參考文獻

相關文件

• Example: Need to run web, mail, file, x, y, z, total of 10 servers...

The best way to picture a vector field is to draw the arrow representing the vector F(x, y) starting at the point (x, y).. Of course, it’s impossible to do this for all points (x, y),

充電電流:(關頭燈) 0.6A 以上/2500 rpm 1.2A 以上/6000 rpm (開頭燈) 0.4A 以上/2500 rpm 1.0A 以上/6000 rpm 充電控制電壓:14 V/2000

[對數律 law of logarithm] 給定 x, y

Estimate the sufficient statistics of the complete data X given the observed data Y and current parameter values,. Maximize the X-likelihood associated

二年愛班有 7 位同學假日相約去爬山,秀秀帶了 113 個聖女小番茄分給大家品嚐,已知男生每 人分得 14 個,女生每人分得 17 個,剛好分完所有的小番茄,假設男生有

6.海埔地泥土 (Estuarine &amp; Coastal Muds &amp; Soils). 7.海積土

when certain additional symmetry Y is present, topological invariants of TCIs protected by symmetry X can be inferred by the Y -symmetry eigenvalues of energy