Я начал работать с моим файлом YAML, чтобы выполнить некоторые задачи и поместить образ докера в концентратор докеров. IFF Ветка равна master, иначе запустить несколько тестов и убедиться, что тесты прошли без проблем. У меня есть этот файл YAML сейчас
trigger:
- master
jobs:
- job: runTests
pool:
vmImage: 'Ubuntu-16.04'
condition: ne(variables['Build.SourceBranch'], 'refs/heads/master'))
steps:
- task: Maven@3
inputs:
mavenPomFile: 'pom.xml'
# according to: https://github.com/MicrosoftDocs/vsts-docs/issues/3845,
# maven options should go to goals instead, as mavenOptions is for jvm options
mavenOptions: '-Xmx3072m'
javaHomeOption: 'JDKVersion'
jdkVersionOption: '1.11'
jdkArchitectureOption: 'x64'
publishJUnitResults: true
testResultsFiles: '**/surefire-reports/TEST-*.xml'
goals: 'verify -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true --batch-mode --show-version'
- job: ifBranchIsMaster
pool:
vmImage: 'Ubuntu-16.04'
condition: eq(variables['Build.SourceBranch'], 'refs/heads/master'))
steps:
- task: Maven@3
inputs:
mavenPomFile: 'pom.xml'
# according to: https://github.com/MicrosoftDocs/vsts-docs/issues/3845,
# maven options should go to goals instead, as mavenOptions is for jvm options
mavenOptions: '-Xmx3072m'
javaHomeOption: 'JDKVersion'
jdkVersionOption: '1.11'
jdkArchitectureOption: 'x64'
publishJUnitResults: true
testResultsFiles: '**/surefire-reports/TEST-*.xml'
goals: 'verify -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true --batch-mode --show-version -Ddocker.username=$(DOCKER_HUB_USER) -Ddocker.password=$(DOCKER_HUB_PASS) docker:push'
в общем, как мы видим в документации, право здесь точно говорит, какое условие использовать в какой ситуации, и
condition: eq(variables['Build.SourceBranch'], 'refs/heads/master'))
работает как надо, когда ветвь является главной, запустите эти шаги, иначе пропустите
но это условие
condition: ne(variables['Build.SourceBranch'], 'refs/heads/master'))
работает даже в мастере, так что я прочитал неправильно? Я хочу пропустить первые тесты, если ветвь является основной, если я не пропущу первый, я в основном запускаю тесты одни и те же тесты 2 раза