Состояние конвейеров Azure не работает должным образом - PullRequest
0 голосов
/ 02 мая 2019

Я начал работать с моим файлом 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 раза

1 Ответ

1 голос
/ 02 мая 2019

Ваш абзац неверный, должно быть так:

  - job: runTests
    condition: ne(variables['Build.SourceBranch'], 'refs/heads/master'))
    pool:
      vmImage: 'Ubuntu-16.04'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...