Hi all -
I'm not a go (golang) developer, but the team that I support write their
services in go. I need to build a pipeline for go builds. However...
because of the strict pathing that go expects (/go/src/Y/Y/X), I'm having
a hard time making a pipeline that works. My problem is that I need to run
the build inside of a docker container and the host user is jenkins
(501:501), so the docker user is 501, which can't write to "/" to create
the necessary paths.
I've tried to set the GOPATH, but when I do it to the work space directory,
it turns around and says that directory doesn't exist. It's baffling .
So... if you have a working pipeline script for building go, I'd love for
you to share it. Here's some examples of what I'm getting...
pipeline {
agent { docker 'golang:1.7.3-alpine' }
stages {
stage('build') {
steps {
sh 'env.GOPATH=$PWD'
sh 'mkdir -p $GOPATH/src/marketability-service'
dir('$GOPATH/src/marketability-service') {
sh 'go version'
sh 'echo $GOPATH'
sh 'mkdir -p $GOPATH/src/marketability-service/'
sh 'ls -al $GOPATH/src/marketability-service/'
checkout scm
sh 'ls -al'
}
}
}
}
}
Results:
+ docker pull golang:1.7.3-alpine
1.7.3-alpine: Pulling from library/golang
Digest: sha256:25ad25d8bece9d403be107b07c86fb6b2b588a5b26133baa9d1215c07bdbfa39
Status: Image is up to date for golang:1.7.3-alpine[Pipeline] }[Pipeline] //
stage[Pipeline]
sh[ity-service_tlester_jenkins-ZAK24AVEOSII6FI5ZPP6GCRQQ7ISJCROTD5BZVI3M4MT7EMS4ERA]
Running shell script
+ docker inspect -f . golang:1.7.3-alpine
.[Pipeline] withDockerContainer$ docker run -t -d -u 501:501 -w
/home/jenkins/workspace/ity-service_tlester_jenkins-ZAK24AVEOSII6FI5ZPP6GCRQQ7ISJCROTD5BZVI3M4MT7EMS4ERA
-v
/home/jenkins/workspace/ity-service_tlester_jenkins-ZAK24AVEOSII6FI5ZPP6GCRQQ7ISJCROTD5BZVI3M4MT7EMS4ERA:/home/jenkins/workspace/ity-service_tlester_jenkins-ZAK24AVEOSII6FI5ZPP6GCRQQ7ISJCROTD5BZVI3M4MT7EMS4ERA:rw
-v
/home/jenkins/workspace/ity-service_tlester_jenkins-ZAK24AVEOSII6FI5ZPP6GCRQQ7ISJCROTD5BZVI3M4MT7EMS4ERA@tmp:/home/jenkins/workspace/ity-service_tlester_jenkins-ZAK24AVEOSII6FI5ZPP6GCRQQ7ISJCROTD5BZVI3M4MT7EMS4ERA@tmp:rw
-e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e
******** -e ******** -e ******** -e ******** -e ******** -e ******** -e
******** -e ******** -e ******** -e ******** -e ******** -e ******** -e
******** -e ******** -e ******** -e ******** -e ******** --entrypoint cat
golang:1.7.3-alpine[Pipeline] {[Pipeline] stage[Pipeline] { (build)[Pipeline]
sh[ity-service_tlester_jenkins-ZAK24AVEOSII6FI5ZPP6GCRQQ7ISJCROTD5BZVI3M4MT7EMS4ERA]
Running shell script
+
env.GOPATH=/home/jenkins/workspace/ity-service_tlester_jenkins-ZAK24AVEOSII6FI5ZPP6GCRQQ7ISJCROTD5BZVI3M4MT7EMS4ERA
/home/jenkins/workspace/ity-service_tlester_jenkins-ZAK24AVEOSII6FI5ZPP6GCRQQ7ISJCROTD5BZVI3M4MT7EMS4ERA@tmp/durable-264541e0/script.sh:
line 1:
env.GOPATH=/home/jenkins/workspace/ity-service_tlester_jenkins-ZAK24AVEOSII6FI5ZPP6GCRQQ7ISJCROTD5BZVI3M4MT7EMS4ERA:
not found[Pipeline] }[Pipeline] // stage[Pipeline] }$ docker stop --time=1
141956393cfde63600f9fbb54475f50848279444b80abe647fef24c2bd9a5925
$ docker rm -f
141956393cfde63600f9fbb54475f50848279444b80abe647fef24c2bd9a5925[Pipeline] //
withDockerContainer[Pipeline] }[Pipeline] // node[Pipeline] End of Pipeline
GitHub has been notified of this commit’s build result
ERROR: script returned exit code 127Finished
<http://stacktrace.jenkins-ci.org/search?query=Finished>: FAILURE
--
You received this message because you are subscribed to the Google Groups
"Jenkins Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/jenkinsci-users/41945034-58a6-48fe-a8c4-1354b58e4bd8%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.