6

У меня есть простые сценарии PowerShell, которые я сделал в исполняемые файлы с Bamboo, добавив путь, такой как C:\build-scripts\bamboo-build-scripts\clear-directory.ps1, в качестве пути для исполняемого файла для новой емкости в Бамбуке.Скрипт Powershell как исполняемый, дающий «неправильный» код возврата -1 в Bamboo

Однако несколько сценариев, даже те, которые выполняются корректно в процессе сборки, когда они выполняются как «сценарий», будут терпеть неудачу, когда они будут запущены таким образом, предоставив код возврата -1. Вот пример из журнала сборки:

simple 18-Jun-2015 13:14:06 Failing task since return code of [C:\build-scripts\bamboo-build-scripts\update-checker.ps1 GeometryClassLibrary] was -1 while expected 0 

Это происходит с несколькими сценариями PowerShell, и вызывает остальную часть сборки procecss на провал.

Вот пример PowerShell скрипт, который я выполнить, передавая аргумент в каталог:

Remove-Item $args[0] -Force -Recurse 
[io.directory]::CreateDirectory($args[0]) 

Есть ли что-то мне нужно добавить в сценарий PowerShell, чтобы сделать его выход с правильным кодом? Или я не правильно определяю исполняемый файл в Bamboo?

+0

Поддержка Bamboo для powershell показалась мне неудовлетворительной в моем ограниченном использовании в качестве задач скрипта. –

+0

Мы имели относительно хороший успех, используя его в задачах сценария, но по мере того, как некоторые из наших скриптов стали более сложными, казалось, имеет смысл перейти к отдельному исполняемому файлу и передать аргументы. Вот где возникла проблема: скрипты работали отлично, как в сценариях. – Jake

+0

Я видел, как он игнорировал ошибки (сброшенные ошибки, которые отображались в журнале) и продолжал работать во время выполнения скрипта. Добавление строгого режима и ручной настройки EA помогло немного с тем, что я думаю, хотя. –

ответ

0

Вы можете попробовать несколько вещей:

политики выполнения

Это может быть, что скрипты не выполняют вообще, возможно, потому, что политика настроена не исполнять их. Попробуйте вызов powershell.exe непосредственно:

powershell.exe -ExecutionPolicy Bypass -File C:\build-scripts\bamboo-build-scripts\clear-directory.ps1 

(see this answer for more switches)

Труба

NSClient ++ используется, чтобы иметь проблемы с вызовом проверки, написанной в PowerShell из-за проблемы с кодом выхода. Их решение выглядело так:

cmd /c echo C:\build-scripts\bamboo-build-scripts\clear-directory.ps1; exit $LastExitCode | powershell.exe -Command - 

Возможно, это даст более точный код.

+0

Вот пример того, как я вызываю скрипт: http://i.imgur.com/wAUXJ3D.png Как мне изменить этот исполняемый файл, чтобы отразить его работу таким образом? – Jake

+0

@ Jake Можете ли вы просто скопировать и вставить то, что я разместил в этой коробке? Я не использовал Bamboo, поэтому я не уверен, что он принимает параметры и т. Д. – briantist

+1

Вторая работа из командной строки, но вставка всего этого в Bamboo как исполняемый файл не работает. Он сообщает 'Невозможно найти исполняемый файл в cmd/c echo C: \ build-scripts \ bamboo-build-scripts \ clear-directory.ps1; exit $ LastExitCode | powershell.exe -Command C: \ build-scripts \ bamboo-build-scripts \ clear-directory.ps1. Попытаться запустить его в любом случае. «Если кто-то, обладающий знаниями, бамбуковыми, может перезвонить, это будет здорово. – Jake