Используйте условия конвейера Azure, чтобы изменить команду задачи, переданную GradleTask - PullRequest
0 голосов
/ 05 июня 2019

У меня есть приложение для Android на VSTS, которое выполняет серию Gradle Tasks.

  steps:
          - script: echo Building!

          - task: Gradle@2
            displayName: Gradle Clean
            inputs:
              gradleWrapperFile: ${{ variables.GRADLE_WRAPPER_FILE }}
              gradleOptions: ${{ variables.GRADLE_OPTIONS }}
              publishJUnitResults: false
              tasks: 'clean'

          - task: Gradle@2
            displayName: Gradle Assemble Release
            inputs:
              gradleWrapperFile: ${{ variables.GRADLE_WRAPPER_FILE }}
              gradleOptions: ${{ variables.GRADLE_OPTIONS }}
              publishJUnitResults: false
              tasks: 'assembleRelease'

          - task: Gradle@2
            displayName: Gradle Lint
            inputs:
              gradleWrapperFile: ${{ variables.GRADLE_WRAPPER_FILE }}
              gradleOptions: ${{ variables.GRADLE_OPTIONS }}
              publishJUnitResults: false
              tasks: 'lint'

          - task: Gradle@2
            displayName: Gradle Test
            inputs:
              gradleWrapperFile: ${{ variables.GRADLE_WRAPPER_FILE }}
              gradleOptions: ${{ variables.GRADLE_OPTIONS }}
              publishJUnitResults: true
              testResultsFiles: '**/TEST-*.xml'
              tasks: 'test'

Моя структура приложения имеет несколько вариантов продукта / вариантов сборки, а команда assembleRelease занимает llloooonnggg время - настолько, что Задача часто прерывается по времени, поскольку она превышает 60-минутный лимит!

Теперь у меня есть различные мои варианты / варианты, которые существуют в определенных ветвях с долгосрочной поддержкой, поэтому я подумываю попытаться использовать condition - используя startsWith System.PullRequest.TargetBranch, чтобы определить, на какую ветвь нацелен запрос на извлечение. в и передача меньшего подмножества assembleXYZ команд в блоке tasks: ....

Из того, что я могу сказать, conditions обычно заставляет задачу / шаг / задание / этап запускать или пропускать ... поэтому я не уверен, сработает ли мой образ мыслей.

Возможна ли вообще такая вещь? Кто-нибудь пробовал это?

...