Как прочитать файл json в gitlab ci yaml и использовать команду if else? - PullRequest
0 голосов
/ 04 октября 2019

У меня есть файл 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. Должно быть, задание выполнено успешно. Ответьте на сообщение и, если командное сообщение совпадает.

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

1 Ответ

0 голосов
/ 04 октября 2019

Переменная message, используемая в вашем состоянии, пуста.

Вам необходимо присвоить ответ curl вашей переменной message:

message=$(curl -Ss adress1)

, а затем протестировать содержимое $message

...