If statement 如何在gitlab ci yaml中读取json文件并使用if-else命令?
我有一个yaml文件,我有一个yaml文件的响应。响应文件有一个消息部分。如果消息为真,我需要返回yaml文件的作业成功如果消息写入错误yaml文件未成功If statement 如何在gitlab ci yaml中读取json文件并使用if-else命令?,if-statement,gitlab,yaml,message,If Statement,Gitlab,Yaml,Message,我有一个yaml文件,我有一个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'
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'
这是yaml文件响应。它应该是作业成功。因为响应消息和if命令消息相同
Skipping Git submodules setup
Authenticating with credentials from job payload (GitLab Registry)
$ cd Source
$ curl adress1
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 146 0 146 0 0 877 0 --:--:-- --:--:-- --:--:-- 879
{"status":200,"message":"SAP transfer started. Please check in db","errorCode":0,"timestamp":"2019-10-04T07:59:58.436+0300","responseObject":null}$ if ( [ '$message' == 'SAP transfer started. Please check in db' ] ); then exit 0; else exit 1; fi
ERROR: Job failed: exit code 1
您在条件中使用的
消息
变量为空
您需要将curl响应分配给消息
变量:
message=$(curl -Ss adress1)
然后测试
$message
的内容,您在条件中使用的message
变量为空
您需要将curl响应分配给消息
变量:
message=$(curl -Ss adress1)
然后测试
$message
的内容,它写入的请求方法POST不受支持。我应该在脚本中编写吗?我应该使用“?”remplace-“curl-address1”
by-message=$(curl-Ss-address1)
@nicolaspinster是否可以将JSON文件的内容分析到GitLab yml文件中?并对该数据设置一些if-else条件以使管道成功或失败?它写入请求方法POST不受支持。我应该在脚本中写入此内容吗?我应该使用“?”remplace-“curl-address1”
by-message=$(curl-Ss-address1)
@nicolaspinster是否可以将JSON文件的内容分析到GitLab yml文件中?然后在数据上加上一些if-else条件以使管道成功或失败?