这2个函数可以用于Jenkins打包脚本中

iOS

android

上篇 编译cocos2dx项目

不足

你一定会想,真实的打包环境可比这复杂多了,我要这样那样,希望通过参数来解决

为任务添加参数化构建

  • 打开任务
  • 在General中,勾选”参数化构建”
  • 点击添加参数
  • 这里参数种类很多,还可以通过插件扩展,挑几个讲
Boolean value 单选框
Choice 下拉框
String parameter 单行文本
List Subversion tags (and more) SVN tag

添加压缩图片选项(Boolean value)

  • 下载pngquant,确保/usr/local/bin/pngquant可以访问
  • 添加Boolean value
  • Name:Optimize,Default Value:勾选, Description:压缩PNG图片

添加平台选项(Choice)

  • 添加Choice
  • Name:Platform,Choices:ios/android/all(一行一个), Description:目标平台

添加编译选项(String parameter)

  • 添加String parameter
  • Name:Configuration,Default Value:debug,Description:编译选项

添加SVN Tags选项(List Subversion tags)

  • 添加List Subversion tags(and more)
  • Name:Tag,Tags filter:^tags/.*$,Maximum tags to display:10,勾选Sort newest first
  • Repository URL:svn://127.0.0.1/testjenkins
  • Credentials选择一个账号密码
  • 修改源码管理中的Repository URL:svn://127.0.0.1/testjenkins/$Tag

修改脚本

执行任务

在首页点击任务名称
点击左侧”Build With Parameters”
配置参数
点击”开始构建”

最后依照你的项目和喜好 配置属于你项目的脚本吧

配置环境

macOS 10.12.3
cocos2dx 3.10
Jenkins 2.32.3
Xcode 8.2.1

创建Cocos工程

cocos new -l cpp testjenkins

配置编译环境/证书/签名

包括NDK,安卓SDK,ANT,苹果开发者证书,共享Schema,安卓签名
这一步大家自行挥发就好,确保最后cocos compile可以使用

将工程传到SVN上

假设路径为 svn://127.0.0.1/testjenkins/trunk

创建Jenkins任务

  • 进入Jenkins,点击左侧”新建”,输入任务名称
  • 这里有很多模板,我们选择”自由风格项目”

配置Jenkins任务

这里可以看到有很多步骤,我们一个个来

源码管理

  • 选择Subversion
  • Repository URL填svn://127.0.0.1/testjenkins/trunk
  • Credentials中点击右侧Add,添加一个svn账号密码
  • 其他默认就好

构建

  • 点击”增加构建步骤” 选择”Execute shell”
  • 输入 “/Applications/Cocos/Cocos2d-x/cocos2d-x-3.10/tools/cocos2d-console/bin/cocos compile -p android”
  • 注意,如果不在jenkins中配置环境变量,cocos需要配置绝对路径

最后点击保存

执行任务

在首页点击任务名称
点击左侧”立即构建”
可以在Build History中看到正在执行的任务和过往记录
点击Console Output可以看到控制台输出的日志

最后有没有成功呢

Jenkins

Jenkins是一款基于Java的持续化集成工具

下载与安装

LTS是稳定版 Weekly是尝鲜版

  • 下载后得到一个jenkins.war
  • 使用命令java -jar jenkins.war启动服务
  • 在浏览器中输入http://localhost:8080/
  • 第一次启动,会验证合法性,打开红底的文件,将其中的初始化密码粘贴到文本框中
  • 接下来是安装插件,可以安装推荐的插件,也可以自己手动选择,管理界面也可以下载安装插件
  • 等待一段时间后,创建管理员账号密码

扩展

1. 编译cocos2dx项目
2. 参数化构建