Jenkins搭建集成部署与使用

Jenkins安装

下载地址:https://jenkins.io/zh/
安装文档:https://jenkins.io/zh/doc/pipeline/tour/getting-started/
按照默认的推荐完成安装即可。

插件和全局配置

jdk配置
android sdk配置
android ndk配置
gradle配置
git配置

这些就不多说了,本地的话应该都有了,如果部署到远程服务器上的话得安装一下。

安装Jenkins插件
Manage Jenkins >> Manage Plugins

搜索安装Git插件(远程仓库)
搜索安装Git Parameter插件(配置选择构建分支)
搜索安装Gradle插件(Android构建工具)
搜索安装description setter plugin插件(添加构建后的描述)
下载安装fir插件(自动上传apk到fir平台)
也可以直接在https://plugins.jenkins.io/上搜索下载插件,然后在Jenkins插件管理上传hpi文件。

Jenkins - Manage Jenkins - Confogure System - 找到全局属性
配置自己的环境 Gradle我没配置,而是在具体的项目配置中勾选Force GRADLE_USER_HOME to use workspace
在这里插入图片描述

创建Jenkins任务

创建任务

点击“新建Item”,并且输入任务名称(例:autoapk)新建一个自由风格项目(freeStyle project)
点击新建Item
输入名称新建一个自由风格项目
依次输入任务描述,选择第四个勾选框this project is parameterized 点击“添加参数”,可以看到很多选择我们大部分用到的是choice parameter(可选参数),git parameter(这个选项需要安装插件Git Parameter Plug-In),第一个可选参数我们填写打包的环境BUILD_TYPE,选项则是我们提供的选项描述已经很清晰了。
在这里插入图片描述
在这里插入图片描述
第二个可选参数我们选择打包的平台(我们是为不同厂家的平板打包使用不同签名的包)至于我们项目中如何拿到这个值我们需要在gradle.properties中配置一个同名的PLATFORM
在这里插入图片描述
gradle.properties

在根目录的build.gradle中使用

apply plugin: 'com.android.application'
//xxx1 1 xxx2 2
def platFormType = PLATFORM ? Integer.valueOf(PLATFORM) : 1
android {
    signingConfigs {
        debug {
            if (platFormType == 1) {
                storeFile file("../xxx1_platform.jks")
                storePassword 'xxxxxx'
                keyAlias 'xxxx1'
                keyPassword 'xxxxxx'
            } else if (platFormType == 2) {
                storeFile file("../xxx2_platform.jks")
                storePassword 'xxxxxx'
                keyAlias 'xxxx2'
                keyPassword 'xxxxxx'
            }
        }
        release {
       		//与debug配置相同
        }
    }
 }

第三个可选参数配置分支BRANCH这个地方可以使用Git Parameter更方便选择各个分支,我们现在也可以使用String Parameter手动输入分支名称。
在这里插入图片描述

源码管理

输入项目SSH地址
选择添加凭据,SSH秘钥
通过$BRANCH引用上边我们填写的可选参数
在这里插入图片描述
全局凭证的添加 Jenkins首页找到凭据-系统-全局凭据-左侧选择添加凭据
在这里插入图片描述
添加好之后就可以在源码管理 git下的Credentials右侧的添加
在这里插入图片描述

构建触发器

未配置,可以参考其他人Jenkins这个地方的配置。

构建环境

未配置,可以参考其他人Jenkins这个地方的配置。
在这里插入图片描述

构建

在这里插入图片描述

这里需要设置gradle,我们增加一个构建步骤:Invoke Gradle script,然后配置如上,也可以选择 Use Gradle Wrapper,实际操作中选择Invoke Gradle script后边task也会执行。
Tasks里面输入我们要执行的任务,一般是clean assemble$BUILD_TYPE,其实就是gradle打包构建命令,输入在这里即可。
点开高级:Pass all job parameters as Project properties,一定要勾选这个选项,代表把你上面的那些参数用来当作gradle构建参数,否则的话是不会起作用的。
Force GRADLE_USER_HOME to use workspace意思是自动下载使用项目依赖的Gradle 勾选不勾选都没问题。

Execute shell 构建完成之后执行
在这里插入图片描述

#!/bin/bash
echo ">>> 开始上传到蒲公英"
dir="/Users/Shared/Jenkins/Home/workspace/AutoMakeApk/taxi/build/outputs/apk/${BUILD_TYPE}/"
fileName=""

cd $dir

for i in $(ls)
do
  echo $i
  temp=$i
  if [ "${temp##*.}"x = "apk"x ]
    then
      fileName=$i
  fi
done

fullPath=$dir$fileName

echo 文件全路径:$fullPath
RESULT=$(curl -F "file=@${fullPath}" -F "uKey=替换为自己的uKey" -F "_api_key=替换为自己的api_key" https://qiniu-storage.pgyer.com/apiv1/app/upload)
echo $RESULT
sub_json=${RESULT##*appKey\":\"}
appkey=${sub_json%\",\"userKey*}

export DOWNLOAD_URL=https://www.pgyer.com/$appkey #设置全局变量,为了发邮件拼接完整路径

echo "#######################################################################################"
echo "##"                                                                                
echo "下载地址:<<< ${DOWNLOAD_URL} >>>"                                          
echo "##"                                                                                     
echo "#######################################################################################"

最后保存填写内容退出。

开始构建项目

在这里插入图片描述

jenkins 本地二维码生成 高级篇
Android使用Jenkins持续集成
Jenkins+Android自动打包续4:打包后自动上传到文件服务器
使用Docker搭建Jenkins进行持续集成持续部署
Jenkins部署Android项目并上传fir平台及显示二维码下载

猜你喜欢

转载自blog.csdn.net/u011148116/article/details/106333960