У меня есть приложение для 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
обычно заставляет задачу / шаг / задание / этап запускать или пропускать ... поэтому я не уверен, сработает ли мой образ мыслей.
Возможна ли вообще такая вещь?
Кто-нибудь пробовал это?