If statement gitlab ci yaml文件上的if-else命令

If statement gitlab ci yaml文件上的if-else命令,if-statement,gitlab,yaml,If Statement,Gitlab,Yaml,ı有一个yaml文件,我需要确认发送的yaml文件是否成功。否则yaml文件将失败 ı想知道,若响应消息为true,则yaml文件成功,否则yaml文件将失败 variables: NUGET_PATH: 'C:\Tools\Nuget\nuget.exe' MSBUILD_PATH: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\amd64\msbuild.exe'

ı有一个yaml文件,我需要确认发送的yaml文件是否成功。否则yaml文件将失败

ı想知道,若响应消息为true,则yaml文件成功,否则yaml文件将失败

variables:
  NUGET_PATH: 'C:\Tools\Nuget\nuget.exe'
  MSBUILD_PATH: 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\amd64\msbuild.exe'
  SOLUTION_PATH: 'Textbox_ComboBox.sln'

stages:
  - build
  - job1
  - job2

before_script:
  - "cd Source"

build_job:
  stage: build
  except:
    - schedules
  script:
    - '& "$env:NUGET_PATH" restore'
    - '& "$env:MSBUILD_PATH" "$env:SOLUTION_PATH" /nologo /t:Rebuild /p:Configuration=Debug'

job1:
  stage: job1
  script:
    - 'curl adress1'
    -  -  if [ "$message" == "SAP transfer started. Please check in db" ]; then exit 0; else exit 1; fi


job2:
  stage: trigger_SAP_service
  when: delayed
  start_in: 5 minutes
  only:
    - schedules
  script:
    - 'curl adress2'
我希望这项工作能成功。如果消息是SAP传输已启动。请签入数据库。否则yaml文件将失败。
有没有人能提供正确的语法?gitlabci中是否有关于条件(如果有,则为循环)的文档?

一个选项是使用外部脚本文件,然后只需调用
/path/to/myscript.sh
,即可从CI配置中调用该文件。好处是您不必再担心YAML语法

如果您希望保留在
.gitlab ci.yml
文件中,我相信以下方法可以奏效:

job1:
  stage: job1
  script:
    - "curl adress1"
    - "if [ '$message' == 'SAP transfer started. Please check in db' ]; then exit 0; else exit 1; fi"
也就是说,脚本行应该使用双引号,而这些脚本中的字符串应该使用单引号。此外,该行应仅以一个
-
字符开头