1、新建Item,输入名称后选择Freestyle project后点击确定

2、配置项目,自定义工作目录

3、配置源码管理和要摘取的分支

4、构建触发器选择github触发

5、构建选择执行windows命令,之后点击保存

#--disable-gpu,跳过语言设置,如不加此选项构建时会卡在语言设置,--path,指定构建后文件路径
echo "开始构建"
C:\CocosDashboard_1.1.0\resources\.editors\Creator\2.4.6\CocosCreator.exe --disable-gpu --path D:\game\Archery --build "platform=web-mobile;debug=false"
echo "构建完成"
echo "开始上传文件到服务器"
C:\Python38\python.exe ../../unzip.py
echo "文件上传完成"

#!/usr/bin/env python
# -*- coding:utf-8 -*- import os,json
import paramiko,zipfile,tarfile class comupload(object):
def __init__(self, hostname, username='root', port=22):
self.private_key = paramiko.RSAKey.from_private_key_file('C:\\Users\\southpark\\.ssh\\id_rsa')
self.hostname = hostname
self.username = username
self.port = port
self.transport = paramiko.Transport((self.hostname, self.port))
self.transport.connect(username=self.username, pkey=self.private_key)
self.sftp = paramiko.SFTPClient.from_transport(self.transport)
self.client = paramiko.SSHClient()
self.client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 允许连接不存在在know_hosts文件里的主机
self.client.connect(hostname=self.hostname, port=self.port, username=self.username, pkey=self.private_key) def upload(self, local_path, remote_path):
# 将文件上传至服务器
self.sftp.put(local_path, remote_path) def download(self, remotepath, localpath):
# 将文件下载到本地
self.sftp.get(remotepath, localpath) def comand(self, com):
# 执行命令
stdin, stdout, stderr = self.client.exec_command(com)
result = stdout.read().decode()
reserr = stderr.read().decode()
return result, reserr def exec_com(self, com):
# 执行命令,返回命令结果和状态码
self.channel = self.client.get_transport().open_session()
self.channel.exec_command(com)
stdout = self.channel.makefile().read()
stderr = self.channel.makefile_stderr().read()
exit_code = self.channel.recv_exit_status()
self.channel.close()
return stdout, stderr, exit_code def sshclose(self):
# 关闭连接
self.sftp.close()
self.client.close() def zipDir(dirpath,outFullName):
zip=zipfile.ZipFile(outFullName,"w",zipfile.ZIP_DEFLATED)
for path,dirnames,filenames in os.walk(dirpath):
fpath = path.replace(dirpath,'')
for filename in filenames:
print(filename,path,fpath)
zip.write(os.path.join(path,filename),os.path.join(fpath,filename))
zip.close() def compress_file(dirpath,filename,project=None):
cur_path = os.getcwd()
os.chdir(dirpath)
tarfilename=filename+'.tar.gz'
with tarfile.open('../../../tarfile/'+tarfilename,"w") as tar:
for root,dirs,files in os.walk('.'):
for single_file in files:
filepath = os.path.join(root,single_file)
tar.add(filepath)
sshtftp=comupload('172.17.0.2')
filepath='D:\\tarfile\\{}'.format(tarfilename)
if project:
sshtftp.upload(filepath,'/root/3nm-web/site/game/{}/game/{}'.format(project,tarfilename))
sshtftp.comand("cd /root/3nm-web/site/game/{project}/game && tar xf {tarfilename} && rm -fr {tarfilename} {filename} && mv web-mobile {filename}".format(project=project,tarfilename=tarfilename,filename=filename))
else:
sshtftp.upload(filepath,'/root/3nm-web/site/game/publicgame/game/public/{}'.format(tarfilename))
sshtftp.comand("cd /root/3nm-web/site/game/publicgame/game/public && tar xf {tarfilename} && rm -fr {tarfilename} {filename} && mv web-mobile {filename}".format(tarfilename=tarfilename,filename=filename))
sshtftp.sshclose()
os.remove(filepath) if __name__ == '__main__':
cur_path = os.getcwd()
with open("settings/builder.json") as f:
res=json.loads(f.read())
filename=res.get('title')
project=res.get('project')
if project:
compress_file('{}\\build\\'.format(cur_path),filename,project)
else:
compress_file('{}\\build\\'.format(cur_path),filename)

构建完成后上传文件到测试服务器脚本

6、开启github-webhook(点击管理jenkins→配置系统→高级→勾选为github指定另外一个HooK URL)

7、启动ngrok,把forwarding地址填写到github

ngrok http http://172.18.188.8:8080

注意:
     如果卡在([1900] checking language setting...)检查语言设置,请检查jenkins服务登录设置,需要新建一个管理员账号,然后使用新建的管理员账号启动jenkins

参考链接:
       https://ngrok.com/download   #ngrok下载链接
       https://www.cnblogs.com/xiloweiEVE/p/15499112.html
       https://www.cnblogs.com/panda-123/p/14456428.html
       https://www.cnblogs.com/weschen/p/6867885.html
       https://blog.csdn.net/weixin_38320674/article/details/110412976

CocosCreator基于jenkins自动构建的更多相关文章

  1. 基于Jenkins自动构建系统开发

    1  绪论 1.1 课题的研究背景 随着IT行业的不断发展,软件开发的复杂度也随着不断提高.与此同时,软件的开发团队也越来越庞大,而如何更好地协同整个团队进行高效准确的工作,从而确保软件开发的质量已经 ...

  2. 实战:向GitHub提交代码时触发Jenkins自动构建

    当我们提交代码到GitHub后,可以在Jenkins上执行构建,但是每次都要动手去执行略显麻烦,今天我们就来实战Jenkins的自动构建功能,每次提交代码到GitHub后,Jenkins会进行自动构建 ...

  3. Gitlab源码库里代码提交后,如何触发jenkins自动构建?

    版本库里代码提交后,如何触发jenkins自动构建?这是一个面试题,感觉自己回答的并不好,因为并没有用过这个功能,之前公司实际项目用的是svn版本管理,一般都用立刻构建,和定时任务构建(不管代码是否有 ...

  4. 使用Docker+Jenkins自动构建部署

    环境 Windows 10 Docker Version 18.06.1-ce-win73 (19507) 运行jenkins 运行jenkins 容器 docker run -d --name ln ...

  5. Gitlab使用Webhook实现Push代码后的jenkins自动构建

    本文出自https://www.cnblogs.com/kevingrace/p/6479813.html 怕以后找不到,所以先写到自己博客中 Gitlab利用Webhook实现Push代码后的jen ...

  6. DEVOPS技术实践_02:jenkins自动构建项目

    一.用户名密码错误 打开jenkins发现用户名密码错误,解决 1.1 找到config.xml文件 [root@jenkins-master ~]# ll -a drwxr-xr-x. root r ...

  7. 小伙伴想学Jenkins自动构建发布项目,我:安排上了!!

    写在前面 趁着十一长假,很多小伙伴都在悄悄学习,有些是为了能够顺利通过面试,进入大厂升职加薪.有些则是为了进一步巩固和提高自己的专业技能,希望有朝一日能过成为互联网架构师乃至技术专家.这不,就有小伙伴 ...

  8. 六、配置github的pull request触发jenkins自动构建

    之前的配置,都是向master分支push操作触发jenkins进行构建,但是在一般的正常工作中,不会允许程序员直接向主分支推送代码:正常都是fork一个本地的分支,在本地分支调试完后,向主干分支提交 ...

  9. 配置github的pull request触发jenkins自动构建

    参照: https://www.cnblogs.com/zanjiahaoge666/p/6402738.html 之前的配置,都是向master分支push操作触发jenkins进行构建,但是在一般 ...

  10. Gitlab利用Webhook实现Push代码后的jenkins自动构建

    之前部署了Gitlab的代码托管平台和Jenkins的代码发布平台.通常是开发后的代码先推到Gitlab上管理,然后在Jenkins里通过脚本构建代码发布.这种方式每次在发版的时候,需要人工去执行je ...

随机推荐

  1. kingbase字符类数据类型和oracle字符类型的区别

    为兼容Oracle的数据类型,KingbaseES扩展了Oracle的NUMBER.VARCHAR2.CHAR(n)和DATE类型.该措施使得移植Oracle的Create Table等DDL语句时, ...

  2. 理论+实战,详解Sharding Sphere-jdbc

    摘要:Apache ShardingSphere 是一款分布式的数据库生态系统,它包含两大产品:ShardingSphere-Proxy和ShardingSphere-JDBC. 本文分享自华为云社区 ...

  3. 【3】java之string类

    String 是一个字符串类型的类,使用双引号定义的内容都是字符串,但是 String 本身是一个类,使用上会有一些特殊. 一. String类对象的两种实例化方式 1.1 直接赋值 public c ...

  4. sql(上)例题

    一.数据库概述 数据库(DataBase,DB):指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合. 数据库管理系统(DataBase Management S ...

  5. nginx 与 k8s ingress 配置转发websocket

    环境 10.1.100.10:70 是后端websocket 服务 需要通过nginx 向后端转发,nginx 配置文件如下 # cat test-ue4.conf map $http_upgrade ...

  6. cmake:macro,function中ARGV,ARGN参数的区别

    cmake中的宏(macro)和函数(function)都支持动态参数 变量ARGC记录传入的参数个数 变量ARGV0,ARGV1,...顺序代表传入的参数 变量ARGV则是一个包含所有传入参数的li ...

  7. 代码随想录训练营day 2 |977有序数组的平方 209.长度最小的子数组 (C++)

    977.有序数组的平方 题目链接:977.有序数组的平方 题目描述:给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序. 例子如下: 输入 ...

  8. MC 咖啡杯

    #include <iostream> #include "minecraft.h" #include <windows.h> using namespac ...

  9. ubuntu下安装使用jupyter

    sudo snap install jupyter安装,jupyter notebook使用,到浏览器访问服务URL这种使用方式不再赘述. 如何在服务端开启jupyter服务供客户端使用有待研究. 本 ...

  10. dropbear 2019.78 Installing to target......Running build_buildroot failed!

    使能buildroot的环境变量 source envsetup.sh ;rv1126一般选择90make dropbear-dircleanmake dropbear./build.sh rootf ...