Android持续化集成coding自动打包

Android持续化集成coding自动打包

一、在coding创建DevOps项目模板
1.DevOps模板提供持续化集成相关功能(构建计划、制品库)
在这里插入图片描述
二、在创建好的DevOps项目模板里创建代码仓库
1.上传项目代码至代码仓库在这里插入图片描述
三、创建构建计划
1.可选择coding提供的Android构建过程或者自定义构建过程
在这里插入图片描述
2.自定义构建过程(选择静态配置的Jenkinsfile)
在这里插入图片描述
四、使用coding制品库存放打包好的apk文件
1.创建制品库,使用coding创建项目制品库在这里插入图片描述
2.创建构建计划,使用coding持续化集成创建构建计划,构建计划使用静态Jenkinsfile
3.下图为静态Jenkinsfile代码块在这里插入图片描述

pipeline {
  agent any
  stages {
    stage('检出代码') {
      steps {
        checkout([$class: 'GitSCM',
        branches: [[name: GIT_BUILD_REF]],
        userRemoteConfigs: [[
          url: GIT_REPO_URL,
          credentialsId: CREDENTIALS_ID
        ]]])
      }
    }
    stage('编译构建APK') {
      steps {
        sh './gradlew clean && rm -rf ./app/build/'
        sh './gradlew assembleRelease'
      }
    }
    stage('上传apk至制品库') {
      agent any
      steps {
        script {
          sh "curl -T app/build/outputs/apk/release/*.apk -u ${PROJECT_TOKEN_GK}:${PROJECT_TOKEN} https://${ARTIFACT_IMAGE}-release.apk?version=${GIT_BUILD_REF}"
        }
      }
    }
    stage('获取版本名称和版本号') {
      steps {
        sh '''#!/bin/bash
        filepath=`ls /root/workspace/build.gradle`
        //获取版本号
        versionname=`cat $filepath |grep versionName|awk \'{print $3}\'`
        //获取版本code
        versioncode=`cat $filepath |grep versionCode|awk \'{print $3}\'`
        //获取打包好的apk名称
        filePath=`ls /root/workspace/app/build/outputs/apk/release/*.apk`
        fileName=${filePath##*/}
        //打印相关信息
        echo ${versionname//,/}
        echo ${versioncode//,/}
        echo apkurl=${COS_URL}$fileName
        '''
      }
    }
  }
  environment {
    //腾讯云cos存储桶域名(拼接apk名称就是完整下载链接)
    COS_URL = 'https://gyapp-android-1257050538.cos.ap-nanjing.myqcloud.com/'
    //项目名
    ENTERPRISE = 'gzmpc'
    //代码仓库名
    PROJECT = 'androidzidonghua'
    //制品库名
    ARTIFACT = 'android'
    //自定义apk名称
    CODE_DEPOT = 'gyapp'
    ARTIFACT_BASE = "${ENTERPRISE}-generic.pkg.coding.net"
    ARTIFACT_IMAGE = "${ARTIFACT_BASE}/${PROJECT}/${ARTIFACT}/${CODE_DEPOT}"
  }
}


五、使用腾讯云cos存储桶存放打包好的apk文件
1.创建腾讯云cos存储对象-存储桶,使用腾讯云cos存储桶功能创建存放apk文件地址,配置相关参数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.创建构建计划,使用coding持续化集成创建构建计划,构建计划使用静态Jenkinsfile
3.使用coding构建计划创建cos环境变量
COS_SECRET_ID - 腾讯云访问密钥 SecretId
COS_SECRET_KEY - 腾讯云访问密钥 SecretKey
COS_BUCKET_NAME - 腾讯云 COS 存储桶名称
COS_BUCKET_REGION - 腾讯云 COS 存储桶地区(在coding上配置环境变量时取值为非中文)
在这里插入图片描述
4.下图为静态Jenkinsfile代码块
在这里插入图片描述

pipeline {
  agent any
  stages {
    stage('检出代码') {
      steps {
        checkout([$class: 'GitSCM',
        branches: [[name: GIT_BUILD_REF]],
        userRemoteConfigs: [[
          url: GIT_REPO_URL,
          credentialsId: CREDENTIALS_ID
        ]]])
      }
    }
    stage('编译构建APK') {
      steps {
        sh './gradlew clean && rm -rf ./app/build/'
        sh './gradlew assembleRelease'
      }
    }
    stage('apk上传cos') {
      steps {
        sh 'sudo pip install --upgrade pip'
        sh 'sudo pip install -U coscmd'
        sh 'coscmd config -a ${COS_SECRET_ID} -s ${COS_SECRET_KEY} -b ${COS_BUCKET_NAME} -r ${COS_BUCKET_REGION}'
        sh 'coscmd upload -r app/build/outputs/apk/release/*.apk /'
      }
    }
    stage('获取版本名称和版本号') {
      steps {
        sh '''#!/bin/bash
        filepath=`ls /root/workspace/build.gradle`
        //获取版本号
        versionname=`cat $filepath |grep versionName|awk \'{print $3}\'`
        //获取版本code
        versioncode=`cat $filepath |grep versionCode|awk \'{print $3}\'`
        //获取打包好的apk名称
        filePath=`ls /root/workspace/app/build/outputs/apk/release/*.apk`
        fileName=${filePath##*/}
        //打印相关信息
        echo ${versionname//,/}
        echo ${versioncode//,/}
        echo apkurl=${COS_URL}$fileName
        '''
      }
    }
  }
  environment {
    //腾讯云cos存储桶域名(拼接apk名称就是完整下载链接)
    COS_URL = 'https://gyapp-android-1257050538.cos.ap-nanjing.myqcloud.com/'
    //项目名
    ENTERPRISE = 'gzmpc'
    //代码仓库名
    PROJECT = 'androidzidonghua'
    //制品库名
    ARTIFACT = 'android'
    //自定义apk名称
    CODE_DEPOT = 'gyapp'
    ARTIFACT_BASE = "${ENTERPRISE}-generic.pkg.coding.net"
    ARTIFACT_IMAGE = "${ARTIFACT_BASE}/${PROJECT}/${ARTIFACT}/${CODE_DEPOT}"
  }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值