Jenkins 编译脚本

groovy 复制代码
pipeline {
    agent any
    stages {
          stage('Git Checkout') {
            steps {
                 script {
                      def  a =  env.JOB_NAME
                      def splittedStrings = a.split('_')
                       echo splittedStrings[splittedStrings.size()-1]
                        env.app = splittedStrings[splittedStrings.size()-1]
                       
                      def branch = splittedStrings[0..splittedStrings.size()-2].join("_")
                        echo "当前分支名称:$branch"
                        env.branch = branch
                        git credentialsId: 'git' , branch: branch,   url:  'git@192.168.1.253:src0711.git'
                }
            }
        }
        
         stage('Get Last Commit') {
            steps {
                script {
                    // 获取最后一次提交日志
                    def lastCommit = sh(returnStdout: true, script: "git log --format=\"%cn %s\" -n 1")
                    env.lastCommit = lastCommit.trim()
                    echo "最后一次提交的日志为: ${env.lastCommit}"
                }
            }
        }
        
        stage('Build APK') {
            steps {
                 // def currentDir = pwd()
                // 切换到新的目录
                dir(pwd() + "/u05/5mic/v2/${env.app}") {
                      script {
                        echo "当前分支名称:${env.branch}"
                     sh 'chmod 777 gradlew'
                     sh "./gradlew clean assemblerelease -PbranchName=${env.branch} -Plast_commit='${env.lastCommit}'"
                }
                }
            }
        }
        
         stage('Copy APK') {
            steps {
                // 切换到新的目录
                dir(pwd() + '/u05/5mic/v2/${env.app}/app/build/outputs/apk') {
                fileOperations([fileCopyOperation(
                    excludes: '', 
                flattenFiles: true, 
                includes: '**/*.apk', 
                renameFiles: true, // 启用文件重命名功能
                sourceCaptureExpression: '', 
                targetLocation: "/home/a/Desktop/a123/${env.branch}",
                targetNameExpression: '${env.apk}.apk' // 设置目标文件名为 a.apk,这会替换掉所有被复制文件的原始名称
               )])
                }
            }
        }
    }
}
相关推荐
wewowilling5 小时前
认识微服务
java·运维·微服务·springcloud
玖石书6 小时前
Ubuntu 24.04 UFW 全命令攻略:从入门到端口开放实战
linux·运维·ubuntu
weifont7 小时前
自动化抓取和上架商品:能不动手,就少动手
运维·前端·自动化
拂拉氏8 小时前
【知识讲解】 Linux之动静态库的了解
linux·运维·服务器·动静态库
Mikko78 小时前
Linux 重启后日志没了?进程被 OOM 杀了去哪看?logrotate 之后日志还往旧文件写?三台真机实测日志与性能排查
linux·运维·centos
光依旧9 小时前
发版就掉请求?Spring Boot优雅停机的四步
运维·spring boot·nginx·高可用·优雅停机·mcp server
yichengerp10 小时前
电子行业常用erp系统有哪些?推荐适合中小电子厂的易呈erp软件,操作简单,易落地
大数据·运维·人工智能·云计算·制造
天国梦10 小时前
国密门禁品牌怎么选?2026年最新3个避坑要点
运维·服务器·数据库·python
信可维11 小时前
自动化操作多平台账号:登录态、双会话与 User Data 的 3 个坑
运维·自动化
龙仔72511 小时前
RustDesk 自建服务器 Key 强校验配置笔记
运维·服务器·笔记