Interesujące. Twój problem nie występuje w twoim skrypcie, ponieważ już wyjaśniłeś, że działa on w zadaniu wsadowym.
Nie wiem, jak jest napisane, ale proponuję przejrzeć Stage, Lock and Milestone, co prawdopodobnie jest potrzebne.
Etap etap jest podstawowym budulcem w rurociąg, dzieląc kroki rurociągu do jednoznacznych jednostek i pomaga wizualizować postęp używając „Etap View” wtyczki
Chyba można dodać blok etapów podobny do tego: Pipeline:
stage("Previous Step") {
// Some previous step
}
stage("Wait for Script Execution") {
// Call your script
bat 'powershell.exe -ExecutionPolicy Bypass "D:\\Test\\Deploymentscripts\\PowerShellScript\\FileTransfer.ps1 $env:EndMarket $env:Environment"'
}
stage("Next Step") {
// Script already finished its execution
}
Ale bez informacji o potoku to tylko zgadywanie. Także poprawić kompatybilność skryptu unikając „bat i ExcutionPolicy” i używając PowerShell plugin z tej wtyczki można uprościć swój kod tak:
powershell -File your_script.ps1
EDIT: Zapomniałam wspomnieć, że można spróbować inną alternatywę do powershell i biblioteki winscp używając "scp" bezpośredniej kompatybilności pomiędzy Windows i Linux, mówię o Cygwin.
Z Cygwin zainstalowany (z SCP) można użyć scp jak to było pole Linux i skrypt bash zamiast PowerShell:
D:/cygwin-64/bin/run.exe /usr/bin/bash -lic \"/home/user/file.sh\"
W tym przypadku używam skryptu cicho przez Cygwin w Jenkins Projekt z opcją "Uruchom Windows Batch". W skrypcie możesz dodać polecenia powłoki i instrukcje scp, które chcesz.
Może wydawać się nieco bardziej złożona, ale zapewnia większą elastyczność w wykonywaniu zadań systemu Windows - Linux.
Mam więcej szczegółowych przykładów w moim blog, może się przydać.
Jak wspomniano wcześniej, należy sprawdzić, czy zmienne są ładowane.
Musisz rozwiązać ten problem za pomocą skryptu PowerShell, który nie jest podany w pytaniu. Istnieje przykład PowerShell/winscp.dll tutaj: https://winscp.net/eng/docs/library_powershell. Jak w tym przykładzie '$ session' jest czyszczona (' $ session.Dispose() '), gdy transfer zakończył się pomyślnie, można założyć, że proces transferu został zakończony. – iRon
Czy możesz udostępnić swoją konfigurację potoku? –