Gitlab останавливает выполнение после запуска .bat файла - PullRequest
0 голосов
/ 24 мая 2019

У меня есть случай, когда я хочу запустить Redis Server из файла .gitlab-ci.yml.

Это мой упрощенный код:

stages:
  - build_deploy

deploy_qa:
  stage: build_deploy
  tags:
  - windows
  script:
  - 'cd c:\PsTools'
  #port number:1111, password: xxx, server: developmentServer"
  - 'pstools-start-redis-server 1111 xxx developmentServer'
  #- do something else here after .bat executes
  environment:
    name: developmentServer
    url: http://someUrl
  when: manual

Он запускает скрипт pstools-start-redis-server.bat, расположенный на сервере Gitlab CI (Windows):

:SetVars
    set _pwd=%2%
    set _port=%1%
    set _server=%3%
:Main
PsExec \\%_server% -d -accepteula -w c:\Redis c:\Redis\start-redis-server.bat %_port% "%_pwd%"

EXIT 0

Который затем использует psexec для запуска сценария start-redis-server.bat на сервере разработки (Windows), где находится Redis.

:SetVars
    set _pwd=%2%
    set _port=%1%
:Main
   redis-server --port %_port% --requirepass %_pwd%
EXIT 0

Теперь моя проблема заключается в том, что после запуска сценария start-redis-server.batGitlab заканчивает информацией «Задание выполнено успешно», и ни одно из действий, определенных позже, не происходит.

Running with gitlab-runner 11.7.0 (8bb608ff)
  on CISERVER fdbb21ea
Using Shell executor...
Running on CISERVER...
Fetching changes...
HEAD is now at e9bd103 Update .gitlab-ci.yml
Checking out e9bd103c as AC-641-qa-e2e-webapi-pipeline-fail...
Skipping Git submodules setup
$ cd c:\PsTools
$ pstools-start-redis-server 1111 xxx developmentServer

PsExec v2.2 - Execute processes remotely
Copyright (C) 2001-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

Connecting to developmentServer...


Starting PSEXESVC service on developmentServer...


Connecting with PsExec service on developmentServer...


Starting c:\Redis\start-redis-server.bat on developmentServer...



c:\Redis\start-redis-server.bat started on developmentServer with process ID 6244.
Job succeeded

Теперь я прочитал, что использование команды call необходимо при запуске сценариев .bat в Windows, и япопробовал, но, возможно, я делаю это неправильно, потому что это все еще не работает.Любая помощь будет оценена.

С уважением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...