Задача сценария оболочки Azure Pipelines не выполняется - PullRequest
1 голос
/ 07 мая 2019

Я пытаюсь выполнить сценарий оболочки, который изменяет некоторые файлы в моем исходном коде как часть конвейера сборки. Сборка выполняется на частном агенте Linux.

Итак, я использую задачу сценария оболочки (я также пробовал встроенную задачу bash), мой yaml выглядит так:

- task: ShellScript@2
  inputs:
    scriptPath: analytics/set-base-image.bash
    args: $(analyticsBaseImage)
    failOnStandardError: true

И set-base-image.bash:

#!/bin/bash
sudo mkdir testDir
sudo sed -i -e "s/##branchBaseImagePlaceholder##/$1/g" Dockerfile-shiny
sudo sed -i -e "s/##branchBaseImagePlaceholder##/$1/g" Dockerfile-plumber

Но ничего не происходит. Я получаю вывод отладки, который выглядит следующим образом:

##[debug]/bin/bash arg: /datadrive/agent1/_work/1/s/analytics/set-base-image.bash
##[debug]args=analytics-base
##[debug]/bin/bash arg: analytics-base
##[debug]failOnStandardError=true
##[debug]exec tool: /bin/bash
##[debug]Arguments:
##[debug]   /datadrive/agent1/_work/1/s/analytics/set-base-image.bash
##[debug]   analytics-base
[command]/bin/bash /datadrive/agent1/_work/1/s/analytics/set-base-image.bash analytics-base
/datadrive/agent1/_work/1/s/analytics
##[debug]rc:0
##[debug]success:true
##[debug]task result: Succeeded
##[debug]Processed: ##vso[task.complete result=Succeeded;]Bash exited with return code: 0

testDir не создан и файлы не изменены.

Сценарий работает нормально, если я захожу на компьютер агента и запускаю его там (после запуска chmod + x в файле сценария).

Я также пробовал встроенную задачу Bash вместо задачи оболочки (в любом случае разница не очевидна).

Если я добавлю к сценарию команды, которые не требуют каких-либо привилегий, например echo и pwd, они будут работать нормально, и я увижу результаты в отладке. Но Mkdir и Sed не делают.

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