I followed the instructions to get the workflowLibs.git repository from Jenkins:
SInce the repository was empty I got nonexistent ref as expected and mentioned in the instructions. sverre@mintaka:~/workspace> git clone https://build.company.com:8443/workflowLibs.git Cloning into 'workflowLibs'... Checking connectivity... done. warning: remote HEAD refers to nonexistent ref, unable to checkout. sverre@mintaka:~/workspace3> cd workflowLibs/ sverre@mintaka:~/workspace/workflowLibs> git checkout -b master Switched to a new branch 'master' I added one file src/com/company/Build.groovy When I tried to push it didn't work sverre@mintaka:~/workspace/workflowLibs> git push --set-upstream origin master fatal: unable to access 'https://build.company.com:8443/workflowLibs.git/': The requested URL returned error: 403 mandag 30. mai 2016 08.03.20 UTC+2 skrev Sverre Moe følgende: > > Yes, that explained a lot. Thanks. > > lørdag 28. mai 2016 02.11.53 UTC+2 skrev Kohsuke Kawaguchi følgende: >> >> See https://github.com/jenkinsci/workflow-cps-global-lib-plugin >> >> Hope that helps! >> >> On Thu, May 26, 2016 at 12:37 AM Sverre Moe <[email protected]> wrote: >> >>> Yes, I came across it, but there is so little information about how to >>> use this and how it works. >>> The only thing I could find was this example here >>> https://github.com/jenkinsci/pipeline-examples/tree/master/global-library-examples/global-function >>> which I did not understand much of. >>> >>> // The call(body) method in any file in workflowLibs.git/vars is exposed >>> as a method with the same name as the file. >>> In any file in "workflowLibs.git/vars": Where is this location? >>> >>> Jenkinsfile >>> standardBuild { >>> environment = 'golang:1.5.0' >>> mainScript = ''' >>> go version >>> go build -v hello-world.go >>> ''' >>> postScript = ''' >>> ls -l >>> ./hello-world >>> ''' >>> } >>> >>> standardBuild.groovy >>> def call(body) { >>> def config = [:] >>> body.resolveStrategy = Closure.DELEGATE_FIRST >>> body.delegate = config >>> body() >>> stage 'checkout' >>> node { >>> checkout scm >>> stage 'main' >>> docker.image(config.environment).inside { >>> sh config.mainScript >>> } >>> stage 'post' >>> sh config.postScript >>> } >>> } >>> >>> What is body? >>> What does this do? >>> body.resolveStrategy = Closure.DELEGATE_FIRST >>> >>> From what I could understand it would seem standardBuild in Jenkinsfile >>> runs the code within call(body) and variables defined in this function in >>> the Jenkinsfile is accessible through body.delegate = config somewhat, but >>> why that way around and not config = body.delegate >>> >>> Why is there no def in front of variables in standardBuild? >>> def mainScript >>> >>> Where do I place the file standardBuild.groovy? >>> >>> >>> onsdag 25. mai 2016 22.54.29 UTC+2 skrev Baptiste Mathus følgende: >>> >>>> Did you possibly have a look at: >>>> https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Remote+Loader+Plugin >>>> or >>>> https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Shared+Groovy+Libraries+Plugin >>>> ? >>>> >>> 2016-05-24 16:00 GMT+02:00 Sverre Moe <[email protected]>: >>>> >>> What is the best design approach to keeping the Jenkinsfile small >>>>> (little build logic as possible)? >>>>> >>>>> Having close to a hundred projects and several branches on each, then >>>>> duplicating the pipeline logic within each Jenkinsfile would be a >>>>> maintenance nightmare. >>>>> >>>>> 1) >>>>> I could put the Pipeline script within Jenkins Scriptler >>>>> def packageInformation = load >>>>> '../../../scriptler/scripts/package-information.groovy' >>>>> packageInformation.init() >>>>> However I'm only able to access this on the master node >>>>> >>>>> 2) >>>>> I could have all the pipeline scripts within a jenkins-ci-scripts >>>>> project in Git. >>>>> stage 'Init' >>>>> git url: 'ssh://[email protected]/tools/jenkins-ci-scripts.git' >>>>> stash includes: '**/*.groovy', name: 'scripts' >>>>> >>>>> stage 'Checkout' >>>>> checkout scm >>>>> unstash scripts >>>>> def packageInformation = load >>>>> 'src/main/groovy/com/company/pipeline/package-information.groovy' >>>>> packageInformation.init() >>>>> I could then load the pipeline scripts from this stash. However I do >>>>> not like having to duplicate even this much in all my different >>>>> Jenkinsfile. >>>>> >>>>> 3) >>>>> We have a inhouse build tool installed on all build machines. This >>>>> contains various build scripts, shell, python, ruby. >>>>> >>>>> >>>>> Example Jenkinsfile with little logic as possible >>>>> def branch = env.BUILD_BRANCH >>>>> def pipeline = load '/path/to/our/installed/build-pipeline.groovy' >>>>> parallel pipeline.nodes(branch) >>>>> >>>>> >>>>> My current Jenkins instance I comprised of Multi-configuration >>>>> jobs/projects (a jenkins job/project for each release branch). Having >>>>> aprox >>>>> 8 release branches for each of the 60 projects. I am moving over to >>>>> Pipeline because of a complex workflow and because Multi-configuration >>>>> does >>>>> not support a Prebuild-step that I need. >>>>> >>>> -- >>>>> 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/126d204a-f002-4838-a67e-96d02913f7df%40googlegroups.com >>>>> >>>>> <https://groups.google.com/d/msgid/jenkinsci-users/126d204a-f002-4838-a67e-96d02913f7df%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> -- >>> 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/82ee1124-fd31-4107-9a33-77c9ff041271%40googlegroups.com >>> >>> <https://groups.google.com/d/msgid/jenkinsci-users/82ee1124-fd31-4107-9a33-77c9ff041271%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> -- 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/d47d5ff1-f8e7-48cf-af48-98e9f913faad%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
