ı有一个yaml文件,我需要如果真的消息发送yaml文件将是succesful.else yaml文件将失败
ı希望,如果响应消息为真,则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 Transfer,则在db.But中签入started.Please,否则yaml文件失败。有人能提供相同的正确语法吗?gitlabci中有关于条件(if-else,for loop)的文档吗?
发布于 2019-10-03 15:58:44
一种选择是使用外部脚本文件,然后只需调用./path/to/myscript.sh
即可从您的配置项中调用该文件。好处是您不必再担心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"
例如,您应该对脚本行使用双引号,对这些脚本中的字符串使用单引号。此外,该行应该只以一个-
字符开头。
https://stackoverflow.com/questions/58213534
复制相似问题