2016-11-28 39 views
8

Mam skrypt powershell, który zostanie uruchomiony w Bamboo, który zaktualizuje status kompilacji Bamboo. Jest to wywoływane w Github, a następnie status będzie aktualizowany niezależnie od kompilacji wywołującej skrypt. Obecnie działa dobrze na komputerze z systemem Windows, ale teraz są kompilacje, które są potrzebne na komputerze Mac.Powershell nie spełnia zadania Bamboo, ponieważ -ExecutionPolicy bypass -Komendny kod powrotu to 134 zamiast 0

Po pierwsze skrypt zwrócił kod błędu -1, ponieważ nie miałem zainstalowanego powershell na komputerze Mac. Teraz, gdy mam zainstalowane PowerShell, otrzymuję następujący błąd:

Failing task since return code of [powershell -ExecutionPolicy bypass -Command /bin/sh /var/folders/c6/T/MAC-CUSAPP-JOB1-14-ScriptBuildTask.ps1] was 134 while expected 0 

kodeksu sama w sobie jest dobre dla systemu Windows, jak wszystkie inne kompilacje z wykorzystaniem systemu Windows Agent na bambus z powodzeniem budować zadanie.

& "${bamboo.build.working.directory}\scripts\publish-status.ps1" ` 
    -repoName MyRepo ` 
    -status pending ` 
    -revision ${bamboo.repository.revision.number} ` 
    -buildUrl ${bamboo.buildResultsUrl} ` 
    -description "Bamboo has started a build" ` 
    -context "bamboo-build" 

Czy jest to możliwe, aby działało poprawnie na komputerze Mac. Obecnie sprawdziłem, czy maszyna z systemem Windows w wersji Powershell w wersji 5.0.0+, gdy Mac jest Powershell 6.0.0 Alpha byłby to powód, dla którego nie buduje i podając kod błędu 134?

Kiedy ja nawet nie próbował to zrobić:

if (2 -lt 3) 
{ 
Write-Host this is lower 
} 
else 
{ 
Write-Host this is higher 
} 

To daje taką samą odpowiedź, nawet jeśli zrobiłem Write-Host cześć byłoby odpowiedzieć kodu powrotu 134.

Nawet przy użyciu prosty skrypt programu Powerhell, który mówi, że return 0 nadal będzie wyświetlał komunikat o błędzie z kodu powrotu będącego liczbą 134. Sprawdziłem także ExecutionPolicy dla maszyny i nie ma ograniczeń dla wszystkiego.

Problemem nie jest też Power Shell na Macu, ponieważ będzie on z powodzeniem działał poprawnie, ale to jak bambus używa skryptu PowerShell na Macu. Czy musisz robić coś innego, gdy używasz skryptu powershell na bambusie podczas korzystania z komputera Mac?

Oto obraz tego, jak uruchomić Bamboo, jest to zadanie skryptu, które jest potrzebne w systemie Windows, ale to nie działa na komputerze Mac. enter image description here Aktualizacja

dodałem PowerShell jako plik wykonywalny, a następnie wykorzystywane zadanie polecenia nazwać plik powershell, ale to nadal nie działa, każdy pomysł, jeśli to z powodu Bamboo nie wspiera PowerShell na mac jak PowerShell praca na za pomocą wizualnego kodu studyjnego i terminalu na komputerze Mac. Zrobiłem to dwa sposoby tak:

-ExecutionPolicy Bypass -File /Users/dev/Documents/PowreshellScripts/hello.ps1 

a także tak:

-NoProfile -NoLogo -NonInteractive -ExecutionPolicy Bypass -File /Users/dev/Documents/PowreshellScripts/hello.ps1 
+0

tylko zawężenie problemu można spróbować uruchomić skrypt na mac zewnątrz z bambusa i zobaczyć, co jest kod powrotu i czy jakieś błędy zostaną wygenerowane podczas biegu? z mojego zrozumienia nie wszystko jest jeszcze zaimplementowane na Macu i może to być problem. –

+0

, którego nie jestem pewien, ale komunikat o błędzie wydaje się wskazywać, że skrypt jest uruchomiony i kończy działanie z kodem błędu 134, czy to błąd, który skrypt skonfigurował do generowania? a jeśli tak, to czy możesz pokazać kod w pobliżu? –

+0

, więc chyba że całkowicie nie rozumiem tego komunikatu o błędzie, coś sprawia, że ​​proces powershell kończy się kodem 134 zamiast 0, i dlatego podejrzewałem, że skrypt ma jakiś krok, w którym mógłby zwrócić ten kod, gdyby coś się nie udało, który mógłby poinformować, jaka część skryptu nie mogła zostać zaimplementowana na mac. jeśli chciałbyś sprawdzić, czy powershell może w ogóle działać na Macu poprzez bambus, spróbuj utworzyć zadanie testowe, które zwraca uwagę, ale 'return 0' i wysyła je do mac, aby sprawdzić czy działa. –

Odpowiedz

1

miałem pobieżnie Google problemu i wygląda to faktycznie błąd z PowerShell dla Linuksa (i MacOS przez proxy), przynajmniej zgodnie z PowerShell for Mac GitHub issue I managed to find for it. Użytkownik, który zgłosił problem z PowerShell, wydaje się mieć bardzo podobny problem z parametrem -ExecutionPolicy podczas wywoływania skryptu PowerShell z dystrybucji Linux (Ubuntu?) I zakładam, że ten ekstrapoluje na MacOS z powodu architektury UNIX.

Wygląda na to, że dodano komentarze, które zostały poprawione w wersji 18 programu Alpha.Jeśli to nadal nie działa na MacOS z najnowszej kompilacji PowerShell, mógłbym zasugerować to zgłosić na PowerShell GitHub jak ten użytkownik zrobił :)