【测试平台】打包 jenkins配置和jenkinsfile文件

news2024/11/23 21:37:20

背景:

当打包机环境配置完成后,需要挂到master的jenkins中,完成调度。

jenkins启动

命令行直接启动即可。

nohup java -jar /usr/local/opt/jenkins/libexec/jenkins.war --httpListenAddress=0.0.0.0 --httpPort=80 appending output to nohup.out

jenkins配置从节点

管理系统->节点列表->新增节点

端口号(需要和IT 给开的端口号配置一致,不一定是图中的端口号)和 java环境变量

配置完成后看连接日志

成功这个样子,有报错的话 根据报错修改配置选项

jenkins新建一个jenkins job

可以选择复制一个现有的工程项目名字进行修改

手工构建jenkins Job

JenkinsfIle文件

shell本质jenkins的流水线语法,具体语法可以自己查下。

前置混淆操作

后置混淆操作

FQA

1.挂节点机器报链接错误

原因:远程链接默认端口号为22,如果开的远程端口号不是22,是其他值,那就会报链接错误。需要需要设定端口

解决方案

2.挂节点机器报java环境变量错误

报错原因:因为节点机器配置的java环境变量不在/usr/local/java/bin/java路径上

解决方案:

Manage Jenkins > Manage Nodes and Clouds > Configure node > Advanced section under Launch Agents via ssh block > "update Java path in there"

[08/23/23 10:43:44] [SSH] Checking java version of /usr/local/java/bin/java
Couldn't figure out the Java version of /usr/local/java/bin/java /usr/local/java/bin/java
bash: /usr/local/java/bin/java: No such file or directory

java.io.IOException: Java not found on hudson.slaves.SlaveComputer@3dd3ad4b. Install Java 8 or Java 11 on the Agent.
        at hudson.plugins.sshslaves.JavaVersionChecker.resolveJava(JavaVersionChecker.java:83)
        at hudson.plugins.sshslaves.SSHLauncher.lambda$launch$0(SSHLauncher.java:453)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
[08/23/23 10:43:44] Launch failed - cleaning up connection
[08/23/23 10:43:44] [SSH] Connection closed.

3.挂节点机器提示权限错误

原因:/home/admin/.jenkins使用的是root权限创建的,所以admin账号没有相关权限

解决方案:

 

[root@bogon admin]# chown -R admin:admin /home/admin/.jenkins

报错详情:

[08/23/23 10:49:28] [SSH] Starting sftp client.
[08/23/23 10:49:28] [SSH] Copying latest remoting.jar...
java.io.IOException: Could not copy remoting.jar into '/home/admin/.jenkins' on agent
        at hudson.plugins.sshslaves.SSHLauncher.copyAgentJar(SSHLauncher.java:733)
        at hudson.plugins.sshslaves.SSHLauncher.lambda$launch$0(SSHLauncher.java:456)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.io.IOException: Could not copy remoting.jar to '/home/admin/.jenkins/remoting.jar' on agent
        at hudson.plugins.sshslaves.SSHLauncher.copyAgentJar(SSHLauncher.java:725)
        ... 5 more
Caused by: com.trilead.ssh2.SFTPException: Permission denied (SSH_FX_PERMISSION_DENIED: The user does not have sufficient permissions to perform the operation.)
        at com.trilead.ssh2.SFTPv3Client.openFile(SFTPv3Client.java:1201)
        at com.trilead.ssh2.SFTPv3Client.createFile(SFTPv3Client.java:1074)
        at com.trilead.ssh2.SFTPv3Client.createFile(SFTPv3Client.java:1055)
        at com.trilead.ssh2.jenkins.SFTPClient.writeToFile(SFTPClient.java:102)
        at hudson.plugins.sshslaves.SSHLauncher.copyAgentJar(SSHLauncher.java:718)
        ... 5 more
[08/23/23 10:49:28] Launch failed - cleaning up connection
[08/23/23 10:49:28] [SSH] Connection closed.

4.构建打包jenkins 报git 相关错误

原因:因为是使用root账号去安装git 和配置密钥的,所以admin账号无法拉取git

解决方案:使用admin账号进行配置git和密钥

Started by user admin
Obtained script/Jenkinsfiles/android-hertz/Jenkinsfile from git https://git.joyme.sg/joymeqa/odin.git
[Pipeline] Start of Pipeline
[Pipeline] node
Running on 10.61.153.59 in /home/admin/.jenkins/workspace/android-7hz[Pipeline] {
[Pipeline] VersionNumber
[Pipeline] withEnv
[Pipeline] {
[Pipeline] stage
[Pipeline] { (clean source)
[Pipeline] sh
+ git clean -df
+ git reset --hard
HEAD is now at ba42594 change by odin auto builder
+ git pull --rebase
Host key verification failed.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.[Pipeline] }[Pipeline] // stage[Pipeline] stage
[Pipeline] { (building)
Stage "building" skipped due to earlier failure(s)[Pipeline] }[Pipeline] // stage[Pipeline] stage
[Pipeline] { (Declarative: Post Actions)
[Pipeline] sh
+ '[' nujoom_1.5.90_gp_rb '!=' master ']'
+ git clean -df
+ git reset --hard
HEAD is now at ba42594 change by odin auto builder
+ git checkout master
Already on 'master'
+ git branch -D nujoom_1.5.90_gp_rb
Deleted branch nujoom_1.5.90_gp_rb (was 78c6a5a).[Pipeline] }[Pipeline] // stage[Pipeline] }[Pipeline] // withEnv[Pipeline] }[Pipeline] // node[Pipeline] End of PipelineERROR: script returned exit code 1
Finished: FAILURE

5.构建时ssh 10.61.158.55 机器报错Host key verification failed

+ ssh building@10.61.158.55 mkdir -p /Users/building/odin-h5ai/android-charmchat-sockpuppet/CharmChat/charmchat_1.0.0_gp_rb/20230829.7
Host key verification failed.
Error when executing failure post condition:
hudson.AbortException: script returned exit code 255
        at org.jenkinsci.plugins.workflow.steps.durable_task.DurableTaskStep$Execution.handleExit(DurableTaskStep.java:664)
        at org.jenkinsci.plugins.workflow.steps.durable_task.DurableTaskStep$Execution.check(DurableTaskStep.java:610)
        at org.jenkinsci.plugins.workflow.steps.durable_task.DurableTaskStep$Execution.run(DurableTaskStep.java:554)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)

排查方法:手工在虚拟打包机器上, 使用admin的账号,进行上面的命令。如果需要设置密码,那就说明没有配置ssh免登陆

ssh building@10.61.158.55 mkdir -p /Users/building/odin-h5ai/android-charmchat-sockpuppet/CharmChat/charmchat_1.0.0_gp_rb/20230829.7

解决方法:

  • 虚拟机器上执行

[admin@bogon lastet]$ cd ~/.ssh
[admin@bogon .ssh]$ ll
total 12
-rw------- 1 admin admin 1675 Aug 23 11:43 id_rsa
-rw-r--r-- 1 admin admin  395 Aug 23 11:43 id_rsa.pub
-rw-r--r-- 1 admin admin  363 Aug 23 14:42 known_hosts

将虚拟机的id_rsa.pub 文件download以后 上传到master 机器上。必须是复制文件的形式,否则会报错

  • master机器上执行

一定要追加写入,不要重新写入,否则所有的都需要重新弄。不放心的话可以提前备份一份/Users/building/.ssh/authorized_keys文件

cat id_rsa.pub >>/Users/building/.ssh/authorized_keys
  • 虚拟服务器上操作,检查配置是否生效

6.构建时jenkins提示JAVA_HOME有问题

  • 解决方案1:odin/script/Jenkinsfiles/android/Jenkinsfile 脚本中声明

export PATH=/home/admin/jdk-11.0.20+8/bin/:$PATH

  • 解决方案2:

报错详情

构建类型: bundleOuterRelease
构建分支: nujoom_1.5.90_gp_rb
======java========
./bloodeye/odinAutoBuilder: line 9: java: command not found

ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.
  1. 构建时报错无法获取到网络资源libimcore-1.2.12.aar文件
  • 报错信息:

  • FAILURE: Build completed with 3 failures.
    
    1: Task failed with an exception.
    -----------
    * What went wrong:
    Execution failed for task ':app:checkHertzOuterReleaseDuplicateClasses'.
    > Could not resolve all files for configuration ':app:hertzOuterReleaseRuntimeClasspath'.
       > Failed to transform libimcore-1.2.12.aar (com.im.live:libimcore:1.2.12) to match attributes {artifactType=enumerated-runtime-classes, org.gradle.category=library, org.gradle.libraryelements=jar, org.gradle.status=release, org.gradle.usage=java-runtime}.
          > Could not download libimcore-1.2.12.aar (com.im.live:libimcore:1.2.12)
             > Could not get resource 'http://maven.linkv.fun/repository/liveme-android/com/im/live/libimcore/1.2.12/libimcore-1.2.12.aar'.
                > Read timed out
    

  • 排查:直接在虚拟服务器上, 访问 对应的下载地址,可以访问通,但是下载非常慢。

  • 原因:这个访问链接linkv 超时,目前解决不了,遇到这种报错,就登录打包机上传该aar文件即可

  • 临时方案:手工mac本地下载libimcore-1.2.12.aar文件,手工上传到打包服务器中

cd /home/admin/.gradle/caches/modules-2/files-2.1/com.im.live/libimcore/1.2.12
mkdir 7e494aecb44925457b4cc28ed98bca8ba12f3e67

  • 终极解决方案:联系IT部门(切换网络出口,服务器刚才是香港出口访问的,咱们办公电脑是新加坡出口访问的,切换到新加坡出口就可以下载了)

7.构建时报错chmod: cannot access

chmod: cannot access ‘/home/admin/ramdisk/android-charmchat/bloodeye/odinAutoBuilder’: No such file or directory

原因:因为对应的/home/admin/ramdisk/ 目录下 权限所有为root,而jenkins构建使用的是admin,所以提示无权限

解决方案:

chown -R admin:admin /home/admin/ramdisk/

8.构建时报错workspace/JOB_NAME@2

解决方案:

  1. 删除/home/admin/.jenkins/workspace 下所有对应的 JOB_NAME@ 的文件夹。 我当时试这个不好使

  2. 重新新建一个job,换一个名字。这个当时好使了。相当于 上面的job 彻底不要了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2230814.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【刷题13】链表专题

目录 一、两数相加二、两两交换链表的节点三、重排链表四、合并k个升序链表五、k个一组翻转链表 一、两数相加 题目: 思路: 注意整数是逆序存储的,结果要按照题目的要求用链表连接起来遍历l1的cur1,遍历l2的cur2,和…

人工智能与数据安全:Facebook如何应对隐私挑战

在数字时代,数据隐私和安全成为了用户和企业关注的核心问题。作为全球最大的社交媒体平台之一,Facebook面临着日益严峻的隐私挑战。近年来,频繁发生的数据泄露事件和对用户隐私的质疑,使得Facebook在保护用户数据方面倍感压力。为…

凸极式发电机的相量图分析和计算,内功率因数角和外功率因数角和功角的定义。

图1:同步发电机稳态相量图 若发电机为凸极式,由于凸极机正、交轴同步电抗不等,即xd≠xq,因此必须先借助虚构电动势 E ˙ Q E ˙ q − ( x d − x q ) I ˙ d \dot{E}_Q\dot{E}_q-(x_d-x_q)\dot{I}_d E˙Q​E˙q​−(xd​−xq​)…

C语言模拟实现堆排序

堆排序是一种效率比较高的排序方法,时间复杂度。 堆分为大堆和小堆,如果想要拍升序我们需要建立大堆,而如果想要拍降序则需要建立小堆,在使用堆排序前需要先建立一个堆,如果不会建立可以看我前面写的C语言模拟实现堆的…

HCIA笔记整合

第一部分: OSI七层模型 应用层:人机交互 抽象语言--------编码 表示层:编码------二进制 会话层:提供会话号 传输层:TCP/UDP 分段(收到MTU值的限制) MTU:最大传输单元&#xff…

html简易流程图

效果图 使用htmlcssjs&#xff0c;无图片&#xff0c;没用Canvas demo: <!DOCTYPE html> <html> <head><link href"draw.css" rel"stylesheet" /><script src"draw.js" type"text/javascript"></…

新手BUG:在声明了返回值的函数中不写返回值

本文对两个分别以int和string为返回值类型的函数进行分析&#xff0c;说明了在有返回值的函数中不写返回值会产生的问题。然后给出在编译阶段检查出这样的问题的办法。 一、背景 在软件测试环节发现&#xff0c;函数会在返回之前coredump。经过排查发现&#xff0c;在这个会…

单个相机矫正畸变

1、通过标定助手获取到内参外参&#xff0c;外参在此无效&#xff0c;只用到了内参 2、然后通过halcon算子进行矫正 参考&#xff1a;超人视觉

【骑士放置——最大独立集】

题目 思路 最大独立集n-最小点覆盖n-最大边匹配 代码 #include <bits/stdc.h> using namespace std; #define x first #define y second typedef pair<int, int> PII; const int N 110; int dx[8] {-2, -1, 1, 2, 2, 1, -1, -2}; int dy[8] {1, 2, 2, 1, -1, …

【每日题解】3226. 使两个整数相等的位更改次数

给你两个正整数 n 和 k。 你可以选择 n 的 二进制表示 中任意一个值为 1 的位&#xff0c;并将其改为 0。 返回使得 n 等于 k 所需要的更改次数。如果无法实现&#xff0c;返回 -1。 示例 1&#xff1a; 输入&#xff1a; n 13, k 4 输出&#xff1a; 2 解释&#xff1a…

使用Docker Swarm进行集群管理

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 使用Docker Swarm进行集群管理 引言 Docker Swarm 简介 安装 Docker Ubuntu CentOS 初始化 Swarm 集群 加入 Worker 节点 验证集…

SPA和SSR

单页面应用程序(SPA) 单页面应用(SPA)全称是:Single-page application, SPA应用是在客户端呈现的(术语称:CRS)。 SPA应用默认只返回一个空HTML页面&#xff0c;如:body只有<div id"app"></div>而整个应用程序的内容都是通过JavaScript动态加载&#xf…

初始JavaEE篇——多线程(4):wait、notify,饿汉模式,懒汉模式,指令重排序

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;JavaEE 目录 wait、notify 方法 多线程练习 单例模式 饿汉模式 懒汉模式 指令重排序 wait、notify 方法 wait 和 我们前面学习的sleep…

MySQL-基础汇总

MySQL-基础汇总 数据库对于任何一个从事后台开发的人说都是永远躲不掉的&#xff0c;任何系统或程序离开了数据的支持都变的毫无意义。而管理数据的工具——数据库就显得尤为重要。本章节我们的核心就是 MySQL&#xff0c;相信很多小伙伴跟我一样&#xff0c;也沉浸在增、删、…

【AD】1-2 AD24软件的中英文版本切换

1.如图设置软件后&#xff0c;关闭软件重新打开。如果想要切换回英文&#xff0c;将③勾选去掉&#xff0c;关闭软件重新在打开即可。

CSS、Less、Scss

CSS、Less和SCSS都是用于描述网页外观的样式表语言&#xff0c;但它们各自具有不同的特点和功能。以下是对这三者的详细阐述及区别对比&#xff1a; 详细阐述 CSS&#xff08;Cascading Style Sheets&#xff09; 定义&#xff1a;CSS是一种用来表现HTML或XML等文件样式的计算机…

【Python项目管理】“无法创建虚拟环境”报错原因及解决方法

一、问题说明 笔者最近在做一个python项目&#xff08;使用pycharm IDE&#xff09;&#xff0c;在添加python解释器时&#xff0c;提示无法创建虚拟环境&#xff08;Unable to create virtual environment&#xff09;&#xff0c;如下2图所示&#xff1a; 【添加python解释…

【实践】某央企研究院如何打造IT监控告警平台?

01客户简介&#xff1a; 案例客户为某央企下属研究院。 02痛点分析&#xff1a; 随着信创国产化持续推进&#xff0c;案例客户已完成部分IT核心系统的替代&#xff0c;部署了一系列国产软硬件设施&#xff0c;如Kylinv10操作系统、融智通网络设备等。由于信创生态不够成熟&a…

qt QBrush详解

1、概述 QBrush是Qt框架中的一个基本图形对象类&#xff0c;它主要用于定义图形的填充模式。QBrush可以用于填充如矩形、椭圆形、多边形等形状&#xff0c;也可以用于绘制背景等。通过QBrush&#xff0c;可以设置填充的颜色、样式&#xff08;如实心、渐变、纹理等&#xff09…

0-1规划的求解

实验类型&#xff1a;◆验证性实验 ◇综合性实验 ◇设计性实验 实验目的&#xff1a;学会使用Matlab编程实现求解0-1规划。 实验内容&#xff1a;1.学习使用Matlab定义子函数的命令function&#xff1b; 2.编程求解0-1型整数规划的枚举法或隐枚举法。 例1&#xff1a;求…