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.

Reply via email to