concourse.ci mit windows

nachdem ich nun viel zu viele stunden mit diesem problem verbracht habe, hier eine kleine denkstütze für mich (und vielleicht auch für andere).

vorgeschichte: ich arbeite mich gerade in concourse.ci ein. dafür habe ich die lokale testumgebung mit vagrant installiert und mit notepad++ die tutorials durchgespielt. soweit klappte alles.

das problem: sobald ich die tasks in separate yml-files und auch die passenden befehle in sh-scripts ausgelagert habe, erhielt ich beim ausführen folgenden fehler:

hijack: Backend error: Exit status: 500, message: {"Type":"","Message":"runc exec: exit status 1: exec failed: container_linux.go:264: starting container process caused \"exec: \\\"./gitlab/createFile.sh\\\": permission denied\"\n","Handle":""}

relativ schnell hatte ich rausgefunden, dass es wohl ein berechtigungsproblem ist. in den tutorials, die alle auf unix/linux und mac angepasst sind, wird überall drauf hingewiesen, dass das script noch executable gemacht werden muss. leider weist niemand drauf hin, dass man das auch bei windows machen muss und vorallem wie man das machen kann, denn „chmod=+x“ funktioniert auf windows nicht wirklich…

aber gemacht werden muss es!

die lösung: man macht es mit git (welches vermutlich in allen fällen in dieser kombination auch mit installiert ist). der befehl vor dem push lautet:

git update-index --chmod=+x foo.sh

und endlich ist die pipeline grün 🙂

 

Leave a Reply