iOS 集成Jenkins pipeline 完整流程

这篇具有很好参考价值的文章主要介绍了iOS 集成Jenkins pipeline 完整流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一 创建一个Jenkins pipeline 项目

ios jenkins 脚本构建,jenkins,脚本,jenkins,ios,运维

配置分支参数

ios jenkins 脚本构建,jenkins,脚本,jenkins,ios,运维

选择参数化构建构成,如上图所示,通过该参数配置分支,然后我们选择 ‘选项参数’ 选项,如下图
ios jenkins 脚本构建,jenkins,脚本,jenkins,ios,运维
然后我们填入参数名称和选项
ios jenkins 脚本构建,jenkins,脚本,jenkins,ios,运维
ios jenkins 脚本构建,jenkins,脚本,jenkins,ios,运维

在工程中添加 ExportOptions.plist 文件

手动进行archive ,获取一个 ExportOptions.plist 文件,然后将该文件放到工程中,
后面进行自动化打包需要用到里面的配置,文件位置如图
ios jenkins 脚本构建,jenkins,脚本,jenkins,ios,运维

创建放置打包文件的文件夹

我这里选择放到桌面上, 在桌面上创建一个Jenkins, 并在里面创建一个Archive 和 Export 文件夹
如图
ios jenkins 脚本构建,jenkins,脚本,jenkins,ios,运维

在工程里面添加shell脚本文件

为了方便管理,我们将各个步骤的脚本放到同一个文件夹里面,如图
ios jenkins 脚本构建,jenkins,脚本,jenkins,ios,运维

ios jenkins 脚本构建,jenkins,脚本,jenkins,ios,运维

下面贴出各个shell 脚本文件里面的命令

config.sh

#!/bin/bash -l

APP_NAME="ThePaperBase"

ROOT_PATH="/Users/liubo/Desktop/Jenkins"

CODE_PATH="/Users/liubo/.jenkins/workspace/Pipeline"

#蒲公英上的User Key
uKey="45d2be1046a2db153cda3552207c1a6a"

#蒲公英上的API Key
apiKey="840f54de6357a2b1b8f60cd4a8d107fa"

archive.sh

#!/bin/bash -l
# 设置utf8编码
export LANG=en_US.UTF-8

source ./config.sh
#获取当前版本号
get_build_version=`xcodebuild -showBuildSettings  -target ${APP_NAME} | grep CURRENT_PROJECT_VERSION | tr -d 'CURRENT_PROJECT_VERSION = '`
old_build_version=$get_build_version
echo "old_build_version = $old_build_version"
echo "${ROOT_PATH}"
#版本号增加
agvtool new-version $(($old_build_version+1))

DATE=$(date +%Y%m%d-%H-%M-%S)
ARCHIVE_NAME="${APP_NAME}_${DATE}.xcarchive"
ARCHIVE_PATH="${ROOT_PATH}/Archive/${ARCHIVE_NAME}"
IPANAME="${APP_NAME}_${DATE}_IPA"
IPA_PATH="${ROOT_PATH}/Export/${IPANAME}"
EXPORT_METHOD_PLIST_PATH=${CODE_PATH}/ExportOptions/ExportOptions.plist
#删除旧的打包文件夹
rm -rdf "${ROOT_PATH}/Archive"
rm -rdf "${ROOT_PATH}/Export"
# 再创建新的打包文件夹
mkdir "${ROOT_PATH}/Archive"
mkdir "${ROOT_PATH}/Export"

cd "${CODE_PATH}"

echo "代码路径 ${CODE_PATH}"

pod install

echo "begin archive"
xcodebuild archive -workspace ${APP_NAME}.xcworkspace -scheme ${APP_NAME} -configuration Debug -archivePath ${ARCHIVE_PATH}
echo "begin expertipa"
xcodebuild -exportArchive -archivePath ${ARCHIVE_PATH} -exportPath "${IPA_PATH}" -exportOptionsPlist ${EXPORT_METHOD_PLIST_PATH} -allowProvisioningUpdates

uploadpgy.sh

#!/bin/bash -l

source ./config.sh

cd ${ROOT_PATH}
#要上传的ipa文件路径
IPA_PATH=`find $(pwd) -name *.ipa`

#执行上传至蒲公英的命令,这句不需要修改
curl -F "file=@${IPA_PATH}" -F "uKey=${uKey}" -F "_api_key=${apiKey}" https://www.pgyer.com/apiv1/app/upload

gitpush.sh

#!/bin/bash -l
source ./config.sh
#输出新版本号
get_current_build_veresion=`xcodebuild -showBuildSettings  -target ${APP_NAME} | grep CURRENT_PROJECT_VERSION | tr -d 'CURRENT_PROJECT_VERSION = '`
current_build_veresion=$get_current_build_veresion

echo "current_build_veresion = $current_build_veresion"

currentBranch=$(git branch --show-current)
git add .
git commit -m "buildVersion${get_current_build_veresion}"
git push -u origin ${currentBranch}

配置pipeline sript

ios jenkins 脚本构建,jenkins,脚本,jenkins,ios,运维

pipeline script 命令

pipeline {
    agent any
     environment {
        shdirect = "CIScript"
        archivesh = "./archive.sh"
        uploadPgy = "./uploadpgy.sh"
        gitpush = "./gitpush.sh"
    }
    stages {
        stage('checkout') {
            steps {
                  git branch: "${params.branch}", url: "https://gitee.com/xxxxxxx.git"
            }
        }
         stage('build') {
            steps {
                 sh """
                   chmod -R +x ${shdirect}
                   cd ${shdirect}
                    ${archivesh}
                 """
            }
        }
          stage('uploadPgy') {
            steps {
                 sh """
                 cd ${shdirect}
                    ${uploadPgy}
                 """
            }
        }
         stage('gitpush') {
            steps {
                 sh """
                 cd ${shdirect}
                    ${gitpush}
                 """
            }
        }
    }
}

构建

ios jenkins 脚本构建,jenkins,脚本,jenkins,ios,运维

执行结果
ios jenkins 脚本构建,jenkins,脚本,jenkins,ios,运维文章来源地址https://www.toymoban.com/news/detail-635324.html

到了这里,关于iOS 集成Jenkins pipeline 完整流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • jenkins设置Jenkinsfile的pipeline脚本 nohup运行

    默认情况下,jenkins pipiline 会kill 掉衍生后台的子进程,比如nohup 命令等。 设置环境变量即可。withEnv([‘JENKINS_NODE_COOKIE=dontKillMe’])

    2024年01月22日
    浏览(36)
  • 持续集成交付CICD:Jenkins Pipeline与远程构建触发器

    目录 一、实验 1.Jenkins Pipeline本地构建触发器 2.Jenkins Pipeline与远程构建触发器(第一种方式) 3.Jenkins Pipeline与远程构建触发器(第二种方式) 4.Jenkins Pipeline与远程构建触发器(第三种方式) 二、问题 1.pipeline插件依赖安装报错 2.控制台输出环境变量名冲突 3.并行构建job存在

    2024年02月03日
    浏览(43)
  • (十四)devops持续集成开发——jenkins流水线使用pipeline方式发布项目

    本节内容我们使用另外一种方式pipeline实现项目的流水线部署发布,Jenkins Pipeline是一种允许以代码方式定义持续集成和持续交付流水线的工具。通过Jenkins Pipeline,可以将整个项目的构建、测试和部署过程以脚本的形式写入Jenkinsfile中,实现对整个流程的可视化管理和控制。在

    2024年02月21日
    浏览(57)
  • 基于Jenkins的Python脚本执行详解!另附完整安装教程

    2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)-CSDN博客 文章浏览阅读2k次,点赞85次,收藏11次。你知不知道有这么一个软件测试面试的刷题小程序。里面包含了面试常问的软件测试基础题,web自动化测试、app自动化测试、接口测

    2024年02月02日
    浏览(34)
  • 基于Jenkins的开发测试全流程持续集成实践

    目录 一、持续集成全流程介绍 二、ASP.NET Core CI流程部分 三、ASP.NET Core CD流程部分 四、RobotFramework AT流程部分 五、小结 本文将近半年来的一些实践总结一下,可能不太完善或优美,但的确初步解决了我目前所在项目组的一些痛点。当然这仅是一家之言也不够完整,后续还会

    2024年02月12日
    浏览(50)
  • jenkins自动化脚本集成时钉钉消息未发送

           在进行jenkins自动化脚本集成时,需要配置钉钉发送消息。钉钉的配置正确,测试钉钉消息发送成功,但是当构建项目时,却没有收到钉钉消息,报错如下: [钉钉插件]发送消息时报错: java.lang.NullPointerException: Cannot invoke \\\"io.jenkins.plugins.DingTalkUserProperty.getMobile()\\\" becaus

    2024年02月07日
    浏览(31)
  • 使用jenkins创建双provisioning profile的iOS安装包

    1、作为DevOps工程师,我需要从开发那边拿到:证书的p12文件及密码,以及provisioning profile及相关的属性信息。 2、拿到证书的P12文件,将该文件上传到构建机器,并双击后,输入密码,将证书导入构建机器上。 3、按照如下步骤,将provisioning profile导入构建机器上: 3.1 通过s

    2024年02月11日
    浏览(32)
  • Aritest+python+Jenkins解放双手iOS/Android自动化

    ARITest、Python 和 Jenkins 可以结合在一起创建一个自动化测试解决方案,实现持续集成和持续测试的目标。以下是三者如何协同工作的基本概念: 1. **ARITest**:    ARITest 是一款功能全面的自动化测试工具,提供 UI 自动化、接口自动化、性能测试等多种测试手段。假设您正在使

    2024年04月28日
    浏览(34)
  • iOS原生应用屏幕适配完整流程

    1. 已iPhone 11 布局为设计布局,其他机型已这个来适配 2.变量与控件对应关系 txtViewer: txtAccount   txtpwd seg   btnOk   3.适配方法实现:

    2024年01月19日
    浏览(42)
  • 使用docker安装Jenkins时无法pull问题Trying to pull repository docker.io/jenkins/jenkins ...manifest for dock..

    博客:docker 安装jenkins 第一步:安装Jenkins的镜像 报错 解决方案 解决方案博客:解决docker pull java或者xxx镜像报错的问题 ,结合:linux 操作 json文件 先说原理和操作: 原理就是在我们pull镜像时,用的时原有的镜像(属于国外),我们修改为国内的镜像pull,会快很多也不容易

    2024年02月08日
    浏览(75)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包