Jenkins + iOS 持续集成配置

结合上一篇 iOS 脚本的配置,此篇整理一下通过 Pipeline 配置 iOS 持续集成打包

示例说明

  • Jenkins 示例

    《Jenkins + iOS 持续集成配置》 示例
    《Jenkins + iOS 持续集成配置》 示例说明

  • 下载 HTML 页面示例
    Tip:下载页面由 iOS-CI-Script 打包脚本提供

    《Jenkins + iOS 持续集成配置》 PC 示例
    《Jenkins + iOS 持续集成配置》 PC 示例说明
    《Jenkins + iOS 持续集成配置》 移动端示例

JOB 配置

参数化配置

  • 参数化构建中配置图中三个环境变量
    注:图中的变量名,不要填错!!!若需要自定义,请同步修改脚本的变量名
    《Jenkins + iOS 持续集成配置》 参数化配置

Pipeline 配置

pipeline {
    agent { label 'agent-name' }
    
    environment {
        JENKINS_URL_HTTPS = 'Jenkins https 协议的 url' // 如果 Jenkins 本身就是 Https 协议,则不用填写
        CONF_FILE_NAME = 'Exmaple' // 配置文件名称
        ITC_USER = '开发者账号用户名'
        ITC_PASSWORD = '开发者账号用户名' // 若开发者账号已开启双重认证,请使用专用密码
    }
        
    stages {
        stage("SCM Checkout") {
            steps {
                // Project Code
                checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: '']], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'xxxx-xxxx-xxxx-xxxxxx', url: 'http://gitlab.xxxx.com/group-name/project-name.git']]])
                // Scripts
                checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'scripts']], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'xxxx-xxxx-xxxx-xxxxxx', url: 'https://github.com/Naisisor/iOS-CI-Script.git']]])
            }
        }
        stage('Pod Install') {
            steps {
                // cd 到项目根目录,也就是 xcworkspace 所在的目录
                sh('cd $WORKSPACE && pod install --no-repo-update')
            }
        }
        stage('Compile') {
            steps {
                sh('rm -rf $WORKSPACE/build')
                // cd 到项目根目录,也就是 xcworkspace 所在的目录
                sh('cd $WORKSPACE && python3 $WORKSPACE/scripts/ci.py')
            }
        }
        stage('Archive') {
            steps {
                archiveArtifacts 'Products/*'
                script {
                    // 请先安装 `Description Setter Plugin`
                    currentBuild.description = '渠道类型:' + CONFIGURATIONS + '<br><img src=' + BUILD_URL + 'artifact/Products/' + CONF_FILE_NAME + '_iOS_' + BUILD_NUMBER + '.png>'
                }
                // 如果要取消以下注释,请确保已经安装了 `Last Changes Plugin`
                // step([$class: 'LastChangesPublisher', format: 'LINE', matchWordsThreshold: '0.25', matching: 'NONE', matchingMaxComparisons: '1000', showFiles: true, synchronisedScroll: true, endRevision: ''])
            }
        }
    }
}

以上配置完成后,保存即可构建,如遇问题请及时联系我,配置 Mac OS 自启动 Jenkins 节点 请点击 这里

    原文作者:纳爱斯
    原文地址: https://www.jianshu.com/p/320490c3ad1b
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞