全部产品

编译

更新时间:2017-06-07 13:26:11   分享:   

编译就是把高级语言变成计算机可以识别的2进制语言。 测试是运行代码工程中的单元测试用例,当单元测试用例执行不通过时,建议开发人员先解决单元测试问题。

阿里云持续交付平台CRP,提供多种标准的编译/测试容器,可以支持编译Java、Node、Php、Python、Ruby、Go等语言的编译。 其他语言,或以上语言的编译测试环境需要依赖其他软件,可以在运行指令中预安装依赖的编译软件,然后运行编译命令。

1 使用场景说明

当您的源代码需要执行一些编译指令后,转换成2进制语言才能运行。您需要在持续发布线中增加编译/测试的任务。配置好后,持续交付平台CRP会提供对应的编译/测试容器,并在容器里运行编译的命令,最后将您需要的产出物打成package.tgz包上传到云存储中,用作后续上传maven仓库或部署等任务使用。

2 第一步:增加编译/测试任务

在项目列表中,点击您要配置持续发布线的项目,在左侧的菜单栏中点击图标工作流图标,进入持续发布线配置页面。

点击需要配置的持续发布线名称,进入工作流查看页面,点击右上角的编辑按钮,在右下角的任务列表处,点击“+”号,选择"编译/测试”即可增加编译任务。

编译任务添加

编译时,CRP会根据依次执行以下动作:分配标准编译容器->下载源代码->下载依赖的其他文件/目录->在代码目录下,执行编译命令->编译成功上传“产出物路径”中指定的包到云存储

3 第二步:选择语言类型

CRP的工作流支持Java、Node、Php、Python、Ruby、Go语言的编译-测试-部署。 按照您的工程使用的语言,您可以选择编译依赖的语言版本环境,

多语言编译

4 第三步:输入运行指令

编译指令指您需要在CRP的机器上运行的命令,可以输入多行命令,也可以在同一行输入,用分号间隔;

Go的编译指令举例如下:

go build

Java的测试&编译指令举例如下:

mvn test

mvn clean package -D maven.test.skip=true

Node.js的测试&编译指令举例如下:

npm test

npm install

Python的测试-编译指令举例如下:

python setup.py install

python setup.py test

python setup.py build

Php的测试指令举例如下:

phpunit --coverage-text .

Ruby的编译指令举例如下:

bundle install

bundle exec rake

5 第四步:设置编译好的包路径(产出物路径),上传包到云存储

产出物路径通常是Java、Go语言需要使用的。在您编译完成后,需要将编译好的包上传到部署机器上做部署。您可以在“输出物路径”中填写部署包的相对路径(相对于代码目录),CRP会将输出物上传到云存储,用作部署阶段使用。

Java产出物路径示例

target/demo.war

6 第五步:上传编译过程中需要的依赖文件

依赖文件是指在编译过程中,需要依赖其他代码库的代码时,可以在这里输入文件所在的代码库的地址(这个地址是您在CRP上浏览该代码的URL),该文件会自动下载到服务器的/root/upload/目录下。

比如Java工程使用autoconfig插件,配置文件为了保密要求,是放在其他代码库中的。示例输入如下:

    https://crp.aliyun.com/projects/2***/codes/19**/repositories/blob?path=antx.properties

CRP会将对应路径下的文件下载到/root/upload/目录下,用户在编译指令中可以做如下处理:

cp /root/upload/antx.properties .
mvn clean package -D maven.test.skip=ture

7 如何使用自己的maven仓库上传下载jar包

CRP的Java编译默认是使用maven.aliyun.com仓库,如果需要使用您自己的maven仓库,请将您的settings.xml存到代码库根目录,系统将使用您的仓库进行编译。您可以在编译的配置页面上下载settings.xml示例文件。

本文导读目录
本文导读目录
以上内容是否对您有帮助?