Size: a a a

Ionic - русскоговорящее сообщество

2020 October 05

AS

Anatoly Shirokov in Ionic - русскоговорящее сообщество
Nick Galko
и тут вопрос - есть ли у тебя хранилище артефактов, и какое, и юзаешь ли ты fastline
Нет, хранилища нет, fastline не испоьзую
источник

NG

Nick Galko in Ionic - русскоговорящее сообщество
У меня сложилось впечатление, что вложенные пайпы ты юзаешь
источник

AS

Anatoly Shirokov in Ionic - русскоговорящее сообщество
Хранилище выполняет роль apple при публикации
источник

NG

Nick Galko in Ionic - русскоговорящее сообщество
у меня вопрос - если да, то как - это противоречит доке
источник

NG

Nick Galko in Ionic - русскоговорящее сообщество
Anatoly Shirokov
Хранилище выполняет роль apple при публикации
ну это влоб
источник

AS

Anatoly Shirokov in Ionic - русскоговорящее сообщество
Nick Galko
у меня вопрос - если да, то как - это противоречит доке
? Не думаю, что понял
источник

NG

Nick Galko in Ionic - русскоговорящее сообщество
Anatoly Shirokov
? Не думаю, что понял
у меня сложилось впечатление, что у тебя пайплайн разделен на подпайплайны (каждая джоба)
источник

NG

Nick Galko in Ionic - русскоговорящее сообщество
например android - джоба
источник

NG

Nick Galko in Ionic - русскоговорящее сообщество
ios джоба
источник

NG

Nick Galko in Ionic - русскоговорящее сообщество
и ты в глобальной джобе триггеришь их
источник

AS

Anatoly Shirokov in Ionic - русскоговорящее сообщество
Да у меня основной пайплайн триггерит в параллели джобы для прода и теста для android/ios
источник

NG

Nick Galko in Ionic - русскоговорящее сообщество
а можешь этот фрагмент показать?
источник

NG

Nick Galko in Ionic - русскоговорящее сообщество
именно он и интересен
источник

NG

Nick Galko in Ionic - русскоговорящее сообщество
просто сейчас у меня 1 большой пайплайн
источник

NG

Nick Galko in Ionic - русскоговорящее сообщество
и если будут поджобы - я смогу на разных агентах их выполнять
источник

AS

Anatoly Shirokov in Ionic - русскоговорящее сообщество
Nick Galko
а можешь этот фрагмент показать?
pipeline {
   agent any
   parameters {
       string(name: 'PARAM_PROJECT', description: 'Project')
       string(name: 'PARAM_BUILD_NUMBER', description: 'Build number')
   }
   stages {
       stage('Set build name') {
           steps {
               buildName "${params.PARAM_PROJECT}"
           }
       }
       stage('Parallel build') {
           parallel {
               stage('Android Test') {
                   steps {
                       build job:
                           'ionic4-android-build-pipeline',
                           parameters: [
                               string(name: 'PARAM_PROJECT', value: "${params.PARAM_PROJECT}"),
                               string(name: 'PARAM_PROJECT_DIR', value: "${params.PARAM_PROJECT}-test"),
                               string(name: 'PARAM_BUILD_OPTIONS', value: '--release'),
                               string(name: 'PARAM_BUILD_NUMBER', value: "${params.PARAM_BUILD_NUMBER}")
                           ]
                   }
               }                
               stage('Android Prod') {
                   steps {
                       build job:
                           'ionic4-android-build-pipeline',
                           parameters: [
                               string(name: 'PARAM_PROJECT', value: "${params.PARAM_PROJECT}"),
                               string(name: 'PARAM_PROJECT_DIR', value: "${params.PARAM_PROJECT}-prod"),
                               string(name: 'PARAM_BUILD_OPTIONS', value: '--release --prod'),
                               string(name: 'PARAM_BUILD_NUMBER', value: "${params.PARAM_BUILD_NUMBER}")
                           ]
                   }
               }                
               stage('iOS Test') {
                   steps {
                       build job:
                           'ionic4-ios-build-pipeline',
                           parameters: [
                               string(name: 'PARAM_PROJECT', value: "${params.PARAM_PROJECT}"),
                               string(name: 'PARAM_PROJECT_DIR', value: "${params.PARAM_PROJECT}-test"),
                               string(name: 'PARAM_BUILD_OPTIONS', value: '--release'),
                               string(name: 'PARAM_BUILD_NUMBER', value: "${params.PARAM_BUILD_NUMBER}")
                           ]
                   }
               }                
               stage('iOS Prod') {
                   steps {
                       build job:
                           'ionic4-ios-build-pipeline',
                           parameters: [
                               string(name: 'PARAM_PROJECT', value: "${params.PARAM_PROJECT}"),
                               string(name: 'PARAM_PROJECT_DIR', value: "${params.PARAM_PROJECT}-prod"),
                               string(name: 'PARAM_BUILD_OPTIONS', value: '--release --prod'),
                               string(name: 'PARAM_BUILD_NUMBER', value: "${params.PARAM_BUILD_NUMBER}")
                           ]
                   }
               }                
           }
       }
   }
}

это в свою очередь тоже параметрическая джоба
источник

AS

Anatoly Shirokov in Ionic - русскоговорящее сообщество
ну а рутовый джоб - это конкретный проект
источник

NG

Nick Galko in Ionic - русскоговорящее сообщество
Ну ты замудрил
источник

AS

Anatoly Shirokov in Ionic - русскоговорящее сообщество
Nick Galko
Ну ты замудрил
да ладно, "разделяй и властвуй"
источник

NG

Nick Galko in Ionic - русскоговорящее сообщество
Anatoly Shirokov
да ладно, "разделяй и властвуй"
Да верно все, но тут как варик можно тупо фастлайн намутить
источник