├── jenkins-demo2
├── JENKINS_HOME
│ ├── jobs
│ │ ├── craft
│ │ │ ├── builds
│ │ │ │ ├── lastFailedBuild
│ │ │ │ └── lastSuccessfulBuild
│ │ │ ├── nextBuildNumber
│ │ │ └── config.xml
│ │ └── craft2
│ │ │ ├── builds
│ │ │ ├── 1
│ │ │ ├── lastFailedBuild
│ │ │ ├── lastStableBuild
│ │ │ ├── lastSuccessfulBuild
│ │ │ ├── lastUnstableBuild
│ │ │ ├── lastUnsuccessfulBuild
│ │ │ └── 2014-11-16_18-00-52
│ │ │ │ ├── changelog.xml
│ │ │ │ ├── build.xml
│ │ │ │ └── log
│ │ │ ├── nextBuildNumber
│ │ │ ├── lastStable
│ │ │ ├── lastSuccessful
│ │ │ └── config.xml
│ ├── start.sh
│ └── config.xml
├── README.md
└── Dockerfile
├── jenkins-metrics
├── JENKINS_HOME
│ ├── jobs
│ │ └── demo
│ │ │ ├── builds
│ │ │ └── 1
│ │ │ │ ├── changelog.xml
│ │ │ │ ├── log
│ │ │ │ └── build.xml
│ │ │ ├── nextBuildNumber
│ │ │ └── config.xml
│ ├── start.sh
│ ├── jenkins.model.JenkinsLocationConfiguration.xml
│ ├── hudson.plugins.groovy.Groovy.xml
│ ├── config.xml
│ └── users
│ │ └── guest
│ │ └── config.xml
├── Dockerfile
└── README.md
├── zip
└── Dockerfile
├── jenkins-global-post-script
├── JENKINS_HOME
│ ├── jobs
│ │ └── demo
│ │ │ ├── builds
│ │ │ ├── 1
│ │ │ │ ├── changelog.xml
│ │ │ │ ├── build.xml
│ │ │ │ └── log
│ │ │ └── 2
│ │ │ │ ├── changelog.xml
│ │ │ │ ├── log
│ │ │ │ └── build.xml
│ │ │ ├── nextBuildNumber
│ │ │ ├── config.xml
│ │ │ └── workspace
│ │ │ └── sample-junit.xml
│ ├── start.sh
│ ├── jenkins.model.JenkinsLocationConfiguration.xml
│ ├── com.orctom.jenkins.plugin.globalpostscript.GlobalPostScript.xml
│ ├── hudson.plugins.groovy.Groovy.xml
│ ├── global-post-script
│ │ └── claim.groovy
│ ├── config.xml
│ ├── users
│ │ └── guest
│ │ │ └── config.xml
│ └── scriptApproval.xml
├── Dockerfile
└── README.md
├── jenkins-demo1
├── start.sh
├── README.md
├── craft-config.xml
└── Dockerfile
├── jenkins-logstash
├── start.sh
├── jenkins-logstash.xml
├── README.md
├── craft-config.xml
└── Dockerfile
├── dashing
├── run.sh
├── README.md
└── Dockerfile
├── jenkins-demo3
├── README.md
├── JENKINS_HOME
│ ├── start.sh
│ ├── jobs
│ │ └── craft3
│ │ │ └── config.xml
│ ├── config.xml
│ └── credentials.xml
└── Dockerfile
├── jenkins-compose
├── README.md
├── JENKINS_HOME
│ ├── start.sh
│ ├── jobs
│ │ └── craft3
│ │ │ └── config.xml
│ ├── config.xml
│ └── credentials.xml
└── Dockerfile
├── jenkins-jobdsl
├── JENKINS_HOME
│ ├── start.sh
│ ├── jobs
│ │ ├── HelloWorld
│ │ │ ├── workspace
│ │ │ │ └── views.json
│ │ │ └── config.xml
│ │ ├── dsl
│ │ │ └── config.xml
│ │ └── Sample
│ │ │ └── config.xml
│ ├── jenkins.model.JenkinsLocationConfiguration.xml
│ ├── hudson.plugins.git.GitTool.xml
│ ├── hudson.plugins.groovy.Groovy.xml
│ ├── users
│ │ └── guest
│ │ │ └── config.xml
│ ├── scriptApproval.xml
│ └── config.xml
├── README.md
└── Dockerfile
├── ubuntu-sshd
├── README.mk
├── id_rsa.pub
└── Dockerfile
├── mmd-latex
├── hello-world.tex
└── Dockerfile
├── craft
├── help.sh
├── Dockerfile
└── demo.sh
├── README.md
├── haproxy
├── README.md
├── Dockerfile
├── start.bash
├── haproxy.cfg
└── LICENSE
├── jenkins-slave
├── start.sh
└── Dockerfile
├── latex
└── Dockerfile
├── fig
├── Dockerfile
└── README.md
└── LICENSE
/jenkins-demo2/JENKINS_HOME/jobs/craft/builds/lastFailedBuild:
--------------------------------------------------------------------------------
1 | -1
--------------------------------------------------------------------------------
/jenkins-demo2/JENKINS_HOME/jobs/craft/nextBuildNumber:
--------------------------------------------------------------------------------
1 | 1
2 |
--------------------------------------------------------------------------------
/jenkins-demo2/JENKINS_HOME/jobs/craft2/builds/lastFailedBuild:
--------------------------------------------------------------------------------
1 | -1
--------------------------------------------------------------------------------
/jenkins-demo2/JENKINS_HOME/jobs/craft2/builds/lastStableBuild:
--------------------------------------------------------------------------------
1 | 1
--------------------------------------------------------------------------------
/jenkins-demo2/JENKINS_HOME/jobs/craft2/nextBuildNumber:
--------------------------------------------------------------------------------
1 | 3
2 |
--------------------------------------------------------------------------------
/jenkins-demo2/JENKINS_HOME/jobs/craft/builds/lastSuccessfulBuild:
--------------------------------------------------------------------------------
1 | -1
--------------------------------------------------------------------------------
/jenkins-demo2/JENKINS_HOME/jobs/craft2/builds/1:
--------------------------------------------------------------------------------
1 | 2014-11-16_18-00-52
--------------------------------------------------------------------------------
/jenkins-demo2/JENKINS_HOME/jobs/craft2/builds/lastSuccessfulBuild:
--------------------------------------------------------------------------------
1 | 1
--------------------------------------------------------------------------------
/jenkins-demo2/JENKINS_HOME/jobs/craft2/builds/lastUnstableBuild:
--------------------------------------------------------------------------------
1 | -1
--------------------------------------------------------------------------------
/jenkins-metrics/JENKINS_HOME/jobs/demo/builds/1/changelog.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/jenkins-metrics/JENKINS_HOME/jobs/demo/nextBuildNumber:
--------------------------------------------------------------------------------
1 | 2
2 |
3 |
--------------------------------------------------------------------------------
/jenkins-demo2/JENKINS_HOME/jobs/craft2/builds/lastUnsuccessfulBuild:
--------------------------------------------------------------------------------
1 | -1
--------------------------------------------------------------------------------
/jenkins-demo2/JENKINS_HOME/jobs/craft2/lastStable:
--------------------------------------------------------------------------------
1 | builds/lastStableBuild
--------------------------------------------------------------------------------
/zip/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM alpine:latest
2 |
3 | RUN apk --no-cache add zip
4 |
--------------------------------------------------------------------------------
/jenkins-global-post-script/JENKINS_HOME/jobs/demo/builds/1/changelog.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/jenkins-global-post-script/JENKINS_HOME/jobs/demo/builds/2/changelog.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/jenkins-global-post-script/JENKINS_HOME/jobs/demo/nextBuildNumber:
--------------------------------------------------------------------------------
1 | 3
2 |
3 |
--------------------------------------------------------------------------------
/jenkins-demo1/start.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | exec java -jar /opt/jenkins/jenkins.war
--------------------------------------------------------------------------------
/jenkins-demo2/JENKINS_HOME/jobs/craft2/lastSuccessful:
--------------------------------------------------------------------------------
1 | builds/lastSuccessfulBuild
--------------------------------------------------------------------------------
/jenkins-demo2/JENKINS_HOME/jobs/craft2/builds/2014-11-16_18-00-52/changelog.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/jenkins-logstash/start.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | exec java -jar /opt/jenkins/jenkins.war
--------------------------------------------------------------------------------
/dashing/run.sh:
--------------------------------------------------------------------------------
1 | [2~#!/bin/bash
2 | cd /dashing
3 | # bundle install
4 | dashing start
5 |
--------------------------------------------------------------------------------
/jenkins-demo1/README.md:
--------------------------------------------------------------------------------
1 | docker-jenkins
2 | ==============
3 |
4 | Jenkins for docker
5 |
--------------------------------------------------------------------------------
/jenkins-demo2/README.md:
--------------------------------------------------------------------------------
1 | docker-jenkins
2 | ==============
3 |
4 | Jenkins for docker
5 |
--------------------------------------------------------------------------------
/jenkins-demo3/README.md:
--------------------------------------------------------------------------------
1 | docker-jenkins
2 | ==============
3 |
4 | Jenkins for docker
5 |
--------------------------------------------------------------------------------
/jenkins-compose/README.md:
--------------------------------------------------------------------------------
1 | docker-jenkins
2 | ==============
3 |
4 | Jenkins for docker
5 |
--------------------------------------------------------------------------------
/jenkins-demo2/JENKINS_HOME/start.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | exec java -jar /opt/jenkins/jenkins.war
--------------------------------------------------------------------------------
/jenkins-jobdsl/JENKINS_HOME/start.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | exec java -jar /opt/jenkins/jenkins.war
--------------------------------------------------------------------------------
/jenkins-metrics/JENKINS_HOME/start.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | exec java -jar /opt/jenkins/jenkins.war
--------------------------------------------------------------------------------
/ubuntu-sshd/README.mk:
--------------------------------------------------------------------------------
1 | this is used for testing, public key is put inside with sshd server
2 |
--------------------------------------------------------------------------------
/jenkins-global-post-script/JENKINS_HOME/start.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | exec java -jar /opt/jenkins/jenkins.war
--------------------------------------------------------------------------------
/jenkins-jobdsl/JENKINS_HOME/jobs/HelloWorld/workspace/views.json:
--------------------------------------------------------------------------------
1 | {
2 | "views" : ["Compile","Package","Release"]
3 | }
--------------------------------------------------------------------------------
/mmd-latex/hello-world.tex:
--------------------------------------------------------------------------------
1 | \documentclass{article}
2 | \usepackage{hyperref}
3 | \begin{document}
4 | Hello world \LaTeX
5 |
6 | \url{https://linuxconfig.org}
7 | \end{document}
8 |
--------------------------------------------------------------------------------
/jenkins-demo3/JENKINS_HOME/start.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | export DOCKER_HOST=unix://docker.sock
4 | docker run -d -p 2222:22 larrycai/jenkins-slave-ubuntu
5 |
6 | exec java -jar /opt/jenkins/jenkins.war
--------------------------------------------------------------------------------
/jenkins-compose/JENKINS_HOME/start.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | export DOCKER_HOST=unix://docker.sock
4 | # docker run -d -p 2222:22 larrycai/jenkins-slave-ubuntu
5 | exec java -jar /opt/jenkins/jenkins.war
6 |
--------------------------------------------------------------------------------
/craft/help.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | cat << END
4 |
5 | This is the demo docker container to launch 2 tomcat & 1 haproxy automatically
6 |
7 | Please run
8 |
9 | docker run -v /var/run/docker.sock:/docker.sock larrycai/craft demo
10 |
11 | BTW: Do you like name craft ?
12 |
13 | END
--------------------------------------------------------------------------------
/jenkins-jobdsl/JENKINS_HOME/jenkins.model.JenkinsLocationConfiguration.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | address not configured yet <nobody@nowhere>
4 | http://localhost:8080/
5 |
--------------------------------------------------------------------------------
/jenkins-metrics/JENKINS_HOME/jenkins.model.JenkinsLocationConfiguration.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | address not configured yet <nobody@nowhere>
4 | http://localhost:8080/
5 |
--------------------------------------------------------------------------------
/jenkins-global-post-script/JENKINS_HOME/jenkins.model.JenkinsLocationConfiguration.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | address not configured yet <nobody@nowhere>
4 | http://localhost:8080/
5 |
--------------------------------------------------------------------------------
/ubuntu-sshd/id_rsa.pub:
--------------------------------------------------------------------------------
1 | ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAxLIJCftCIoQcw8j26U6pY6H7am1mH2/2ynWQ/6zTrz3u0Cy7fsLXb6UPdm6uelfqS9pc75FaEnl4RtjzzAsBTmyI50YIKsCrS0HQ9zut/eKwDagLPt5/uvC860ltpKpVu6UU8C6ZIvf0KA+FrT4fHIuhP+nrEOoxAtnCbFYjhF555YcKbwgzO0rnoukwPoKBenV5tNPPdoWR1ChOrZVD5lpFnrn+AL1HvHi1by9KAw1QfMMDSIdLz09N4kVQhIgluEEqZ+EIu6zWvlyq+t8IyqzN5Rbaqg7BOAHmm0jFRzZHRE5fkj8LmEMIrjwLR/Ad0vEpG4mIuDstkeyra7H7jQ== RDCCAIY@E7FC15B4E61AAA
2 |
--------------------------------------------------------------------------------
/jenkins-metrics/JENKINS_HOME/jobs/demo/builds/1/log:
--------------------------------------------------------------------------------
1 | Started by user [8mha:AAAAlh+LCAAAAAAAAP9b85aBtbiIQTGjNKU4P08vOT+vOD8nVc83PyU1x6OyILUoJzMv2y+/JJUBAhiZGBgqihhk0NSjKDWzXb3RdlLBUSYGJk8GtpzUvPSSDB8G5tKinBIGIZ+sxLJE/ZzEvHT94JKizLx0a6BxUmjGOUNodHsLgAzOEgYu/dLi1CL9vNKcHACFIKlWvwAAAA==[0manonymous
2 | Building in workspace /opt/jenkins/data/jobs/demo/workspace
3 | [workspace] $ /bin/bash /tmp/hudson5394948738070729155.sh
4 | Hello
5 | Finished: SUCCESS
6 |
--------------------------------------------------------------------------------
/jenkins-logstash/jenkins-logstash.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | REDIS
5 | relk
6 | 6379
7 |
8 |
9 | logstash
10 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## How to run
2 |
3 | docker run -t -p -v /var/run/docker.sock:/docker.sock -v :/app larrycai/fig
4 |
5 | is the port in fig applications
6 | is the local absolute path for `fig.yml`
7 |
8 | default it will run `fig up`, which you can pass the command after `larrycai/fig` or even using bash (don't forget to use `-it` then)
9 |
10 | This is one solution for https://github.com/docker/fig/issues/26
11 |
--------------------------------------------------------------------------------
/haproxy/README.md:
--------------------------------------------------------------------------------
1 | ## Introduction ##
2 |
3 | This is the demo package for training purpose, it is based on https://github.com/dockerfile/haproxy
4 |
5 | $ docker run -d --name web1 larrycai/tomcat
6 | $ docker run -d --name web2 larrycai/tomcat
7 | $ docker run -d -P --link web1:back1 --link web2:back2 larrycai/haproxy
8 |
9 | Usage:
10 |
11 | * Port 80 : connect to backend 8080
12 | * Port 8080: haproxy stats
13 |
14 |
15 |
--------------------------------------------------------------------------------
/jenkins-jobdsl/JENKINS_HOME/hudson.plugins.git.GitTool.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | jgit
6 | jgit
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/jenkins-slave/start.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # 1. change permission for docker.sock to be able run by jenkins user
4 | # 2. start sshd
5 |
6 | DOCKER_SOCK="/docker.sock"
7 | # check file exists
8 | if [[ -e "$DOCKER_SOCK" ]]; then
9 | echo "change permission for $DOCKER_SOCK"
10 | chmod o+rw $DOCKER_SOCK
11 | else
12 | echo "can't find $DOCKER_SOCK , do you want to use docker in docker ?"
13 | echo "If yes, better restart docker with -v /var/run/docker.sock:$DOCKER_SOCK"
14 | fi
15 |
16 | /usr/sbin/sshd -D
--------------------------------------------------------------------------------
/jenkins-global-post-script/JENKINS_HOME/com.orctom.jenkins.plugin.globalpostscript.GlobalPostScript.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | FAILURE
6 | 2
7 | RED
8 | true
9 |
10 |
--------------------------------------------------------------------------------
/jenkins-jobdsl/JENKINS_HOME/hudson.plugins.groovy.Groovy.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 4
5 |
6 | false
7 |
8 |
9 |
10 | groovy
11 | /usr/share/groovy
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/jenkins-metrics/JENKINS_HOME/hudson.plugins.groovy.Groovy.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 4
5 |
6 | false
7 |
8 |
9 |
10 | groovy
11 | /usr/share/groovy
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/jenkins-global-post-script/JENKINS_HOME/hudson.plugins.groovy.Groovy.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 4
5 |
6 | false
7 |
8 |
9 |
10 | groovy
11 | /usr/share/groovy
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/ubuntu-sshd/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM ubuntu:14.04
2 |
3 | MAINTAINER Larry Cai
4 |
5 | RUN apt-get update && apt-get install -y openssh-server
6 |
7 | RUN mkdir /var/run/sshd
8 |
9 | RUN echo 'root:root' |chpasswd
10 |
11 | RUN sed -ri 's/^PermitRootLogin\s+.*/PermitRootLogin yes/' /etc/ssh/sshd_config
12 | RUN sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config
13 |
14 | # public key
15 | RUN mkdir /root/.ssh
16 |
17 | ADD id_rsa.pub /root/.ssh/authorized_keys
18 | RUN chmod 0700 /root/.ssh
19 | RUN chmod 0400 /root/.ssh/authorized_keys
20 |
21 | EXPOSE 22
22 |
23 | CMD ["/usr/sbin/sshd", "-D"]
24 |
--------------------------------------------------------------------------------
/latex/Dockerfile:
--------------------------------------------------------------------------------
1 | # Dockerfile for apache2
2 | FROM ubuntu:trusty
3 |
4 | MAINTAINER Larry Cai, larry.caiyu@gmail.com
5 |
6 | # install basic package
7 | RUN echo "deb http://archive.ubuntu.com/ubuntu trusty universe" >> /etc/apt/sources.list; apt-get update;
8 |
9 | RUN sudo apt-get install -y texlive-xetex
10 | RUN sudo apt-get install -y texlive-latex-recommended # main packages
11 | RUN sudo apt-get install -y texlive-latex-extra # package titlesec
12 |
13 | # from arphic
14 | RUN sudo apt-get install fonts-arphic-gbsn00lp fonts-arphic-ukai
15 |
16 | # from wen quan yi
17 | RUN sudo apt-get install -y ttf-wqy-microhei ttf-wqy-zenhei
--------------------------------------------------------------------------------
/haproxy/Dockerfile:
--------------------------------------------------------------------------------
1 | # It is based on https://github.com/dockerfile/haproxy
2 |
3 | FROM ubuntu:14.04
4 | #FROM ubuntu-elx
5 |
6 | RUN apt-get -qq update && apt-get install -qqy haproxy && \
7 | sed -i 's/^ENABLED=.*/ENABLED=1/' /etc/default/haproxy
8 |
9 | # Add files.
10 | ADD haproxy.cfg /etc/haproxy/haproxy.cfg
11 | ADD start.bash /haproxy-start
12 |
13 | # Define mountable directories.
14 | VOLUME ["/data", "/haproxy-override"]
15 |
16 | # Define working directory.
17 | WORKDIR /etc/haproxy
18 |
19 | # Define default command.
20 | CMD ["bash", "/haproxy-start"]
21 |
22 | # Expose ports.
23 | # web
24 | EXPOSE 80
25 | # stats
26 | EXPOSE 8080
--------------------------------------------------------------------------------
/jenkins-jobdsl/README.md:
--------------------------------------------------------------------------------
1 | ## docker-jenkins ##
2 |
3 | Jenkins jobdsl demo for docker, it contains lots of plugin as well
4 |
5 | docker run -it -p 8080:8080 larrycai/jenkins-jobdsl
6 |
7 | It mainly for CodingWithMe http://www.slideshare.net/larrycai/learn-jobdsl-for-jenkins
8 |
9 | The related gist of exercises: https://gist.github.com/larrycai/aeb9a3b037dcb17df9b2
10 |
11 |
12 | ## Reference ##
13 | * http://www.slideshare.net/daspilker/configuration-as-code-the-job-dsl-plugin
14 | * https://github.com/jenkinsci/job-dsl-plugin/wiki/View-Reference
15 | * https://github.com/jenkinsci/job-dsl-plugin/wiki/Job-reference
16 | * https://github.com/jenkinsci/job-dsl-plugin/wiki/The-Configure-Block
17 |
18 |
--------------------------------------------------------------------------------
/jenkins-demo2/JENKINS_HOME/jobs/craft2/config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | false
6 |
7 |
8 | true
9 | false
10 | false
11 | false
12 |
13 | false
14 |
15 |
16 | env
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/dashing/README.md:
--------------------------------------------------------------------------------
1 | # Dashing
2 |
3 | Run [Dashing](http://dashing.io/) in a [Docker](http://docker.io/) container.
4 |
5 | It contains the base dashing environment and packaged useful gem as well
6 |
7 |
8 | ## Run
9 |
10 | ```docker run -d -p 3030:3030 larrycai/dashing```
11 |
12 | And point your browser to [http://localhost:3030/](http://localhost:3030/).
13 |
14 |
15 | ## Configuration
16 |
17 | ### Dashboards
18 |
19 | To provide a custom dashboard, use container volume **/dashing**:
20 |
21 | ```docker run -v $PWD:/dashing -d -p 3030:3030 larrycai/dashing```
22 |
23 | (*Don't forget to also provide the layout.erb*)
24 |
25 | ## Thanks
26 |
27 | Referred : [frvi/dashing](https://registry.hub.docker.com/u/frvi/dashing/)
28 |
--------------------------------------------------------------------------------
/jenkins-demo2/JENKINS_HOME/jobs/craft2/builds/2014-11-16_18-00-52/build.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | 1
11 | 1416160852336
12 | SUCCESS
13 | 87
14 | US-ASCII
15 | false
16 |
17 | /opt/jenkins/data/jobs/craft2/workspace
18 | 1.580.1
19 |
20 |
21 |
--------------------------------------------------------------------------------
/craft/Dockerfile:
--------------------------------------------------------------------------------
1 | # This Dockerfile is used to build an image containing basic stuff to be used as a Jenkins slave build node.
2 | # it has a base from https://github.com/evarga/docker-images/blob/master/jenkins-slave
3 |
4 | FROM ubuntu:14.04
5 |
6 | MAINTAINER Larry Cai
7 |
8 | # Make sure the package repository is up to date.
9 | RUN apt-get -qq update && apt-get install -qqy curl
10 |
11 | # Add docker client
12 | RUN curl https://get.docker.io/builds/Linux/x86_64/docker-latest -o /usr/local/bin/docker
13 | RUN chmod +x /usr/local/bin/docker
14 |
15 | #RUN echo "DOCKER_HOST='unix:///docker.sock'" >> /etc/environment
16 | ENV DOCKER_HOST unix:///docker.sock
17 |
18 | ADD demo.sh /bin/demo
19 | ADD help.sh /bin/help
20 |
21 | CMD ["help"]
22 |
--------------------------------------------------------------------------------
/haproxy/start.bash:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | #
4 | # start.bash
5 | #
6 |
7 | HAPROXY="/etc/haproxy"
8 | OVERRIDE="/haproxy-override"
9 | PIDFILE="/var/run/haproxy.pid"
10 |
11 | CONFIG="haproxy.cfg"
12 | ERRORS="errors"
13 |
14 | cd "$HAPROXY"
15 |
16 | # Symlink errors directory
17 | if [[ -d "$OVERRIDE/$ERRORS" ]]; then
18 | mkdir -p "$OVERRIDE/$ERRORS"
19 | rm -fr "$ERRORS"
20 | ln -s "$OVERRIDE/$ERRORS" "$ERRORS"
21 | fi
22 |
23 | # Symlink config file.
24 | if [[ -f "$OVERRIDE/$CONFIG" ]]; then
25 | rm -f "$CONFIG"
26 | ln -s "$OVERRIDE/$CONFIG" "$CONFIG"
27 | fi
28 |
29 | env
30 |
31 | echo " server back1 ${BACK1_PORT_8080_TCP_ADDR}:8080 maxconn 32" >> $CONFIG
32 | echo " server back2 ${BACK2_PORT_8080_TCP_ADDR}:8080 maxconn 32" >> $CONFIG
33 | cat $CONFIG
34 |
35 | haproxy -f /etc/haproxy/haproxy.cfg -p "$PIDFILE"
--------------------------------------------------------------------------------
/fig/Dockerfile:
--------------------------------------------------------------------------------
1 | ## how to run
2 | ## docker run -t -p -v /var/run/docker.sock:/docker.sock -v :/app larrycai/fig
3 |
4 | FROM ubuntu:latest
5 | MAINTAINER Larry Cai "larry.caiyu@gmail.com"
6 | ENV REFREST_AT 20141015
7 |
8 | RUN apt-get update && apt-get install -y curl make
9 |
10 | RUN \
11 | curl -L https://get.docker.io/builds/Linux/x86_64/docker-latest -o /usr/local/bin/docker && \
12 | chmod +x /usr/local/bin/docker && \
13 |
14 | # see http://www.fig.sh/install.html
15 | curl -L https://github.com/docker/fig/releases/download/1.0.0/fig-`uname -s`-`uname -m` -o /usr/local/bin/fig && \
16 | chmod +x /usr/local/bin/fig
17 |
18 | ENV DOCKER_HOST unix:///docker.sock
19 |
20 | WORKDIR /app
21 |
22 | # set initial command
23 |
24 | ENTRYPOINT ["/usr/local/bin/fig"]
25 | CMD ["-v"]
--------------------------------------------------------------------------------
/jenkins-logstash/README.md:
--------------------------------------------------------------------------------
1 | jenkins-logstash
2 | ================
3 |
4 | This is the demo for [jenkins logstash plugin](https://wiki.jenkins-ci.org/display/JENKINS/Logstash+Plugin)
5 |
6 | Mostly it works with [redis-elk](https://github.com/Leorowe/redis-elk) toolkit
7 |
8 | $ docker run -d -p 80:80 -p 3333:3333 -p 9200:9200 -p 6379:6379 --name relk leorowe/redis-elk
9 | $ docker run -d -p 8080:8080 --link relk:relk larrycai/jenkins-logstash
10 |
11 | Then in jenkins http://192.168.59.103:8080 , build the `craft` job, it will send logs to ELK via redis
12 |
13 | The log can be shown in kibana GUI jenkins http://192.168.59.103:80
14 |
15 | Here IP `192.168.59.103` is boot2docker default IP, you can change IP or other port for your system
16 |
17 | `relk` is the hostname known to jenkins, which is set as default in jenkins system setting.
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/jenkins-metrics/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM ubuntu:trusty
2 |
3 | MAINTAINER Larry Cai
4 |
5 | RUN apt-get update && apt-get install -qqy curl openjdk-7-jdk groovy && rm -rf /var/lib/apt/lists/*
6 |
7 | ENV JENKINS_HOME /opt/jenkins/data
8 | ENV JENKINS_MIRROR http://mirrors.jenkins-ci.org
9 |
10 | # install jenkins.war and plugins
11 |
12 | RUN mkdir -p $JENKINS_HOME/plugins
13 |
14 | RUN curl -o /opt/jenkins/jenkins.war -L $JENKINS_MIRROR/war-stable/latest/jenkins.war
15 |
16 | ENV REFRESHED_AT 2015-06-24
17 |
18 | RUN for plugin in groovy metrics;\
19 | do curl -f -o $JENKINS_HOME/plugins/${plugin}.hpi \
20 | -L $JENKINS_MIRROR/plugins/${plugin}/latest/${plugin}.hpi ; done
21 |
22 | ADD JENKINS_HOME $JENKINS_HOME
23 |
24 | RUN chmod +x $JENKINS_HOME/start.sh
25 |
26 | # start script
27 |
28 | ADD . /app
29 |
30 | EXPOSE 8080
31 |
32 | CMD [ "/opt/jenkins/data/start.sh" ]
--------------------------------------------------------------------------------
/mmd-latex/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM ubuntu:focal as builder
2 |
3 | ENV DEBIAN_FRONTEND=noninteractive
4 | ENV cc=gcc
5 |
6 | RUN apt-get update && apt-get install -y \
7 | libglib2.0-dev git make cmake g++ imagemagick \
8 | && git clone https://github.com/fletcher/MultiMarkdown-6.git \
9 | && cd MultiMarkdown-6 \
10 | && git checkout master \
11 | # && ./update_git_modules \
12 | # && ./link_git_modules \
13 | && make && cd build && make \
14 | && cp multimarkdown /bin
15 |
16 | FROM ubuntu:focal
17 |
18 | LABEL maintainer="larry.caiyu@gmail.com"
19 |
20 | ENV DEBIAN_FRONTEND=noninteractive
21 | ENV cc=gcc
22 |
23 | COPY --from=builder /bin/multimarkdown /bin
24 | RUN apt-get update && apt-get install -y \
25 | texlive-xetex texlive-latex-recommended texlive-latex-extra \
26 | latex-cjk-chinese fonts-arphic-gbsn00lp fonts-wqy-microhei fonts-wqy-zenhei texlive-fonts-recommended \
27 | imagemagick \
28 | && rm -rf /var/lib/apt/lists/*
29 |
--------------------------------------------------------------------------------
/jenkins-metrics/JENKINS_HOME/jobs/demo/builds/1/build.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | 33
11 |
12 |
13 | 2
14 | 1435719964156
15 | 1435719964158
16 | SUCCESS
17 | 3034
18 | US-ASCII
19 | false
20 |
21 | /opt/jenkins/data/jobs/demo/workspace
22 | 1.609.1
23 |
24 |
25 |
--------------------------------------------------------------------------------
/jenkins-global-post-script/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM ubuntu:trusty
2 |
3 | MAINTAINER Larry Cai
4 |
5 | RUN apt-get update && apt-get install -qqy curl openjdk-7-jdk groovy && rm -rf /var/lib/apt/lists/*
6 |
7 | ENV JENKINS_HOME /opt/jenkins/data
8 | ENV JENKINS_MIRROR http://mirrors.jenkins-ci.org
9 |
10 | # install jenkins.war and plugins
11 |
12 | RUN mkdir -p $JENKINS_HOME/plugins
13 |
14 | RUN curl -o /opt/jenkins/jenkins.war -L $JENKINS_MIRROR/war-stable/latest/jenkins.war
15 |
16 | ENV REFRESHED_AT 2015-06-24
17 |
18 | RUN for plugin in global-post-script groovy-postbuild groovy junit testng-plugin claim;\
19 | do curl -f -o $JENKINS_HOME/plugins/${plugin}.hpi \
20 | -L $JENKINS_MIRROR/plugins/${plugin}/latest/${plugin}.hpi ; done
21 |
22 | ADD JENKINS_HOME $JENKINS_HOME
23 |
24 | RUN chmod +x $JENKINS_HOME/start.sh
25 |
26 | # start script
27 |
28 | ADD . /app
29 |
30 | EXPOSE 8080
31 |
32 | CMD [ "/opt/jenkins/data/start.sh" ]
--------------------------------------------------------------------------------
/haproxy/haproxy.cfg:
--------------------------------------------------------------------------------
1 | global
2 | log 127.0.0.1 local0
3 | log 127.0.0.1 local1 notice
4 | chroot /var/lib/haproxy
5 | user haproxy
6 | group haproxy
7 | # daemon
8 |
9 | defaults
10 | log global
11 | mode http
12 | option httplog
13 | option dontlognull
14 | contimeout 5000
15 | clitimeout 50000
16 | srvtimeout 50000
17 | errorfile 400 /etc/haproxy/errors/400.http
18 | errorfile 403 /etc/haproxy/errors/403.http
19 | errorfile 408 /etc/haproxy/errors/408.http
20 | errorfile 500 /etc/haproxy/errors/500.http
21 | errorfile 502 /etc/haproxy/errors/502.http
22 | errorfile 503 /etc/haproxy/errors/503.http
23 | errorfile 504 /etc/haproxy/errors/504.http
24 |
25 | listen stats :8080
26 | stats enable
27 | stats uri /
28 |
29 | frontend web_service
30 | bind *:80
31 | mode http
32 | option httplog
33 | option dontlognull
34 | default_backend web_servers
35 |
36 | backend web_servers
37 | mode http
38 | balance roundrobin
39 | option httpchk GET /index.html
40 |
--------------------------------------------------------------------------------
/dashing/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM ubuntu:trusty
2 |
3 | MAINTAINER Larry Cai
4 |
5 | RUN apt-get update \
6 | && apt-get install -y ruby ruby-dev gem bundler g++ make nodejs \
7 | && apt-get install -y libghc-zlib-dev
8 |
9 | # skip installing gem documentation
10 | RUN echo 'gem: --no-rdoc --no-ri' >> "$HOME/.gemrc"
11 |
12 | # install things globally, for great justice
13 | ENV GEM_HOME /usr/local/bundle
14 | ENV PATH $GEM_HOME/bin:$PATH
15 | RUN bundle config --global path "$GEM_HOME" \
16 | && bundle config --global bin "$GEM_HOME/bin"
17 |
18 | # don't create ".bundle" in all our apps
19 | ENV BUNDLE_APP_CONFIG $GEM_HOME
20 |
21 | # Install dashing
22 | RUN gem install dashing instagram nokogiri twitter eventmachine
23 | RUN gem install execjs libv8
24 | RUN mkdir /dashing && \
25 | dashing new dashing && \
26 | cd /dashing && bundle
27 |
28 | WORKDIR /dashing
29 |
30 | VOLUME ["/dashing"]
31 |
32 | COPY README.md Dockerfile /app/
33 |
34 | EXPOSE 3030
35 |
36 | CMD ["dashing start"]
37 |
38 |
--------------------------------------------------------------------------------
/jenkins-compose/JENKINS_HOME/jobs/craft3/config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | false
6 |
7 |
8 | master
9 | false
10 | false
11 | false
12 | false
13 |
14 | false
15 |
16 |
17 | #!/bin/bash -x
18 | docker -v
19 | docker-compose -v
20 |
21 |
22 |
23 |
24 |
25 |
26 | xterm
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/jenkins-demo3/JENKINS_HOME/jobs/craft3/config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | false
6 |
7 |
8 | ubuntu-gcc
9 | false
10 | false
11 | false
12 | false
13 |
14 | false
15 |
16 |
17 | pwd
18 | gcc -v
19 | unzip -oq /tmp/out2html.zip
20 | cd out2html-master
21 | make
22 | make test
23 |
24 |
25 |
26 |
27 |
28 | xterm
29 |
30 |
31 |
--------------------------------------------------------------------------------
/jenkins-demo1/craft-config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | false
6 |
7 |
8 | true
9 | false
10 | false
11 | false
12 |
13 | false
14 |
15 |
16 | #!/bin/bash
17 | env
18 | echo -e "\e[1;31;42m Using docker to demo is awful, v5 \e[0m"
19 | echo see more in http://misc.flogisoft.com/bash/tip_colors_and_formatting
20 |
21 |
22 |
23 |
24 |
25 |
26 | xterm
27 |
28 |
29 |
--------------------------------------------------------------------------------
/jenkins-demo2/JENKINS_HOME/jobs/craft/config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | false
6 |
7 |
8 | true
9 | false
10 | false
11 | false
12 |
13 | false
14 |
15 |
16 | #!/bin/bash
17 | env
18 | echo -e "\e[1;31;42m Using docker to demo is awful, v5 \e[0m"
19 | echo see more in http://misc.flogisoft.com/bash/tip_colors_and_formatting
20 |
21 |
22 |
23 |
24 |
25 |
26 | xterm
27 |
28 |
29 |
--------------------------------------------------------------------------------
/jenkins-demo1/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM ubuntu:trusty
2 |
3 | MAINTAINER Larry Cai
4 |
5 | ENV REFRESHED_AT 2014-11-03
6 |
7 | RUN apt-get update && apt-get install -qqy curl openjdk-6-jdk
8 |
9 | ENV JENKINS_HOME /opt/jenkins/data
10 | ENV JENKINS_MIRROR http://mirrors.jenkins-ci.org
11 |
12 | # install jenkins.war and plugins
13 |
14 | RUN mkdir -p $JENKINS_HOME/plugins $JENKINS_HOME/jobs/craft
15 | RUN curl -sf -o /opt/jenkins/jenkins.war -L $JENKINS_MIRROR/war-stable/latest/jenkins.war
16 |
17 | RUN for plugin in chucknorris greenballs scm-api git-client ansicolor description-setter \
18 | envinject job-exporter git ws-cleanup ;\
19 | do curl -sf -o $JENKINS_HOME/plugins/${plugin}.hpi \
20 | -L $JENKINS_MIRROR/plugins/${plugin}/latest/${plugin}.hpi ; done
21 |
22 | # ADD sample job craft
23 |
24 | ADD craft-config.xml $JENKINS_HOME/jobs/craft/config.xml
25 |
26 | # start script
27 |
28 | ADD ./start.sh /usr/local/bin/start.sh
29 | RUN chmod +x /usr/local/bin/start.sh
30 |
31 | EXPOSE 8080
32 |
33 | CMD [ "/usr/local/bin/start.sh" ]
--------------------------------------------------------------------------------
/jenkins-logstash/craft-config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | false
6 |
7 |
8 | true
9 | false
10 | false
11 | false
12 |
13 | false
14 |
15 |
16 | #!/bin/bash
17 | echo -e "\e[1;31;42m Using docker to demo is awful, v5 \e[0m"
18 | echo see more in http://misc.flogisoft.com/bash/tip_colors_and_formatting
19 |
20 |
21 |
22 |
23 |
24 |
25 | xterm
26 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/jenkins-demo2/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM ubuntu:trusty
2 |
3 | MAINTAINER Larry Cai
4 |
5 | ENV REFRESHED_AT 2014-11-16
6 |
7 | #RUN rm /etc/apt/sources.list.d/* \
8 | # && echo "deb http://mirrors.sohu.com/ubuntu/ trusty main restricted universe multiverse" > /etc/apt/sources.list \
9 | # && echo "deb http://mirrors.sohu.com/ubuntu/ trusty-updates main restricted universe multiverse" >> /etc/apt/sources.list
10 |
11 | RUN apt-get update && apt-get install -qqy curl openjdk-6-jdk
12 |
13 | ENV JENKINS_HOME /opt/jenkins/data
14 | ENV JENKINS_MIRROR http://mirrors.jenkins-ci.org
15 |
16 | # install jenkins.war and plugins
17 | RUN mkdir -p $JENKINS_HOME/plugins
18 |
19 | RUN curl -o /opt/jenkins/jenkins.war -L $JENKINS_MIRROR/war-stable/latest/jenkins.war
20 |
21 | RUN for plugin in scm-api git-client ansicolor git ;\
22 | do curl -sf -o $JENKINS_HOME/plugins/${plugin}.hpi \
23 | -L $JENKINS_MIRROR/plugins/${plugin}/latest/${plugin}.hpi ; done
24 |
25 | # ADD JENKINS_HOME
26 | ADD JENKINS_HOME $JENKINS_HOME
27 | RUN chmod +x $JENKINS_HOME/start.sh
28 |
29 | EXPOSE 8080
30 |
31 | CMD [ "/opt/jenkins/data/start.sh" ]
--------------------------------------------------------------------------------
/haproxy/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) Dockerfile Project
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
--------------------------------------------------------------------------------
/jenkins-logstash/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM ubuntu:trusty
2 |
3 | MAINTAINER Larry Cai
4 |
5 | ENV REFRESHED_AT 2015-01-13
6 |
7 | RUN apt-get update && apt-get install -qqy curl openjdk-6-jdk
8 |
9 | ENV JENKINS_HOME /opt/jenkins/data
10 | ENV JENKINS_MIRROR http://mirrors.jenkins-ci.org
11 |
12 | # install jenkins.war and plugins
13 |
14 | RUN mkdir -p $JENKINS_HOME/plugins $JENKINS_HOME/jobs/craft
15 | RUN curl -sf -o /opt/jenkins/jenkins.war -L $JENKINS_MIRROR/war-stable/latest/jenkins.war
16 |
17 | RUN for plugin in chucknorris greenballs scm-api git-client ansicolor description-setter \
18 | logstash envinject job-exporter git ws-cleanup ;\
19 | do curl -sf -o $JENKINS_HOME/plugins/${plugin}.hpi \
20 | -L $JENKINS_MIRROR/plugins/${plugin}/latest/${plugin}.hpi ; done
21 |
22 | # ADD sample job craft
23 |
24 | ADD craft-config.xml $JENKINS_HOME/jobs/craft/config.xml
25 |
26 | ADD jenkins-logstash.xml $JENKINS_HOME/jenkins.plugins.logstash.LogstashInstallation.xml
27 |
28 | # start script
29 |
30 | ADD ./start.sh /usr/local/bin/start.sh
31 | RUN chmod +x /usr/local/bin/start.sh
32 |
33 | EXPOSE 8080
34 |
35 | CMD [ "/usr/local/bin/start.sh" ]
--------------------------------------------------------------------------------
/jenkins-metrics/README.md:
--------------------------------------------------------------------------------
1 | # docker-jenkins #
2 |
3 | This is the demo on how to get wait in queue time using [metrics jenkins plugin](https://wiki.jenkins-ci.org/display/JENKINS/Metrics+Plugin)
4 |
5 | see stackoverflow question to understand more : http://stackoverflow.com/questions/28735049/how-can-i-know-how-long-a-jenkins-job-has-been-in-the-wait-queue-after-the-job-i
6 |
7 | docker run -it -p 8080:8080 larrycai/jenkins-metrics
8 |
9 | Then you can get time in queue from http://localhost:8080/job/demo/1/api/json?pretty=true&depth=2 . `queuingDurationMillis` is the data I wanted.
10 |
11 | "actions" : [
12 | {
13 | "queuingDurationMillis" : 33,
14 | "totalDurationMillis" : 3067
15 | }
16 | ],
17 |
18 | Also we can get this data in groovy via internal data, check below code in Jenkins Script console http://localhost:8080/script
19 |
20 | job = hudson.model.Hudson.instance.getItem("demo")
21 | build = job.getLastBuild()
22 | action = build.getAction(jenkins.metrics.impl.TimeInQueueAction.class)
23 | println action.getQueuingDurationMillis()
24 |
25 | Check more in https://github.com/jenkinsci/metrics-plugin/blob/master/src/main/java/jenkins/metrics/impl/TimeInQueueAction.java
26 |
27 |
--------------------------------------------------------------------------------
/jenkins-metrics/JENKINS_HOME/jobs/demo/config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | false
6 |
7 |
8 | true
9 | false
10 | false
11 | false
12 |
13 | false
14 |
15 |
16 | #!/bin/bash
17 | echo "Hello"
18 | echo "this is demo test case failure, which can't be detected automatically"
19 | echo "it will be claimed when manuall check"
20 |
21 |
22 |
23 |
24 | sample-junit.xml
25 | false
26 |
27 | 1.0
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/craft/demo.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | DOCKER_SOCK="/docker.sock"
4 | # check file exists
5 | if [[ -e "$DOCKER_SOCK" ]]; then
6 | echo "It is launching ... "
7 | echo " may take several minutes first time due to pulling from remotely"
8 | else
9 | echo "can't find $DOCKER_SOCK, please run"
10 | echo "docker run -v /var/run/docker.sock:$DOCKER_SOCK larrycai/craft demo"
11 | fi
12 |
13 | docker run -d --name web1 larrycai/tomcat
14 | docker run -d --name web2 larrycai/tomcat
15 | docker run -d -P --link web1:back1 --name haproxy --link web2:back2 larrycai/haproxy
16 |
17 | STAT_URL=$(docker port haproxy 8080)
18 | WEB_URL=$(docker port haproxy 80)
19 |
20 | # remove 0.0.0.0 infront
21 | STAT_PORT=${STAT_URL/0.0.0.0:/}
22 | WEB_PORT=${WEB_URL/0.0.0.0:/}
23 |
24 | echo "You can access to following web service now, (default ip for boot2docker is 192.168.59.103)"
25 | echo " change 192.168.59.103 to your docker host IP address if not."
26 | echo ""
27 | echo " - HAproxy stats web : http://192.168.59.103:$STAT_PORT/"
28 | echo " - Tomcat via Haproxy: http://192.168.59.103:$WEB_PORT/"
29 | echo ""
30 | echo "Type following command to remove those containers"
31 | echo ""
32 | echo " docker ps | grep haproxy | awk '{print \$1}' | xargs docker rm -f"
33 | echo ""
34 | echo "Thanks for using, feedback to larry.caiyu(at)gmail.com"
--------------------------------------------------------------------------------
/jenkins-demo3/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM ubuntu:trusty
2 |
3 | MAINTAINER Larry Cai
4 |
5 | ENV REFRESHED_AT 2014-11-24
6 |
7 | #RUN rm /etc/apt/sources.list.d/* \
8 | # && echo "deb http://mirrors.sohu.com/ubuntu/ trusty main restricted universe multiverse" > /etc/apt/sources.list \
9 | # && echo "deb http://mirrors.sohu.com/ubuntu/ trusty-updates main restricted universe multiverse" >> /etc/apt/sources.list
10 |
11 | RUN apt-get update && apt-get install -qqy curl openjdk-6-jdk
12 |
13 | ENV JENKINS_HOME /opt/jenkins/data
14 | ENV JENKINS_MIRROR http://mirrors.jenkins-ci.org
15 |
16 | # install jenkins.war and plugins
17 | RUN mkdir -p $JENKINS_HOME/plugins
18 |
19 | RUN curl -o /opt/jenkins/jenkins.war -L $JENKINS_MIRROR/war-stable/latest/jenkins.war
20 |
21 | RUN for plugin in scm-api git-client ansicolor git ssh-slaves ;\
22 | do curl -sf -o $JENKINS_HOME/plugins/${plugin}.hpi \
23 | -L $JENKINS_MIRROR/plugins/${plugin}/latest/${plugin}.hpi ; done
24 |
25 | RUN curl https://get.docker.io/builds/Linux/x86_64/docker-latest -o /usr/local/bin/docker
26 | RUN chmod +x /usr/local/bin/docker
27 |
28 | # ADD JENKINS_HOME
29 | ADD JENKINS_HOME $JENKINS_HOME
30 | RUN chmod +x $JENKINS_HOME/start.sh
31 |
32 | EXPOSE 8080
33 |
34 | CMD [ "/opt/jenkins/data/start.sh" ]
--------------------------------------------------------------------------------
/jenkins-global-post-script/JENKINS_HOME/jobs/demo/config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | false
6 |
7 |
8 | true
9 | false
10 | false
11 | false
12 |
13 | false
14 |
15 |
16 | #!/bin/bash
17 | echo "Hello"
18 | echo "this is demo test case failure, which can't be detected automatically"
19 | echo "it will be claimed when manuall check"
20 |
21 |
22 |
23 |
24 | sample-junit.xml
25 | false
26 |
27 | 1.0
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/jenkins-demo2/JENKINS_HOME/jobs/craft2/builds/2014-11-16_18-00-52/log:
--------------------------------------------------------------------------------
1 | Started by user [8mha:AAAAlh+LCAAAAAAAAP9b85aBtbiIQTGjNKU4P08vOT+vOD8nVc83PyU1x6OyILUoJzMv2y+/JJUBAhiZGBgqihhk0NSjKDWzXb3RdlLBUSYGJk8GtpzUvPSSDB8G5tKinBIGIZ+sxLJE/ZzEvHT94JKizLx0a6BxUmjGOUNodHsLgAzOEgYu/dLi1CL9vNKcHACFIKlWvwAAAA==[0manonymous
2 | Building in workspace /opt/jenkins/data/jobs/craft2/workspace
3 | [workspace] $ /bin/sh -xe /tmp/hudson2260951984192867268.sh
4 | + env
5 | JENKINS_HOME=/opt/jenkins/data
6 | HOSTNAME=f20b2f3c09eb
7 | SHLVL=0
8 | NODE_LABELS=master
9 | LD_LIBRARY_PATH=/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64/server:/usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64:/usr/lib/jvm/java-6-openjdk-amd64/jre/../lib/amd64
10 | HOME=/root
11 | JENKINS_SERVER_COOKIE=4ad2d9e093cdb59d
12 | HUDSON_COOKIE=3be12df4-08c3-44c7-b967-7ec301e79297
13 | WORKSPACE=/opt/jenkins/data/jobs/craft2/workspace
14 | NODE_NAME=master
15 | http_proxy=http://www-proxy.exu.ericsson.se:8080
16 | EXECUTOR_NUMBER=0
17 | BUILD_DISPLAY_NAME=#1
18 | HUDSON_HOME=/opt/jenkins/data
19 | PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
20 | JENKINS_MIRROR=http://mirrors.jenkins-ci.org
21 | BUILD_ID=2014-11-16_18-00-52
22 | BUILD_TAG=jenkins-craft2-1
23 | BUILD_NUMBER=1
24 | HUDSON_SERVER_COOKIE=4ad2d9e093cdb59d
25 | JOB_NAME=craft2
26 | PWD=/opt/jenkins/data/jobs/craft2/workspace
27 | REFRESHED_AT=2014-11-16
28 | Finished: SUCCESS
29 |
--------------------------------------------------------------------------------
/jenkins-global-post-script/JENKINS_HOME/global-post-script/claim.groovy:
--------------------------------------------------------------------------------
1 | import jenkins.*
2 | import jenkins.model.*
3 | import hudson.*
4 | import hudson.model.*
5 |
6 | job = hudson.model.Hudson.instance.getItem("demo")
7 | build = job.getLastBuild()
8 | println build
9 |
10 | def data = [:]
11 | def env = build.getEnvironment()
12 |
13 | data["jobTimestamp"] = build.getTimeInMillis()
14 |
15 | data["result"] = build.getResult().toString()
16 | data["number"] = build.getNumber()
17 | data["jobName"] = env['JOB_NAME']
18 | data["builtOn"] = env['NODE_NAME']
19 | data["url"] = build.getAbsoluteUrl()
20 |
21 | //Convert duration from milisec to minutes
22 | data["duration"] = build.getDuration()
23 |
24 | // get test result for Junit/TestNG
25 | def testResultAction = build.getTestResultAction()
26 | if (testResultAction != null) {
27 | data["totalCount"] = testResultAction.getTotalCount()
28 | data["failCount"] = testResultAction.getFailCount()
29 | data["skipCount"] = testResultAction.getSkipCount()
30 | } else {
31 | println "INFO: No junit/testng test result"
32 | }
33 |
34 | println "INFO: here comes the data"
35 | println data
36 |
37 | def action = build.getAction(hudson.plugins.claim.ClaimBuildAction.class)
38 | println action.getReason()
39 |
40 | println "Get time in queue, not solved yet"
41 | println build.getStartTimeInMillis()
42 | println build.getTimeInMillis()
--------------------------------------------------------------------------------
/jenkins-slave/Dockerfile:
--------------------------------------------------------------------------------
1 | # This Dockerfile is used to build an image containing basic stuff to be used as a Jenkins slave build node.
2 | # it has a base from https://github.com/evarga/docker-images/blob/master/jenkins-slave
3 |
4 | FROM ubuntu:14.04
5 |
6 | MAINTAINER Larry Cai
7 |
8 | # Make sure the package repository is up to date.
9 | RUN apt-get -qq update && apt-get install -qqy openssh-server
10 | RUN apt-get install -qqy git curl make
11 |
12 | # Install a basic SSH server
13 | RUN sed -i 's|session required pam_loginuid.so|session optional pam_loginuid.so|g' /etc/pam.d/sshd
14 | RUN mkdir -p /var/run/sshd
15 |
16 | # Install JDK 7 (latest edition)
17 | RUN apt-get install -qqy --no-install-recommends openjdk-7-jdk
18 |
19 | # Add user jenkins to the image
20 | RUN useradd -s /bin/bash -m jenkins
21 | # Set password for the jenkins user (you may want to alter this).
22 | RUN echo "jenkins:jenkins" | chpasswd
23 |
24 | # do we need root permission for jenkins for docker build ?
25 | # RUN echo "jenkins ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
26 |
27 | # Add docker client
28 | RUN curl https://get.docker.io/builds/Linux/x86_64/docker-latest -o /usr/local/bin/docker
29 | RUN chmod +x /usr/local/bin/docker
30 |
31 | RUN echo "DOCKER_HOST='unix:///docker.sock'" >> /etc/environment
32 | ADD start.sh /start.sh
33 |
34 | # Standard SSH port
35 | EXPOSE 22
36 |
37 | CMD ["/start.sh"]
38 |
--------------------------------------------------------------------------------
/jenkins-compose/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM ubuntu:trusty
2 |
3 | MAINTAINER Larry Cai
4 |
5 | ENV REFRESHED_AT 2016-04-09
6 |
7 | #RUN rm /etc/apt/sources.list.d/* \
8 | # && echo "deb http://mirrors.sohu.com/ubuntu/ trusty main restricted universe multiverse" > /etc/apt/sources.list \
9 | # && echo "deb http://mirrors.sohu.com/ubuntu/ trusty-updates main restricted universe multiverse" >> /etc/apt/sources.list
10 |
11 | RUN apt-get update && apt-get install -qqy curl openjdk-7-jdk
12 |
13 | ENV JENKINS_HOME /opt/jenkins/data
14 | ENV JENKINS_MIRROR http://mirrors.jenkins-ci.org
15 |
16 | # install jenkins.war and plugins
17 | RUN mkdir -p $JENKINS_HOME/plugins
18 |
19 | RUN curl -o /opt/jenkins/jenkins.war -L $JENKINS_MIRROR/war-stable/latest/jenkins.war
20 |
21 | RUN for plugin in scm-api git-client ansicolor git ssh-slaves ;\
22 | do curl -sf -o $JENKINS_HOME/plugins/${plugin}.hpi \
23 | -L $JENKINS_MIRROR/plugins/${plugin}/latest/${plugin}.hpi ; done
24 |
25 | RUN curl -sL https://get.docker.io/builds/Linux/x86_64/docker-1.10.3 -o /usr/local/bin/docker &&\
26 | chmod +x /usr/local/bin/docker
27 | RUN curl -sL https://github.com/docker/compose/releases/download/1.6.2/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose &&\
28 | chmod +x /usr/local/bin/docker-compose
29 |
30 | # ADD JENKINS_HOME
31 | ADD JENKINS_HOME $JENKINS_HOME
32 | RUN chmod +x $JENKINS_HOME/start.sh
33 |
34 | EXPOSE 8080
35 |
36 | CMD [ "/opt/jenkins/data/start.sh" ]
37 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2014, Larry Cai
2 | All rights reserved.
3 |
4 | Redistribution and use in source and binary forms, with or without
5 | modification, are permitted provided that the following conditions are met:
6 |
7 | * Redistributions of source code must retain the above copyright notice, this
8 | list of conditions and the following disclaimer.
9 |
10 | * Redistributions in binary form must reproduce the above copyright notice,
11 | this list of conditions and the following disclaimer in the documentation
12 | and/or other materials provided with the distribution.
13 |
14 | * Neither the name of the {organization} nor the names of its
15 | contributors may be used to endorse or promote products derived from
16 | this software without specific prior written permission.
17 |
18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
22 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--------------------------------------------------------------------------------
/jenkins-jobdsl/JENKINS_HOME/jobs/dsl/config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | false
6 |
7 |
8 | true
9 | false
10 | false
11 | false
12 |
13 | false
14 |
15 |
16 | def project = 'quidryan/aws-sdk-test'
17 | def branchApi = new URL("https://api.github.com/repos/${project}/branches")
18 | def branches = new groovy.json.JsonSlurper().parse(branchApi.newReader())
19 | branches.each {
20 | def branchName = it.name
21 | job {
22 | name "${project}-${branchName}".replaceAll('/','-')
23 | scm {
24 | git("git://github.com/${project}.git", branchName)
25 | }
26 | steps {
27 | maven("test -Dproject.name=${project}/${branchName}")
28 | }
29 | }
30 | }
31 | true
32 | false
33 | IGNORE
34 | IGNORE
35 | JENKINS_ROOT
36 |
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/jenkins-metrics/JENKINS_HOME/config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1.0
5 | 2
6 | NORMAL
7 | true
8 |
9 | hudson.model.Hudson.Administer:anonymous
10 | hudson.model.Hudson.Administer:guest
11 |
12 |
13 | false
14 | false
15 |
16 | false
17 |
18 | ${ITEM_ROOTDIR}/workspace
19 | ${ITEM_ROOTDIR}/builds
20 |
21 |
22 |
23 |
24 |
25 | 0
26 |
27 |
28 |
29 | All
30 | false
31 | false
32 |
33 |
34 |
35 | All
36 | 0
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/jenkins-global-post-script/JENKINS_HOME/config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1.0
5 | 2
6 | NORMAL
7 | true
8 |
9 | hudson.model.Hudson.Administer:anonymous
10 | hudson.model.Hudson.Administer:guest
11 |
12 |
13 | false
14 | false
15 |
16 | false
17 |
18 | ${ITEM_ROOTDIR}/workspace
19 | ${ITEM_ROOTDIR}/builds
20 |
21 |
22 |
23 |
24 |
25 | 0
26 |
27 |
28 |
29 | All
30 | false
31 | false
32 |
33 |
34 |
35 | All
36 | 0
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/fig/README.md:
--------------------------------------------------------------------------------
1 | # Introduction #
2 |
3 | [Fig](http://fig.sh) is very useful orchestration tool for docker in single node, while it can't be installed in boot2docker directly.
4 |
5 | The docker image helps you to run fig in docker to serve the purpose.
6 |
7 | It works in boot2docker 1.3+ for Windows Platform and CoreOS.
8 |
9 | docker run -it -v /var/run/docker.sock:/docker.sock larrycai/fig fig -v
10 |
11 | ## Usage in detail ##
12 |
13 | docker run -it -v /var/run/docker.sock:/docker.sock -v : larrycai/fig
14 |
15 | For example if you put below `fig.yml` under `/home/docker/codingwithme-ansible` (this is my [ansible CodingWithMe training](https://github.com/larrycai/codingwithme-ansible) case)
16 |
17 | ansible:
18 | image: dockerfile/ansible
19 | volumes:
20 | - /home/docker/codingwithme-ansible:/data
21 | links:
22 | - haproxy
23 | - web1
24 | - web2
25 | - database
26 | haproxy:
27 | image: larrycai/ubuntu-sshd
28 | web1:
29 | image: larrycai/ubuntu-sshd
30 | web2:
31 | image: larrycai/ubuntu-sshd
32 | database:
33 | image: larrycai/ubuntu-sshd
34 |
35 | NOTE: the path for the `volume` shall be host path !
36 |
37 | NOTE: if you work for CoreOS, change the `/home/docker` to `/home/core`
38 |
39 | Then you can run
40 |
41 | $ docker run -it -v /var/run/docker.sock:/docker.sock -v /home/docker/codingwithme-ansible:/app larrycai/fig fig run ansible
42 | [ root@6005eda75915:/data {master *} ]$ ls -al
43 | total 36K
44 | drwxr-xr-x 5 1000 staff 260 Oct 19 06:16 ./
45 | drwxr-xr-x 99 root root 4.0K Oct 19 06:24 ../
46 |
--------------------------------------------------------------------------------
/jenkins-jobdsl/JENKINS_HOME/users/guest/config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | guest
4 |
5 |
6 |
7 |
8 |
9 | RSnKYZTuNiqg/4+nS0ZCSlPoC99vp5DqWEFO80Zua6VpWfOeqRH+9MYNFwPex8O8
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | All
19 | false
20 | false
21 |
22 |
23 |
24 |
25 |
26 | false
27 |
28 |
29 | #jbcrypt:$2a$10$FiClHlI9kfOnwUpi.scW0OxLVOgDkzLyLwPkE05f7/vzP/MPQFFaS
30 |
31 |
32 | guest@gmail.com
33 |
34 |
35 |
--------------------------------------------------------------------------------
/jenkins-metrics/JENKINS_HOME/users/guest/config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | guest
4 |
5 |
6 |
7 |
8 |
9 | RSnKYZTuNiqg/4+nS0ZCSlPoC99vp5DqWEFO80Zua6VpWfOeqRH+9MYNFwPex8O8
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | All
19 | false
20 | false
21 |
22 |
23 |
24 |
25 |
26 | false
27 |
28 |
29 | #jbcrypt:$2a$10$FiClHlI9kfOnwUpi.scW0OxLVOgDkzLyLwPkE05f7/vzP/MPQFFaS
30 |
31 |
32 | guest@gmail.com
33 |
34 |
35 |
--------------------------------------------------------------------------------
/jenkins-global-post-script/JENKINS_HOME/users/guest/config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | guest
4 |
5 |
6 |
7 |
8 |
9 | RSnKYZTuNiqg/4+nS0ZCSlPoC99vp5DqWEFO80Zua6VpWfOeqRH+9MYNFwPex8O8
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 | All
19 | false
20 | false
21 |
22 |
23 |
24 |
25 |
26 | false
27 |
28 |
29 | #jbcrypt:$2a$10$FiClHlI9kfOnwUpi.scW0OxLVOgDkzLyLwPkE05f7/vzP/MPQFFaS
30 |
31 |
32 | guest@gmail.com
33 |
34 |
35 |
--------------------------------------------------------------------------------
/jenkins-jobdsl/JENKINS_HOME/jobs/HelloWorld/config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | false
6 |
7 |
8 | true
9 | false
10 | false
11 | false
12 |
13 | false
14 |
15 |
16 | def views = ["Compile", "Package", "Release"]
17 | def giturl = 'https://github.com/larrycai/docker-images.git'
18 |
19 | views.each { view ->
20 |
21 | (0..9).each { i ->
22 | job("${view}-DSL-Tutorial-${i}") {
23 | scm {
24 | git(giturl)
25 | }
26 | steps {
27 | shell('echo "this is job${i}"')
28 | }
29 | }
30 | }
31 |
32 | listView(view) {
33 | jobs {
34 | regex("${view}-.*")
35 | }
36 | columns {
37 | status()
38 | weather()
39 | name()
40 | lastSuccess()
41 | lastFailure()
42 | lastDuration()
43 | buildButton()
44 | }
45 | }
46 | }
47 | true
48 | false
49 | IGNORE
50 | IGNORE
51 | JENKINS_ROOT
52 |
53 |
54 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/jenkins-jobdsl/JENKINS_HOME/scriptApproval.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | abdfde33c4c00efcfe433ae20aa8c7db6a0d1d9d
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
32 | groovy
33 |
34 |
35 |
36 |
37 |
38 | field org.jvnet.hudson.plugins.groovypostbuild.GroovyPostbuildRecorder$BadgeManager build
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/jenkins-global-post-script/JENKINS_HOME/scriptApproval.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | abdfde33c4c00efcfe433ae20aa8c7db6a0d1d9d
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
32 | groovy
33 |
34 |
35 |
36 |
37 |
38 | field org.jvnet.hudson.plugins.groovypostbuild.GroovyPostbuildRecorder$BadgeManager build
39 |
40 |
41 |
42 |
--------------------------------------------------------------------------------
/jenkins-demo2/JENKINS_HOME/config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1.580.1
5 | 2
6 | NORMAL
7 | true
8 |
9 |
10 | false
11 |
12 | ${ITEM_ROOTDIR}/workspace
13 | ${ITEM_ROOTDIR}/builds
14 |
15 |
16 |
17 |
18 |
19 | 5
20 | 0
21 |
22 |
23 |
24 | All
25 | false
26 | false
27 |
28 |
29 |
30 | All
31 | 0
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 | 2
43 |
44 |
45 | DOCKER_HOST
46 | unix:///docker.sock
47 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/jenkins-global-post-script/README.md:
--------------------------------------------------------------------------------
1 | # docker-jenkins #
2 |
3 | This is the demo on how to use [Global post script jenkins plugin](https://wiki.jenkins-ci.org/display/JENKINS/Global+Post+Script+Plugin)
4 |
5 | docker run -it -p 8080:8080 larrycai/jenkins-global-post-script
6 |
7 | Login as guest/guest and build the `demo` job, then claim it with reason "my fault"
8 |
9 | Then try to see whether we can get the failure reason in groovy.
10 |
11 | Now it works from 1.0.12 version.
12 |
13 | # Code #
14 |
15 | Below is the script `claim.groovy` under `$JENKINS_HOME/global-post-script`, you can post it below to http://localhost:8080/script to run it.
16 |
17 | import jenkins.*
18 | import jenkins.model.*
19 | import hudson.*
20 | import hudson.model.*
21 |
22 | job = hudson.model.Hudson.instance.getItem("demo")
23 | build = job.getLastBuild()
24 | println build
25 |
26 | def data = [:]
27 | def env = build.getEnvironment()
28 |
29 | data["jobTimestamp"] = build.getTimeInMillis()
30 |
31 | data["result"] = build.getResult().toString()
32 | data["number"] = build.getNumber()
33 | data["jobName"] = env['JOB_NAME']
34 | data["builtOn"] = env['NODE_NAME']
35 | data["url"] = build.getAbsoluteUrl()
36 |
37 | //Convert duration from milisec to minutes
38 | data["duration"] = build.getDuration()
39 |
40 | // get test result for Junit/TestNG
41 | def testResultAction = build.getTestResultAction()
42 | if (testResultAction != null) {
43 | data["totalCount"] = testResultAction.getTotalCount()
44 | data["failCount"] = testResultAction.getFailCount()
45 | data["skipCount"] = testResultAction.getSkipCount()
46 | } else {
47 | println "INFO: No junit/testng test result"
48 | }
49 |
50 | println "INFO: here comes the data"
51 | println data
52 |
53 | def action = build.getAction(hudson.plugins.claim.ClaimBuildAction.class)
54 | println action.getReason()
55 |
56 |
57 | # Development #
58 |
59 | If you want to develop or test the global post script, better to share inside
60 |
61 | $ cd JENKINS_HOME/global-post-script
62 | $ docker run -it -v $PWD:/opt/jenkins/data/global-post-script -p 8000:8080 larrycai/jenkins-global-post-script
63 |
64 |
--------------------------------------------------------------------------------
/jenkins-jobdsl/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM ubuntu:trusty
2 |
3 | MAINTAINER Larry Cai
4 |
5 | RUN apt-get update && apt-get install -qqy curl openjdk-7-jdk groovy && rm -rf /var/lib/apt/lists/*
6 |
7 | ENV JENKINS_HOME /opt/jenkins/data
8 | ENV JENKINS_MIRROR http://mirrors.jenkins-ci.org
9 |
10 | # install jenkins.war and plugins
11 |
12 | RUN mkdir -p $JENKINS_HOME/plugins
13 |
14 | RUN curl -o /opt/jenkins/jenkins.war -L $JENKINS_MIRROR/war-stable/latest/jenkins.war
15 |
16 | ENV REFRESHED_AT 2015-06-26
17 |
18 | # git environment
19 | RUN for plugin in git scm-api git-client credentials credentials-binding workflow-step-api plain-credentials;\
20 | do curl -f -o $JENKINS_HOME/plugins/${plugin}.hpi \
21 | -L $JENKINS_MIRROR/plugins/${plugin}/latest/${plugin}.hpi ; done
22 |
23 | RUN for plugin in job-dsl config-file-provider groovy-postbuild groovy junit testng-plugin claim;\
24 | do curl -f -o $JENKINS_HOME/plugins/${plugin}.hpi \
25 | -L $JENKINS_MIRROR/plugins/${plugin}/latest/${plugin}.hpi ; done
26 |
27 | # more needed plugin
28 | RUN for plugin in token-macro jquery parameterized-trigger postbuild-task description-setter \
29 | throttle-concurrents ws-cleanup gerrit-trigger testng-plugin envinject cobertura \
30 | build-flow-plugin buildgraph-view nested-view global-post-script \
31 | ansicolor build-timeout timestamper artifactory;\
32 | do curl -f -o $JENKINS_HOME/plugins/${plugin}.hpi \
33 | -L $JENKINS_MIRROR/plugins/${plugin}/latest/${plugin}.hpi ; done
34 |
35 | # more needed plugin
36 | RUN for plugin in progress-bar-column-plugin mock-slave durable-task labeled-test-groups-publisher \
37 | locks-and-latches build-user-vars-plugin multiple-scms built-on-column \
38 | config-file-provider junit email-ext sonar;\
39 | do curl -f -o $JENKINS_HOME/plugins/${plugin}.hpi \
40 | -L $JENKINS_MIRROR/plugins/${plugin}/latest/${plugin}.hpi ; done
41 |
42 | # the credentials needs to be later version to satisfied with other plugins
43 | RUN touch $JENKINS_HOME/plugins/credentials.jpi.pinned
44 |
45 | ADD JENKINS_HOME $JENKINS_HOME
46 |
47 | RUN chmod +x $JENKINS_HOME/start.sh
48 |
49 | # start script
50 |
51 | ADD . /app
52 |
53 | EXPOSE 8080
54 |
55 | CMD [ "/opt/jenkins/data/start.sh" ]
--------------------------------------------------------------------------------
/jenkins-global-post-script/JENKINS_HOME/jobs/demo/builds/1/build.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | 3
11 |
12 |
13 | true
14 | guest
15 | guest
16 | 2015-05-21 04:14:53.518 UTC
17 | false
18 |
19 | HW
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 | 2
39 | 1432181674912
40 | 1432181674913
41 | FAILURE
42 | 27
43 | US-ASCII
44 | false
45 |
46 | /opt/jenkins/data/jobs/smx-demo2/workspace
47 | 1.613
48 |
49 |
50 |
--------------------------------------------------------------------------------
/jenkins-global-post-script/JENKINS_HOME/jobs/demo/builds/2/log:
--------------------------------------------------------------------------------
1 | Started by user [8mha:AAAAlx+LCAAAAAAAAP9b85aBtbiIQTGjNKU4P08vOT+vOD8nVc83PyU1x6OyILUoJzMv2y+/JJUBAhiZGBgqihhk0NSjKDWzXb3RdlLBUSYGJk8GtpzUvPSSDB8G5tKinBIGIZ+sxLJE/ZzEvHT94JKizLx0a6BxUmjGOUNodHsLgAzWEgZu/dLi1CL99NLU4hIAzDYlCcAAAAA=[0mguest
2 | Building in workspace /opt/jenkins/data/jobs/smx-demo2/workspace
3 | [8mha:AAAAzh+LCAAAAAAAAP9b85aBtbiIwTC/KF0vKzUvOzOvODlTryCnNB3I0svJzEvNK81NSi0q1gsuSS1wzs8rzs9J9csvSU3yPjtb7UjzASYGJk8G9uT80ryS1CIfBhagCSklDBY+QAP14QbqQw3URzJQH81AFW+gTuuKIgapjNKU4vw8vWSInB6SGgYIYGRiYKgoADHqihjMSHY62CaoUQxCQKOKGPiyEssS9XIS89L1XIG6kCULShj4nUI9fVyCQ1wD4oNDHINCAOnBY9I1AQAA[0m[workspace] $ /bin/bash /tmp/hudson4514298473664880594.sh
4 | Hello
5 | this is demo test case failure, which can't be detected automatically
6 | it will be claimed when manuall check
7 | [8mha:AAAAzB+LCAAAAAAAAP9b85aBtbiIwTC/KF0vKzUvOzOvODlTryCnNB3I0svJzEvNK81NSi0q1gsuSS1wzs8rzs9J9csvSU3yPjtb7UjzASYGJk8G9uT80ryS1CIfBhagCSklDBY+QAP14QbqQw3URzJQH81AFW+gTuuKIgapjNKU4vw8vWSInB6SGgYIYGRiYKgoADHqihjMSHY62CaoUQxCQKOKGPiyEssS9XIS89L1XIG6kCULShh4nUI9fVyCQ1wD4l39XACR4nNzMwEAAA==[0mBuild step 'Execute shell' marked build as failure
8 | [8mha:AAAAzx+LCAAAAAAAAP9b85aBtbiIwTC/KF0vKzUvOzOvODlTryCnNB3I0svJzEvNK81NSi0q1gsuSS1wzs8rzs9J9csvSU3yPjtb7UjzASYGJk8G9uT80ryS1CIfBhagCSklDBY+QAP14QbqQw3URzJQH81AFW+gTuuKIgapjNKU4vw8vWSInB6SGgYIYGRiYKgoADKY6ooYzEh2OtgmqFEMQkCjihj4shLLEvVyEvPS9VyBupAlC0oY+J1CPX1cgkNcA+KDQxyDQgA7O+VtNQEAAA==[0m[8mha:AAAAzR+LCAAAAAAAAP9b85aBtbiIwTC/KF0vKzUvOzOvODlTryCnNB3I0svJzEvNK81NSi0q1gsuSS1wzs8rzs9J9csvSU3yPjtb7UjzASYGJk8G9uT80ryS1CIfBhagCSklDBY+QAP14QbqQw3URzJQH81AFW+gTuuKIgapjNKU4vw8vWSInB6SGgYIYGRiYKgoADKY6ooYzEh2OtgmqFEMQkCjihj4shLLEvVyEvPS9VyBupAlC0oYeJ1CPX1cgkNcA+Jd/VwApPJzWzMBAAA=[0m[8mha:AAAAzx+LCAAAAAAAAP9b85aBtbiIwTC/KF0vKzUvOzOvODlTryCnNB3I0svJzEvNK81NSi0q1gsuSS1wzs8rzs9J9csvSU3yPjtb7UjzASYGJk8G9uT80ryS1CIfBhagCSklDBY+QAP14QbqQw3URzJQH81AFW+gTuuKIgapjNKU4vw8vWSInB6SGgYIYGRiYKgoADKY64oYzEh2OtgmqFEMQkCjihj4shLLEvVyEvPS9VyBupAlC0oY+J1CPX1cgkNcA+KDQxyDQgB1bWcHNQEAAA==[0m[8mha:AAAAzR+LCAAAAAAAAP9b85aBtbiIwTC/KF0vKzUvOzOvODlTryCnNB3I0svJzEvNK81NSi0q1gsuSS1wzs8rzs9J9csvSU3yPjtb7UjzASYGJk8G9uT80ryS1CIfBhagCSklDBY+QAP14QbqQw3URzJQH81AFW+gTuuKIgapjNKU4vw8vWSInB6SGgYIYGRiYKgoADKY64oYzEh2OtgmqFEMQkCjihj4shLLEvVyEvPS9VyBupAlC0oYeJ1CPX1cgkNcA+Jd/VwAiACj9TMBAAA=[0m[BFA] Scanning build for known causes...
9 | [BFA] No failure causes found
10 | [BFA] Done. 0s
11 | Finished: FAILURE
12 |
--------------------------------------------------------------------------------
/jenkins-global-post-script/JENKINS_HOME/jobs/demo/builds/1/log:
--------------------------------------------------------------------------------
1 | Started by user [8mha:AAAAlh+LCAAAAAAAAP9b85aBtbiIQTGjNKU4P08vOT+vOD8nVc83PyU1x6OyILUoJzMv2y+/JJUBAhiZGBgqihhk0NSjKDWzXb3RdlLBUSYGJk8GtpzUvPSSDB8G5tKinBIGIZ+sxLJE/ZzEvHT94JKizLx0a6BxUmjGOUNodHsLgAzOEgYu/dLi1CL9vNKcHACFIKlWvwAAAA==[0manonymous
2 | Building in workspace /opt/jenkins/data/jobs/smx-demo2/workspace
3 | [8mha:AAAAzh+LCAAAAAAAAP9b85aBtbiIwTC/KF0vKzUvOzOvODlTryCnNB3I0svJzEvNK81NSi0q1gsuSS1wzs8rzs9J9csvSU3yPjtb7UjzASYGJk8G9uT80ryS1CIfBhagCSklDBY+QAP14QbqQw3URzJQH81AFW+gTuuKIgapjNKU4vw8vWSInB6SGgYIYGRiYKgoADHqihjMSHY62CaoUQxCQKOKGPiyEssS9XIS89L1XIG6kCULShj4nUI9fVyCQ1wD4oNDHINCAOnBY9I1AQAA[0m[workspace] $ /bin/bash /tmp/hudson3028387546731241737.sh
4 | Hello
5 | this is demo test case failure, which can't be detected automatically
6 | it will be claimed when manuall check
7 | [8mha:AAAAzB+LCAAAAAAAAP9b85aBtbiIwTC/KF0vKzUvOzOvODlTryCnNB3I0svJzEvNK81NSi0q1gsuSS1wzs8rzs9J9csvSU3yPjtb7UjzASYGJk8G9uT80ryS1CIfBhagCSklDBY+QAP14QbqQw3URzJQH81AFW+gTuuKIgapjNKU4vw8vWSInB6SGgYIYGRiYKgoADHqihjMSHY62CaoUQxCQKOKGPiyEssS9XIS89L1XIG6kCULShh4nUI9fVyCQ1wD4l39XACR4nNzMwEAAA==[0mBuild step 'Execute shell' marked build as failure
8 | [8mha:AAAAzx+LCAAAAAAAAP9b85aBtbiIwTC/KF0vKzUvOzOvODlTryCnNB3I0svJzEvNK81NSi0q1gsuSS1wzs8rzs9J9csvSU3yPjtb7UjzASYGJk8G9uT80ryS1CIfBhagCSklDBY+QAP14QbqQw3URzJQH81AFW+gTuuKIgapjNKU4vw8vWSInB6SGgYIYGRiYKgoADKY6ooYzEh2OtgmqFEMQkCjihj4shLLEvVyEvPS9VyBupAlC0oY+J1CPX1cgkNcA+KDQxyDQgA7O+VtNQEAAA==[0m[8mha:AAAAzR+LCAAAAAAAAP9b85aBtbiIwTC/KF0vKzUvOzOvODlTryCnNB3I0svJzEvNK81NSi0q1gsuSS1wzs8rzs9J9csvSU3yPjtb7UjzASYGJk8G9uT80ryS1CIfBhagCSklDBY+QAP14QbqQw3URzJQH81AFW+gTuuKIgapjNKU4vw8vWSInB6SGgYIYGRiYKgoADKY6ooYzEh2OtgmqFEMQkCjihj4shLLEvVyEvPS9VyBupAlC0oYeJ1CPX1cgkNcA+Jd/VwApPJzWzMBAAA=[0m[8mha:AAAAzx+LCAAAAAAAAP9b85aBtbiIwTC/KF0vKzUvOzOvODlTryCnNB3I0svJzEvNK81NSi0q1gsuSS1wzs8rzs9J9csvSU3yPjtb7UjzASYGJk8G9uT80ryS1CIfBhagCSklDBY+QAP14QbqQw3URzJQH81AFW+gTuuKIgapjNKU4vw8vWSInB6SGgYIYGRiYKgoADKY64oYzEh2OtgmqFEMQkCjihj4shLLEvVyEvPS9VyBupAlC0oY+J1CPX1cgkNcA+KDQxyDQgB1bWcHNQEAAA==[0m[8mha:AAAAzR+LCAAAAAAAAP9b85aBtbiIwTC/KF0vKzUvOzOvODlTryCnNB3I0svJzEvNK81NSi0q1gsuSS1wzs8rzs9J9csvSU3yPjtb7UjzASYGJk8G9uT80ryS1CIfBhagCSklDBY+QAP14QbqQw3URzJQH81AFW+gTuuKIgapjNKU4vw8vWSInB6SGgYIYGRiYKgoADKY64oYzEh2OtgmqFEMQkCjihj4shLLEvVyEvPS9VyBupAlC0oYeJ1CPX1cgkNcA+Jd/VwAiACj9TMBAAA=[0m[BFA] Scanning build for known causes...
9 | [BFA] No failure causes found
10 | [BFA] Done. 0s
11 | Finished: FAILURE
12 |
--------------------------------------------------------------------------------
/jenkins-jobdsl/JENKINS_HOME/jobs/Sample/config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | 2
7 | 30
8 | -1
9 | -1
10 |
11 | false
12 |
13 |
14 | 2
15 |
16 |
17 | https://github.com/larrycai/docker-images.git
18 |
19 |
20 |
21 |
22 | */master
23 |
24 |
25 | false
26 |
27 |
28 |
29 | true
30 | false
31 | false
32 | false
33 |
34 |
35 | H/15 * * * *
36 | false
37 |
38 |
39 | false
40 |
41 |
42 | echo "build success" >> status.txt
43 |
44 |
45 |
46 |
47 | status.txt
48 | false
49 | false
50 | false
51 | true
52 |
53 |
54 |
55 |
56 | false
57 |
58 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/jenkins-global-post-script/JENKINS_HOME/jobs/demo/builds/2/build.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | guest
8 |
9 |
10 |
11 |
12 | 3
13 |
14 |
15 | true
16 | guest
17 | guest
18 | 2015-05-21 04:15:11.784 UTC
19 | false
20 |
21 | CODE
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 | 3
41 | 1432181698761
42 | 1432181698768
43 | FAILURE
44 | 46
45 | US-ASCII
46 | false
47 |
48 | /opt/jenkins/data/jobs/smx-demo2/workspace
49 | 1.613
50 |
51 |
52 |
--------------------------------------------------------------------------------
/jenkins-jobdsl/JENKINS_HOME/config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1.0
5 | 2
6 | NORMAL
7 | true
8 |
9 | hudson.model.Hudson.Administer:anonymous
10 | hudson.model.Hudson.Administer:guest
11 |
12 |
13 | false
14 | false
15 |
16 | false
17 |
18 | ${ITEM_ROOTDIR}/workspace
19 | ${ITEM_ROOTDIR}/builds
20 |
21 | false
22 |
23 |
24 |
25 |
26 |
27 | 0
28 |
29 |
30 |
31 | All
32 | false
33 | false
34 |
35 |
36 |
37 |
38 | CodingWithMe
39 | false
40 | false
41 |
42 |
43 |
44 | HelloWorld
45 | Sample
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 | Hello.*
58 | false
59 |
60 |
61 |
62 | All
63 | 0
64 |
65 |
66 |
67 |
--------------------------------------------------------------------------------
/jenkins-demo3/JENKINS_HOME/config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | /opt/jenkins/data
5 | 181338112
6 | true
7 | hudson.node_monitors.DiskSpaceMonitor
8 |
9 |
10 | 1.580.1
11 | 2
12 | NORMAL
13 | true
14 |
15 |
16 | false
17 |
18 | ${ITEM_ROOTDIR}/workspace
19 | ${ITEM_ROOTDIR}/builds
20 |
21 |
22 |
23 |
24 |
25 |
26 | ubuntu-slave
27 |
28 | /home/jenkins
29 | 1
30 | NORMAL
31 |
32 |
33 | 172.17.42.1
34 | 2222
35 | 93941e05-25d2-4110-aa56-a6931b5a0d6a
36 | 0
37 | 0
38 |
39 |
40 |
41 | anonymous
42 |
43 |
44 | 5
45 | 0
46 |
47 |
48 |
49 | All
50 | false
51 | false
52 |
53 |
54 |
55 | All
56 | 0
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 | 2
68 |
69 |
70 | DOCKER_HOST
71 | unix:///docker.sock
72 |
73 |
74 |
75 |
76 |
--------------------------------------------------------------------------------
/jenkins-compose/JENKINS_HOME/config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | /opt/jenkins/data
5 | 181338112
6 | true
7 | hudson.node_monitors.DiskSpaceMonitor
8 |
9 |
10 | 1.580.1
11 | 2
12 | NORMAL
13 | true
14 |
15 |
16 | false
17 |
18 | ${ITEM_ROOTDIR}/workspace
19 | ${ITEM_ROOTDIR}/builds
20 |
21 |
22 |
23 |
24 |
25 |
26 | ubuntu-slave
27 |
28 | /home/jenkins
29 | 1
30 | NORMAL
31 |
32 |
33 | 172.17.0.1
34 | 2222
35 | 93941e05-25d2-4110-aa56-a6931b5a0d6a
36 | 0
37 | 0
38 |
39 |
40 |
41 | anonymous
42 |
43 |
44 | 5
45 | 0
46 |
47 |
48 |
49 | All
50 | false
51 | false
52 |
53 |
54 |
55 | All
56 | 0
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 | 2
68 |
69 |
70 | DOCKER_HOST
71 | unix:///docker.sock
72 |
73 |
74 |
75 |
76 |
77 |
--------------------------------------------------------------------------------
/jenkins-compose/JENKINS_HOME/credentials.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | GLOBAL
11 | 75fa3329-fcec-4709-a90d-60e91caa6921
12 |
13 | root
14 | Z/2CJYM3r8yd9xeMKdWK1Q==
15 |
16 | -----BEGIN RSA PRIVATE KEY-----
17 | MIIEogIBAAKCAQEAxLIJCftCIoQcw8j26U6pY6H7am1mH2/2ynWQ/6zTrz3u0Cy7
18 | fsLXb6UPdm6uelfqS9pc75FaEnl4RtjzzAsBTmyI50YIKsCrS0HQ9zut/eKwDagL
19 | Pt5/uvC860ltpKpVu6UU8C6ZIvf0KA+FrT4fHIuhP+nrEOoxAtnCbFYjhF555YcK
20 | bwgzO0rnoukwPoKBenV5tNPPdoWR1ChOrZVD5lpFnrn+AL1HvHi1by9KAw1QfMMD
21 | SIdLz09N4kVQhIgluEEqZ+EIu6zWvlyq+t8IyqzN5Rbaqg7BOAHmm0jFRzZHRE5f
22 | kj8LmEMIrjwLR/Ad0vEpG4mIuDstkeyra7H7jQIBIwKCAQEAhuB7OgtgjLJc3gYl
23 | p0vh3etqkh8hdKSL+IshmWCRJ7Vwjr+Wgs6/nQN4UTXz/B8HD3EpyNiyytbzY8f3
24 | odupH9VlMN+Qklg68ca7LTA8y1mdSzFmzAZI9Tdc+RxocOnUY2nieM9+82gyZJzt
25 | 8yNIiJpCr3vUY17ChZyik25EPYFn2JTydXmOzxxfUe6ot9F77qX+5j3poWbI5NzU
26 | xcSyYn/yZD2WIZn6C3SAwEVRR/Qxbu4CLjjsIi0Aecv8qW8aYQG5wnpiawYkc4oe
27 | ufad+CnsaRSs+3V3FmZJXIpOCjDAJ8FcP9/LOqgARet3zUHc41nEt5f9W5Ba9Tui
28 | LxFTawKBgQD0jCozsk4XGeJDGk2lydN8Cef5DVLJBrpq5ovR1dXCE3SNOKzEfpxC
29 | AagC2XKsAIEqvJS3X5kKhCW+sDfSnM5vr1jPYga8I1h9TqwQ0/5wHZcS7LwEz+DE
30 | E+OEIQm6+SnbhQaFMiLsxAK+gmlJ7kmql5ldNktkeM1IyUsW1VjfWwKBgQDN6C5K
31 | fBOBM19EMR9/E0gwtIYXl7wRub/sn9pxN1X9reshk94T5nXOahwhfVeHeZ1dqRMz
32 | ZYXo7qfugG6tcKJaO3CBdOfSZutkRzHYAljyTdiXicdZliKveMk3ffVYfy/+L/iJ
33 | LaBryWCfGzCyo6Zmb8o3rtXSxJC1eFVIEbUtNwKBgHbHvLoGJe32oRlHSkk2JOR5
34 | 1xKRcVpTuaGjLfg0qadoiRFkq6/luZxnNFknyfvFuxTB/xc9D9HoahrKnsViGyBN
35 | 2q3fJ9e5ZX6xLwDb/z3FOsAMldZzmQ7H1Ohn0YaziVv+yKcYWhs6oj9GqCs5OblC
36 | Uc4wUIFB/U89Mxm4FTlJAoGATHrPXX6K5tiRGVQTA1BOA3ZAbym64gMqB26S9toJ
37 | /yNXVZ1SfGuK16PBTkR/mLgkgd+2rLCuFLBqQqS7ZP3zKNQ/uw4qODTbFp4Z0+Od
38 | YVAdP5mTL+dOtjQtewLmGY5Tp44pHQJRhx7pX6sDdY09zkbHc8SYkB0fzl/lKWWp
39 | sbUCgYEAoNj+JpIOe4MPE8yaoFo0Cm/mHScIa5WhGyeIBPnKtAjnsqHYUudNSP/y
40 | boiATvOmBVDjjMmr/C3P0bye9n2okNHvv2bUW86D1SaoyWRgoFELHSaONAJNKdf/
41 | SRJFcRmwa+tg+MrRX+ZQtSNvHSp1JBhM+FZMh70eQ8RPxOw4o8E=
42 | -----END RSA PRIVATE KEY-----
43 |
44 |
45 |
46 | GLOBAL
47 | 93941e05-25d2-4110-aa56-a6931b5a0d6a
48 | jenkins slave - jenkins
49 | jenkins
50 | Z/2CJYM3r8yd9xeMKdWK1Q==
51 |
52 | -----BEGIN RSA PRIVATE KEY-----
53 | MIIEogIBAAKCAQEAxLIJCftCIoQcw8j26U6pY6H7am1mH2/2ynWQ/6zTrz3u0Cy7
54 | fsLXb6UPdm6uelfqS9pc75FaEnl4RtjzzAsBTmyI50YIKsCrS0HQ9zut/eKwDagL
55 | Pt5/uvC860ltpKpVu6UU8C6ZIvf0KA+FrT4fHIuhP+nrEOoxAtnCbFYjhF555YcK
56 | bwgzO0rnoukwPoKBenV5tNPPdoWR1ChOrZVD5lpFnrn+AL1HvHi1by9KAw1QfMMD
57 | SIdLz09N4kVQhIgluEEqZ+EIu6zWvlyq+t8IyqzN5Rbaqg7BOAHmm0jFRzZHRE5f
58 | kj8LmEMIrjwLR/Ad0vEpG4mIuDstkeyra7H7jQIBIwKCAQEAhuB7OgtgjLJc3gYl
59 | p0vh3etqkh8hdKSL+IshmWCRJ7Vwjr+Wgs6/nQN4UTXz/B8HD3EpyNiyytbzY8f3
60 | odupH9VlMN+Qklg68ca7LTA8y1mdSzFmzAZI9Tdc+RxocOnUY2nieM9+82gyZJzt
61 | 8yNIiJpCr3vUY17ChZyik25EPYFn2JTydXmOzxxfUe6ot9F77qX+5j3poWbI5NzU
62 | xcSyYn/yZD2WIZn6C3SAwEVRR/Qxbu4CLjjsIi0Aecv8qW8aYQG5wnpiawYkc4oe
63 | ufad+CnsaRSs+3V3FmZJXIpOCjDAJ8FcP9/LOqgARet3zUHc41nEt5f9W5Ba9Tui
64 | LxFTawKBgQD0jCozsk4XGeJDGk2lydN8Cef5DVLJBrpq5ovR1dXCE3SNOKzEfpxC
65 | AagC2XKsAIEqvJS3X5kKhCW+sDfSnM5vr1jPYga8I1h9TqwQ0/5wHZcS7LwEz+DE
66 | E+OEIQm6+SnbhQaFMiLsxAK+gmlJ7kmql5ldNktkeM1IyUsW1VjfWwKBgQDN6C5K
67 | fBOBM19EMR9/E0gwtIYXl7wRub/sn9pxN1X9reshk94T5nXOahwhfVeHeZ1dqRMz
68 | ZYXo7qfugG6tcKJaO3CBdOfSZutkRzHYAljyTdiXicdZliKveMk3ffVYfy/+L/iJ
69 | LaBryWCfGzCyo6Zmb8o3rtXSxJC1eFVIEbUtNwKBgHbHvLoGJe32oRlHSkk2JOR5
70 | 1xKRcVpTuaGjLfg0qadoiRFkq6/luZxnNFknyfvFuxTB/xc9D9HoahrKnsViGyBN
71 | 2q3fJ9e5ZX6xLwDb/z3FOsAMldZzmQ7H1Ohn0YaziVv+yKcYWhs6oj9GqCs5OblC
72 | Uc4wUIFB/U89Mxm4FTlJAoGATHrPXX6K5tiRGVQTA1BOA3ZAbym64gMqB26S9toJ
73 | /yNXVZ1SfGuK16PBTkR/mLgkgd+2rLCuFLBqQqS7ZP3zKNQ/uw4qODTbFp4Z0+Od
74 | YVAdP5mTL+dOtjQtewLmGY5Tp44pHQJRhx7pX6sDdY09zkbHc8SYkB0fzl/lKWWp
75 | sbUCgYEAoNj+JpIOe4MPE8yaoFo0Cm/mHScIa5WhGyeIBPnKtAjnsqHYUudNSP/y
76 | boiATvOmBVDjjMmr/C3P0bye9n2okNHvv2bUW86D1SaoyWRgoFELHSaONAJNKdf/
77 | SRJFcRmwa+tg+MrRX+ZQtSNvHSp1JBhM+FZMh70eQ8RPxOw4o8E=
78 | -----END RSA PRIVATE KEY-----
79 |
80 |
81 |
82 |
83 |
84 |
--------------------------------------------------------------------------------
/jenkins-demo3/JENKINS_HOME/credentials.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 | GLOBAL
11 | 75fa3329-fcec-4709-a90d-60e91caa6921
12 |
13 | root
14 | Z/2CJYM3r8yd9xeMKdWK1Q==
15 |
16 | -----BEGIN RSA PRIVATE KEY-----
17 | MIIEogIBAAKCAQEAxLIJCftCIoQcw8j26U6pY6H7am1mH2/2ynWQ/6zTrz3u0Cy7
18 | fsLXb6UPdm6uelfqS9pc75FaEnl4RtjzzAsBTmyI50YIKsCrS0HQ9zut/eKwDagL
19 | Pt5/uvC860ltpKpVu6UU8C6ZIvf0KA+FrT4fHIuhP+nrEOoxAtnCbFYjhF555YcK
20 | bwgzO0rnoukwPoKBenV5tNPPdoWR1ChOrZVD5lpFnrn+AL1HvHi1by9KAw1QfMMD
21 | SIdLz09N4kVQhIgluEEqZ+EIu6zWvlyq+t8IyqzN5Rbaqg7BOAHmm0jFRzZHRE5f
22 | kj8LmEMIrjwLR/Ad0vEpG4mIuDstkeyra7H7jQIBIwKCAQEAhuB7OgtgjLJc3gYl
23 | p0vh3etqkh8hdKSL+IshmWCRJ7Vwjr+Wgs6/nQN4UTXz/B8HD3EpyNiyytbzY8f3
24 | odupH9VlMN+Qklg68ca7LTA8y1mdSzFmzAZI9Tdc+RxocOnUY2nieM9+82gyZJzt
25 | 8yNIiJpCr3vUY17ChZyik25EPYFn2JTydXmOzxxfUe6ot9F77qX+5j3poWbI5NzU
26 | xcSyYn/yZD2WIZn6C3SAwEVRR/Qxbu4CLjjsIi0Aecv8qW8aYQG5wnpiawYkc4oe
27 | ufad+CnsaRSs+3V3FmZJXIpOCjDAJ8FcP9/LOqgARet3zUHc41nEt5f9W5Ba9Tui
28 | LxFTawKBgQD0jCozsk4XGeJDGk2lydN8Cef5DVLJBrpq5ovR1dXCE3SNOKzEfpxC
29 | AagC2XKsAIEqvJS3X5kKhCW+sDfSnM5vr1jPYga8I1h9TqwQ0/5wHZcS7LwEz+DE
30 | E+OEIQm6+SnbhQaFMiLsxAK+gmlJ7kmql5ldNktkeM1IyUsW1VjfWwKBgQDN6C5K
31 | fBOBM19EMR9/E0gwtIYXl7wRub/sn9pxN1X9reshk94T5nXOahwhfVeHeZ1dqRMz
32 | ZYXo7qfugG6tcKJaO3CBdOfSZutkRzHYAljyTdiXicdZliKveMk3ffVYfy/+L/iJ
33 | LaBryWCfGzCyo6Zmb8o3rtXSxJC1eFVIEbUtNwKBgHbHvLoGJe32oRlHSkk2JOR5
34 | 1xKRcVpTuaGjLfg0qadoiRFkq6/luZxnNFknyfvFuxTB/xc9D9HoahrKnsViGyBN
35 | 2q3fJ9e5ZX6xLwDb/z3FOsAMldZzmQ7H1Ohn0YaziVv+yKcYWhs6oj9GqCs5OblC
36 | Uc4wUIFB/U89Mxm4FTlJAoGATHrPXX6K5tiRGVQTA1BOA3ZAbym64gMqB26S9toJ
37 | /yNXVZ1SfGuK16PBTkR/mLgkgd+2rLCuFLBqQqS7ZP3zKNQ/uw4qODTbFp4Z0+Od
38 | YVAdP5mTL+dOtjQtewLmGY5Tp44pHQJRhx7pX6sDdY09zkbHc8SYkB0fzl/lKWWp
39 | sbUCgYEAoNj+JpIOe4MPE8yaoFo0Cm/mHScIa5WhGyeIBPnKtAjnsqHYUudNSP/y
40 | boiATvOmBVDjjMmr/C3P0bye9n2okNHvv2bUW86D1SaoyWRgoFELHSaONAJNKdf/
41 | SRJFcRmwa+tg+MrRX+ZQtSNvHSp1JBhM+FZMh70eQ8RPxOw4o8E=
42 | -----END RSA PRIVATE KEY-----
43 |
44 |
45 |
46 | GLOBAL
47 | 93941e05-25d2-4110-aa56-a6931b5a0d6a
48 | jenkins slave - jenkins
49 | jenkins
50 | Z/2CJYM3r8yd9xeMKdWK1Q==
51 |
52 | -----BEGIN RSA PRIVATE KEY-----
53 | MIIEogIBAAKCAQEAxLIJCftCIoQcw8j26U6pY6H7am1mH2/2ynWQ/6zTrz3u0Cy7
54 | fsLXb6UPdm6uelfqS9pc75FaEnl4RtjzzAsBTmyI50YIKsCrS0HQ9zut/eKwDagL
55 | Pt5/uvC860ltpKpVu6UU8C6ZIvf0KA+FrT4fHIuhP+nrEOoxAtnCbFYjhF555YcK
56 | bwgzO0rnoukwPoKBenV5tNPPdoWR1ChOrZVD5lpFnrn+AL1HvHi1by9KAw1QfMMD
57 | SIdLz09N4kVQhIgluEEqZ+EIu6zWvlyq+t8IyqzN5Rbaqg7BOAHmm0jFRzZHRE5f
58 | kj8LmEMIrjwLR/Ad0vEpG4mIuDstkeyra7H7jQIBIwKCAQEAhuB7OgtgjLJc3gYl
59 | p0vh3etqkh8hdKSL+IshmWCRJ7Vwjr+Wgs6/nQN4UTXz/B8HD3EpyNiyytbzY8f3
60 | odupH9VlMN+Qklg68ca7LTA8y1mdSzFmzAZI9Tdc+RxocOnUY2nieM9+82gyZJzt
61 | 8yNIiJpCr3vUY17ChZyik25EPYFn2JTydXmOzxxfUe6ot9F77qX+5j3poWbI5NzU
62 | xcSyYn/yZD2WIZn6C3SAwEVRR/Qxbu4CLjjsIi0Aecv8qW8aYQG5wnpiawYkc4oe
63 | ufad+CnsaRSs+3V3FmZJXIpOCjDAJ8FcP9/LOqgARet3zUHc41nEt5f9W5Ba9Tui
64 | LxFTawKBgQD0jCozsk4XGeJDGk2lydN8Cef5DVLJBrpq5ovR1dXCE3SNOKzEfpxC
65 | AagC2XKsAIEqvJS3X5kKhCW+sDfSnM5vr1jPYga8I1h9TqwQ0/5wHZcS7LwEz+DE
66 | E+OEIQm6+SnbhQaFMiLsxAK+gmlJ7kmql5ldNktkeM1IyUsW1VjfWwKBgQDN6C5K
67 | fBOBM19EMR9/E0gwtIYXl7wRub/sn9pxN1X9reshk94T5nXOahwhfVeHeZ1dqRMz
68 | ZYXo7qfugG6tcKJaO3CBdOfSZutkRzHYAljyTdiXicdZliKveMk3ffVYfy/+L/iJ
69 | LaBryWCfGzCyo6Zmb8o3rtXSxJC1eFVIEbUtNwKBgHbHvLoGJe32oRlHSkk2JOR5
70 | 1xKRcVpTuaGjLfg0qadoiRFkq6/luZxnNFknyfvFuxTB/xc9D9HoahrKnsViGyBN
71 | 2q3fJ9e5ZX6xLwDb/z3FOsAMldZzmQ7H1Ohn0YaziVv+yKcYWhs6oj9GqCs5OblC
72 | Uc4wUIFB/U89Mxm4FTlJAoGATHrPXX6K5tiRGVQTA1BOA3ZAbym64gMqB26S9toJ
73 | /yNXVZ1SfGuK16PBTkR/mLgkgd+2rLCuFLBqQqS7ZP3zKNQ/uw4qODTbFp4Z0+Od
74 | YVAdP5mTL+dOtjQtewLmGY5Tp44pHQJRhx7pX6sDdY09zkbHc8SYkB0fzl/lKWWp
75 | sbUCgYEAoNj+JpIOe4MPE8yaoFo0Cm/mHScIa5WhGyeIBPnKtAjnsqHYUudNSP/y
76 | boiATvOmBVDjjMmr/C3P0bye9n2okNHvv2bUW86D1SaoyWRgoFELHSaONAJNKdf/
77 | SRJFcRmwa+tg+MrRX+ZQtSNvHSp1JBhM+FZMh70eQ8RPxOw4o8E=
78 | -----END RSA PRIVATE KEY-----
79 |
80 |
81 |
82 |
83 |
84 |
--------------------------------------------------------------------------------
/jenkins-global-post-script/JENKINS_HOME/jobs/demo/workspace/sample-junit.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 | java.lang.RuntimeException
103 | at tests.ATest.error(ATest.java:11)
104 |
105 |
106 |
107 | junit.framework.AssertionFailedError:
108 | at tests.ATest.fail(ATest.java:9)
109 |
110 |
111 |
112 |
114 |
115 |
116 |
--------------------------------------------------------------------------------