当前位置: 首页 > news >正文

Jenkins自动化打包

Jenkins自动化打包

下载安装

我们直接从官网https://www.jenkins.io/download/ 下载所需的Jenkins文件
在这里插入图片描述

如上图所示, 选择Windows版本,下面就是一路安装即可,需要注意的是,选择作为系统服务选项, 不要自己设置账号密码登录.

Web配置

安装完根据提示在浏览器打开 http://localhost:8080/ 即可进入Jenkins部署界面

在这里插入图片描述

按照上图中的红色路径找到initialAdminPassword文件并打开 将文件内容粘贴进去, 点击继续

在这里插入图片描述

这里我们选择推荐的插件进行安装

在这里插入图片描述

等待进度条跑完即可

在这里插入图片描述

我们选择Skip, 跳过设置继续使用admin用户登录

在这里插入图片描述

选择Save and Finish

在这里插入图片描述

选择Start using Jenkins

在这里插入图片描述

Unity每日定时打包

就是Jenkins的web界面, 我们在里面配置一个自动打包流程, 比如一个定时任务, 每天凌晨自动打包. 下面就演示如何操作

在这里插入图片描述

我们选择左边的New Item创建一个任务

在这里插入图片描述

按照上图的步骤1,2,3 点击OK之后创建任务

在这里插入图片描述

在上图中添加上任务描述, 然后滚动到后面的BuildSteps里面选择Execute Windows batch command

在这里插入图片描述

在Command里面填写上要执行的python脚本

在这里插入图片描述

点击Save保存

创建打包C#脚本

using UnityEditor;
using UnityEditor.Build.Reporting;
using UnityEngine;namespace Jenkins
{public class BuildScript{[MenuItem("Build/Build for Android")]public static void BuildForAndroid(){var buildPlayerOptions = new BuildPlayerOptions(){scenes = new[]{"Assets/LemonFramework/Jenkins/Sample/Sample.unity"},locationPathName = "Jenkins.apk",target = BuildTarget.Android,options = BuildOptions.None};var report = BuildPipeline.BuildPlayer(buildPlayerOptions);var summary = report.summary;if (summary.result == BuildResult.Succeeded){Debug.Log("Build succeeded: " + summary.totalSize + " bytes");}if (summary.result == BuildResult.Failed){Debug.LogError("Build failed");}}}
}

创建打包Python脚本

#coding:utf-8
import os
import sys
import subprocess
import time
from pathlib import Path
import subprocess
sys.path.append(os.path.abspath(os.path.join(os.path.realpath(__file__), "../")))CUR_PATH = os.getcwd()
PROJ_PATH = os.path.join(CUR_PATH, "../")
BRANCH = 'gl-master'# Unity的执行路径
unity_path = "C:/Program Files/Unity/Editor/Unity.exe"
# Unity项目的路径
project_path = "E:/Projects/Lemon/Lemon.Framework.Jenkins"
# 要执行的Unity编辑器自定义方法的名称,这个方法在Unity编辑器扩展脚本中定义
method_name = "Jenkins.BuildScript.BuildForAndroid"
# 打包后的APK文件路径
apk_output_path = "E:/Projects/Lemon/Lemon.Framework.Jenkins/Jenkins.apk"# 拼接Unity命令行
cmd = [unity_path,"-quit",  # 表示Unity完成命令后关闭"-batchmode",  # 不显示界面和对话框"-nographics",  # 在支持的平台上不初始化图形设备"-silent-crashes",  # 自动处理崩溃情况"-projectPath", project_path,"-executeMethod", method_name,"-logFile",  # 可以指定日志文件路径,例如"-logFile", "unity.log""-buildOutput", apk_output_path,
]# 杀掉unity进程
def kill_unity():os.system('taskkill /IM Unity.exe /F')def git_reset_pull():os.chdir(PROJ_PATH)cmd = 'git fetch --all' #git 拉取命令result = os.system(cmd)	cmd = 'git reset --hard HEAD' #git reset命令result = os.system(cmd)cmd = r"{0}{1}".format("git checkout ",BRANCH)result = os.system(cmd)cmd = 'git clean -fd' #git clean 命令result = os.system(cmd)cmd = 'git pull --rebase' #git pull命令result = os.system(cmd)if result == 0:print('git update succes')else:print('git update fail')# 调用unity中我们封装的静态函数
def build():    # 执行命令行# subprocess.call(cmd) 注释掉这行,并替换为下面的代码,以阻塞直到命令完成并捕获输出process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)stdout, stderr = process.communicate()if process.returncode == 0:print("Build succeeded")print(stdout.decode("utf-8"))  # 显示标准输出else:print("Build failed")print(stderr.decode("utf-8"))  # 显示错误输出sys.exit(1)if __name__ == '__main__':	now = time.time() kill_unity()#git_reset_pull()build()print(f'total take time {time.time()-now} seconds')print("Done!")

在这里插入图片描述

点击左侧Build Now即可生成Android Apk

定时任务

在Configure里设定每天早上6点定时打包,这样一大早有有热乎的apk给QA做测试了

在这里插入图片描述

http://www.lryc.cn/news/291091.html

相关文章:

  • 【服务端性能测试】性能测试策略如何做
  • 透明拼接屏造型:多样拼接与影响因素
  • c# 对路径的访问被拒绝
  • 【数据结构】单调队列
  • 《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第5章 决策树(代码python实践)
  • 电脑可以设置代理IP吗
  • Zookeeper服务注册与发现实战
  • 【LeetCode】每日一题 2024_1_30 使循环数组所有元素相等的最少秒数(哈希、贪心、扩散)
  • uni-app vite+ts+vue3模式 集成微信云开发
  • 一个程序入库出现死锁问题的排查
  • 记录解决报错--These dependencies were not found jsencrypt lodash-es
  • 【极数系列】Flink集成DataSource读取集合数据(07)
  • React hooks子组件暴露方法示例
  • 数据结构:大顶堆、小顶堆
  • 电加热热水器上架亚马逊美国站需要的UL174报告
  • 使用visual studio写一个简单的c语言程序
  • 怎么创建facebook广告
  • pdf怎么转成高清图?pdf在线转换器推荐分享
  • postgresql 查询缓慢原因分析
  • N65总账凭证管理凭证查询(sql)
  • 投资1300万欧元!芬兰正式启动量子旗舰项目
  • 【3分钟开服】幻兽帕鲁服务器一键部署保姆教程
  • PandaWallet :Web3.0世界的入口
  • 微软Azure-openAI 测试调用及说明
  • java 图书管理系统 spring boot项目
  • Ubuntu系统安装 Redis
  • 简单记录一下如何安装python以及pycharm(图文教程)(可供福建专升本理工类同学使用)
  • 浏览器内存泄漏排查指南
  • ClickHouse(22)ClickHouse集成HDFS表引擎详细解析
  • idea报错 :(java: 找不到符号)