If statement 如何在gitlab ci yaml中读取json文件并使用if-else命令?

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'

我有一个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'
  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条件以使管道成功或失败?