Зеркало exportOptions.plist для Jenkinsfile? - PullRequest
0 голосов
/ 02 июля 2019

Прежде всего, я новичок в Дженкинс, пытаюсь выяснить, что было сделано до моего подхода.Думая о том, как я могу улучшить текущий конвейер.

У меня есть проект iOS с 4 различными целями сборки, с разным профилем обеспечения на каждом.В моем jenkinsfile у меня есть конвейер с несколькими этапами, у меня также есть определенный путь к моему exportOptions.plist, который имеет все идентификаторы профиля обеспечения.

exportOptions.plist используется на этапе, где он создает 4 различных IPA, и передается в качестве опции -exportOptionsPlist в каждой из 4 строк;

перед этим на этапе, где он создаетархивы Мне нужно жестко закодировать такие параметры, как PROVISIONING_PROFILE в каждой из 4 строк;

Возможно ли получить строку PROVISIONING_PROFILE из файла exportOptions.plist?

        stage('create arch') {
            steps {
                script {
                    if (BRANCH_NAME == 'dev') {
                            sh '/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -project myApp/myApp.xcodeproj -scheme myApp_DEV -configuration Distribution -archivePath ' + XCARCHIVE_PATH_1 + ' TARGETED_DEVICE_FAMILY="1,2" CODE_SIGN_IDENTITY="iPhone Distribution: myCompany" PROVISIONING_PROFILE="1234567890" archive'
                    }
                    if (BRANCH_NAME == 'release') {
                        sh '/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -project myApp/myApp.xcodeproj -scheme myApp_1 -configuration Distribution -archivePath '     + XCARCHIVE_PATH         + ' TARGETED_DEVICE_FAMILY="1,2" CODE_SIGN_IDENTITY="iPhone Distribution: myCompany" PROVISIONING_PROFILE="0987654321" archive'
                        sh '/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -project myApp/myApp.xcodeproj -scheme myApp_DEV -configuration Distribution -archivePath '      + XCARCHIVE_PATH_1      + ' TARGETED_DEVICE_FAMILY="1,2" CODE_SIGN_IDENTITY="iPhone Distribution: myCompany" PROVISIONING_PROFILE="1234567890" archive'
                        sh '/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -project myApp/myApp.xcodeproj -scheme myApp_2 -configuration Distribution -archivePath ' + XCARCHIVE_PATH_2 + ' TARGETED_DEVICE_FAMILY="1,2" CODE_SIGN_IDENTITY="iPhone Distribution: myCompany" PROVISIONING_PROFILE="0987612345" archive'
                        sh '/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -project myApp/myApp.xcodeproj -scheme myApp_3 -configuration Distribution -archivePath '     + XCARCHIVE_PATH_3     + ' TARGETED_DEVICE_FAMILY="1,2" CODE_SIGN_IDENTITY="iPhone Distribution: myCompany" PROVISIONING_PROFILE="5432109876" archive'
                    }
                }
            }
        }
        stage('create ipa') {
            steps {
                script {
                    if (BRANCH_NAME == 'dev') {
                            sh '/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -exportArchive -archivePath ' + XCARCHIVE_PATH_1 + ' -exportPath ' + TARGET_IPA_PATH + ' -exportOptionsPlist ' + EXPORT_OPTIONS_PLIST_PATH
                    }
                    if (BRANCH_NAME == 'release') {
                        sh '/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -exportArchive -archivePath ' + XCARCHIVE_PATH + ' -exportPath ' + TARGET_IPA_PATH + ' -exportOptionsPlist ' + EXPORT_OPTIONS_PLIST_PATH
                        sh '/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -exportArchive -archivePath ' + XCARCHIVE_PATH_1 + ' -exportPath ' + TARGET_IPA_PATH + ' -exportOptionsPlist ' + EXPORT_OPTIONS_PLIST_PATH
                        sh '/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -exportArchive -archivePath ' + XCARCHIVE_PATH_2 + ' -exportPath ' + TARGET_IPA_PATH + ' -exportOptionsPlist ' + EXPORT_OPTIONS_PLIST_PATH
                        sh '/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -exportArchive -archivePath ' + XCARCHIVE_PATH_2 + ' -exportPath ' + TARGET_IPA_PATH + ' -exportOptionsPlist ' + EXPORT_OPTIONS_PLIST_PATH
                    }
                }
            }
        }

Похоже, что идентификаторы профиля жестко закодированыв двух местах 1) exportOptions 2) jenkinsfile

...