If statement gitlab ci yaml文件上的if-else命令
ı有一个yaml文件,我需要确认发送的yaml文件是否成功。否则yaml文件将失败 ı想知道,若响应消息为true,则yaml文件成功,否则yaml文件将失败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'
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"
也就是说,脚本行应该使用双引号,而这些脚本中的字符串应该使用单引号。此外,该行应仅以一个-
字符开头