All Projects → tomwillfixit → jenkinz

tomwillfixit / jenkinz

Licence: other
JenkinZero (jenkinz) is a zero configuration Jenkinsfile validation tool.

Programming Languages

shell
77523 projects
Dockerfile
14818 projects
groovy
2714 projects
Makefile
30231 projects

Projects that are alternatives of or similar to jenkinz

learn-ansible-and-jenkins-in-30-days
Ansible + Jenkins in 30 days tutorial.
Stars: ✭ 35 (+169.23%)
Mutual labels:  jenkinsfile, jenkins-pipeline
jenkins-pipeline-shared-library-template
Project template for developing shared Jenkins pipeline libraries.
Stars: ✭ 46 (+253.85%)
Mutual labels:  jenkinsfile, jenkins-pipeline
openshift-wiki
Gitbook URL of WIKI
Stars: ✭ 16 (+23.08%)
Mutual labels:  jenkinsfile, jenkins-pipeline
jenkins-blue
Quickly provision jenkins blue ocean on kubernetes with persistent configuration
Stars: ✭ 20 (+53.85%)
Mutual labels:  jenkinsfile, jenkins-pipeline
fire-cloud
基于Spring Cloud的微服务业务框架
Stars: ✭ 16 (+23.08%)
Mutual labels:  jenkinsfile, jenkins-pipeline
eryajf.github.io
📝 大千世界,何其茫茫。谨此笔记,记录过往。凭君阅览,小站洛荒。如能收益,莫大奢望
Stars: ✭ 159 (+1123.08%)
Mutual labels:  jenkinsfile, jenkins-pipeline
CI-CD-Docker
No description or website provided.
Stars: ✭ 21 (+61.54%)
Mutual labels:  jenkinsfile, jenkins-pipeline
slackbridge
Bridge between IRC and Slack running on Kubernetes
Stars: ✭ 12 (-7.69%)
Mutual labels:  jenkinsfile
jenkins-android-sample
这是一个使用 jenkinsfile 构建 Android APK 的示例项目。
Stars: ✭ 15 (+15.38%)
Mutual labels:  jenkinsfile
jenkinsexample
Jenkins example setup discussed on thoughts-on-cpp
Stars: ✭ 18 (+38.46%)
Mutual labels:  jenkinsfile
jenkins-pipeline
Jenkins Pipeline Shared Library
Stars: ✭ 16 (+23.08%)
Mutual labels:  jenkins-pipeline
jenkinsfile cookbook pipeline
Example Jenkinsfile and Explaination for Chef Cookbook Development
Stars: ✭ 36 (+176.92%)
Mutual labels:  jenkins-pipeline
pipeline-maven-plugin
Pipeline Maven Plugin
Stars: ✭ 50 (+284.62%)
Mutual labels:  jenkins-pipeline
soccer-stats
Soccer Stats is an example application to be used as a proof of concept for a presentation at Ansible Meetup in São Paulo
Stars: ✭ 83 (+538.46%)
Mutual labels:  jenkins-pipeline
pipeline-library
Shared libraries for Jenkinsfiles with unit tests
Stars: ✭ 22 (+69.23%)
Mutual labels:  jenkins-pipeline
ocflib
Python libraries for account and server management
Stars: ✭ 13 (+0%)
Mutual labels:  jenkinsfile
ods-jenkins-shared-library
Shared Jenkins library which all ODS projects & components use - provisioning, SonarQube code scanning, Nexus publishing, OpenShift template based deployments and repository orchestration
Stars: ✭ 51 (+292.31%)
Mutual labels:  jenkins-pipeline
config-driven-pipeline-plugin
Reuse Jenkinsfiles across repositories and hydrate commands and settings with config from each repository
Stars: ✭ 23 (+76.92%)
Mutual labels:  jenkins-pipeline
jenkins-pipeline-global-library-chefci
Jenkins Pipeline's "Workflow Global Libs" for Chef CI
Stars: ✭ 60 (+361.54%)
Mutual labels:  jenkins-pipeline
pipeline-lib
Global shared library for Glia pipeline jobs
Stars: ✭ 68 (+423.08%)
Mutual labels:  jenkins-pipeline

jenkinz

What is JenkinZero ?

It's a zero configuration jenkins master and build agent running using "Docker in Docker". This code is based on the work of Maxfield Stewart from Riot Games : https://github.com/maxfields2000/dockerjenkins_tutorial and was written in my free time. Feel free to fork it, submit PRs etc.

How do I use JenkinZero ?

It's simple to use but has some strict requirements.

1 : You must have docker and docker-compose installed.

2 : The build steps inside the Jenkinsfile provided must be 100% containerized.

3 : Currently only runs on a linux host. Windows (cygwin) support may happen in future.

Usage

Step 1 :

Check out this repository and check out your own repository (which includes your Jenkinsfile) into this repository.

If your repository is called "my_app" then the directory structure should look like :

jenkinz/my_app

For convenience there is a repository called "demo" which contains a working CI pipeline.

Step 2 :

Source the ./jenkinz.sh script.

. ./jenkinz.sh

or

source ./jenkinz.sh

This will make the jenkinz commands available in your shell.

Run : jenkinz usage

Step 3 :

Let's run some builds. Build logs are stored in the build-logs directory and an example log can be found here.

Run a single build (uses default Jenkinsfile in top level of the demo repository) :

jenkinz --repository demo 

Run a single build using a Jenkinsfile with a different name :

jenkinz --repository demo -f Jenkinsfile.build_only 

Run 5 builds using a Jenkinsfile with a different name :

jenkinz --repository demo -f Jenkinsfile.build_only -b 5

Run 5 builds (uses default Jenkinsfile in top level of the demo repository) :

jenkinz --repository demo -b 5 

Run a "quickcheck" build to ensure the master and agent start correctly and the pipeline project is created :

jenkinz -r demo -f Jenkinsfile.quickcheck

Chaos (Experimental) :

The following command will use the default chaos.cb file to simulate a Jenkins Master restart and a network flap.

jenkinz -r demo -b 5 --chaos

Run builds against a specific version of Jenkins (Only supports Alpine based images)

Get a list of available Alpine based images in Docker Hub :

jenkinz list-tags

Example Output : 

jenkinsci/jenkins:2.121-alpine
jenkinsci/jenkins:2.107.3-alpine
jenkinsci/jenkins:2.120-alpine
jenkinsci/jenkins:2.119-alpine
jenkinsci/jenkins:2.118-alpine
jenkinsci/jenkins:2.117-alpine


Run a build against a specific version :

jenkinz --image jenkinsci/jenkins:2.107.3-alpine --repository demo

Run a build using a specific plugin version and specific version of Jenkins

Firstly, update the version of plugin you want to use in the plugins.list file. Secondly, specify the version of jenkins using the --image option.

For example :

jenkinz --image jenkinsci/jenkins:2.107.3-alpine --repository demo

Cleanup

Stop jenkinz :

jenkinz stop

Remove jenkinz :

jenkinz clean

Summary

The majority of this code was taken from other repositories and glued together with some bash. Feel free to submit PRs or fork if you find this useful.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].