Showing posts with label jenkins. Show all posts
Showing posts with label jenkins. Show all posts

Monday, March 6, 2017

Jenkins/Cloudbees Available Environment Variables

Name  ↓Value   
_/usr/bin/java
ANDROID_HOME/opt/jenkins/tools/android-sdk-linux
BUILD_CAUSEMANUALTRIGGER
BUILD_CAUSE_MANUALTRIGGERtrue
BUILD_DISPLAY_NAME#39
BUILD_ID39
BUILD_NUMBER39
BUILD_TAGjenkins-EFS-SEFS_COMMON-6270-JOBS-EFS_DASHBOARD_RELEASE_CUT_JOB-39
BUILD_URLhttps://company.com:8443/jenkins/job/ShipmentEFS/job/SEFS_COMMON-6270/job/JOBS/job/SEFS_DASHBOARD_RELEASE_CUT_JOB/39/
DONT_DEPLOYfalse
EXECUTOR_NUMBER3
grunt/opt/jenkins/tools/node-v4.6.0-linux-x64/lib/node_modules/grunt-cli/bin
HOME/opt/jenkins
HUDSON_HOME/opt/jenkins
HUDSON_SERVER_COOKIE4b4586c89a3e8abe
HUDSON_URLhttps://company.com:8443/jenkins/
JAVA_HOME/opt/jenkins/tools/jdk1.7.0_79
JENKINS_HOME/opt/jenkins
JENKINS_SERVER_COOKIE4b4586c89a3e8abe
JENKINS_URLhttps://company.com:8443/jenkins/
JOB_BASE_NAMEEFS_DASHBOARD_RELEASE_CUT_JOB
JOB_NAMEEFS/EFS_COMMON-6270/JOBS/SEFS_DASHBOARD_RELEASE_CUT_JOB
JOB_URLhttps://company.com:8443/jenkins/job/EFS/job/EFS_COMMON-6270/job/JOBS/job/SEFS_DASHBOARD_RELEASE_CUT_JOB/
LOGNAMEjenkins
MAIL/var/mail/jenkins
NLSPATH/usr/dt/lib/nls/msg/%L/%N.cat
NODE_LABELS2144 Android Java7 Java8 Tomcat Tomcat (2144)
NODE_NAMETomcat (2144)
OLDPWD/opt/jenkins
PATH/usr/local/bin:/bin:/usr/bin
PATH+JDK/opt/jenkins/tools/jdk1.7.0_79/bin
PWD/opt/jenkins
RELEASE_TAG1.3.2.6
ROOT_BUILD_CAUSEMANUALTRIGGER
ROOT_BUILD_CAUSE_MANUALTRIGGERtrue
SHELL/bin/bash
SHLVL1
SOURCE_BRANCH1.3.0-SNAPSHOT
SSH_CLIENT10.236.10.51 60556 22
SSH_CONNECTION10.236.10.51 60556 10.236.14.54 22
USERjenkins
XFILESEARCHPATH/usr/dt/app-defaults/%L/Dt

Wednesday, February 1, 2017

Jenkins / CloudBees : moving jobs between servers .... how ...

 curl -s https://USER:API_TOKEIN@jenkins.prod.com:8443/jenkins/job/SCM_SVN_MODEL/config.xml | curl -X POST 'http://USER:APITOKEN@jenkins-dev.test.com:8080/jenkins/createItem?name=JOBNAME' --header "Content-Type: application/xml" -d @-
Get the API token on the target machine (in this case jenkins-dev.test.com)
- Open browser and login on target machine
- http://jenkins-dev.test.com:8080/jenkins/user/USER/configure
- hit the API TOKEN button
If you want to directly copy to a folder do this ...
curl -s https://USER_SRC:APITOKEN_SRC@jenkins.prod.com:8443/jenkins/job/SCM_SVN_MODEL/config.xml | \
curl -X POST 'http://USER_TGT:APITOKEN_TGT@jenkins-dev.test.com:8080/jenkins/job/SANDBOX/createItem?name=JOBNAME' --header "Content-Type: application/xml" -d @-
or if you have a list of them ....
declare -a arr=(
"SEFS_ABSTRACT_ACTION_MODEL"
"SEFS_ABSTRACT_BUILD_ENV_MODEL"
"SEFS_ABSTRACT_BUILD_MODEL"
"SEFS_ABSTRACT_SCM_MODEL"
"SEFS_ABSTRACT_TEST_MODEL"
"SEFS_BASE_AUX_MODEL"
"SEFS_BUILDER_TMPL"
"SEFS_JAVA_BUILD_MODEL"
"SEFS_MASTER_BUILD_TMPL"
"SEFS_PROJECT_TMPL"
"SEFS_SCM_GIT_MODEL"
"SEFS_SCM_SVN_MODEL"
"SEFS_SILVER_FABRIC_DEPLOY_TMPLT"
"SEFS_STANDARD_BUILD_ENV_MODEL"
"SEFS_TEST_JUNIT_MODEL"
"SEFS_TIBCO_BUILD_MODEL"
"SEFS_UC_DEPLOY_MODEL")

## now loop through the above array
for i in "${arr[@]}"
do
    curl -s https://USERID_SRC:2615adec2asas558a20790eec2994096c3c455b43@jenkins.prod.com:8443/jenkins/job/$i/config.xml | curl -X POST "http://USERID_TGT:efd517beb69f2ca1sfasfd81371885a48a928cf565@jenkins-dev.test.com:8080/jenkins/job/SANDBOX/createItem?name=$i" --header "Content-Type: application/xml" -d @-
   # or do whatever with individual element of the array
done

Tuesday, January 31, 2017

Jenkins Pipeline Groovy Snippets.


Moved some of the examples to gist.github.com for organizational purposes.


Show all binding variables:

echo "${this.binding.variables}"

Change spaces in underscores for the workspace

def getWorkspace() {
    pwd().replace("%2F", "_")
}

def wipeWorkspace(String workspace) {
    if (workspace) {
        sh "find ${workspace} -mindepth 4 -depth -delete"
    }
}

Show all environment variables.

node {
    sh 'env | sort'
}



Getting absolute path to a Job: 
SCM_JOB is a template attribute with item -> Pipelines
[Pipeline] echo
[name:ASSEMBLY_DESCRIPTORS_BUILD,SCM_JOB:org.jenkinsci.plugins.workflow.job.WorkflowJob@3d71aee8[ShipmentEFS/COMMON/JOBS/Pipeline_leaf_caan], steps:org.jenkinsci.plugins.workflow.cps.DSL@dfb3e3d]

${SCM_JOB['fullName']} = 'ShipmentEFS/Common/Jobs/Pipeline_leaf_caan'

then we can do
node {
    build job: SCM_JOB['fullName']
}








AUXILARY MODELS AND GETTNG THERE CONTENT


// List all auxilary models for logging purpose
echo "${SEFS_CONTEXT}"
echo "${SCM_MODEL}"
echo "class:${BUILD_MODEL.metaClass.toString()}"
echo "methods:${BUILD_MODEL.metaClass.methods}"
echo "fields: ${BUILD_MODEL.metaClass.fields}"
echo "toSTring: ${BUILD_MODEL.toString()}"
echo "testmodel: ${BUILD_MODEL['BUILD_TEST_MODEL']}"

try {
echo "getbinding: ${BUILD_MODEL.getValue('BUILD_TEST_MODEL')}"
} catch (error) {
echo error
}
try {
echo "model:    ${BUILD_MODEL.model}"
def m=BUILD_MODEL.model
echo "meta:    ${m['BUILD_TEST_MODEL']}"
} catch (error) {
echo error
echo "model:    ${m.metaClass.methods}"
}
try {
echo "getmodel: ${BUILD_MODEL.getModel()}"
} catch (error) {
echo error


}