一、背景
由于我的jenkins master是运行在kubernetes中的,打包android是非常消耗CPU和内存资源,需将安卓打包单独调度到一个物理节点进行打包。
所有需要创建一个物理Node节点。
jenkins master 安装请看之前的文章,本文暂不介绍。
二、安装插件及slave节点配置
2.1、slave安装java环境
[root@mayi-ops ~]# yum -y install jdk-8u261-linux-x64.rpm
[root@mayi-ops ~]# cat >> /etc/profile <<EOF
export JAVA_HOME=/usr/java/jdk1.8.0_261-amd64
export JAR_HOME=${JAVA_HOME}/jre
export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
EOF
[root@mayi-ops ~]# source /etc/profile
如果通过jenkins 调用节点的命令打包,需在节点安装相应的工具。
2.2、安装SSH Slaves 插件
三、jenkins配置
3.1、添加凭证
3.2、配置从节点【节点管理—>新建节点】
3.3、启动Node节点
四、jenkinsfile pipeline
//*************************************************
// Author : mayi-ops
// Last modified: 2022-01-06
// wechat : a403182580
// Description : 安卓jenkinsfile打包
//*************************************************
//pipeline构建过程
pipeline {
agent {label 'mayi-ops'}
//变量
environment {
DingTalkHook = "<https://oapi.dingtalk.com/robot/send?access_token=***>"
}
stages {
//如果是非admin、打包、打包部署,才会打包
stage('拉取代码') {
steps{
script {
/* 获取git地址 */
if ( env.GitAddress ){
if ( env.GitAddress == '' ) {
echo "请输入git分支!"
}
}else{
echo "请输入gitlab项目地址。"
exit 0
}
/* 代码分支 */
//输入分支:参数化构建过程->字符参数->名称:codeBranch->默认值:fat
if ( env.codeBranch ){
if ( env.codeBranch == '' ){
echo "请输入git分支!"
}
}else{
echo "没输入分支,默认使用master"
env.codeBranch = "master"
}
echo "git:"+env.GitAddress
echo "Branch:"+env.codeBranch
//拉取业务代码
checkout([
$class: 'GitSCM',
branches: [[name: "${codeBranch}"]],
doGenerateSubmoduleConfigurations: false,
extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'code']],
submoduleCfg: [],
userRemoteConfigs: [[credentialsId: "build_auth", url: "${GitAddress}"]]
])
}
}
}
/*
stage('调度测试'){
steps{
script {
dir("code"){
echo "打印主机名:"
sh "hostname"
}
}
}
}
*/
}
}
dd