Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/samrocketman/jenkins-bootstrap-jervis
An automated Jenkins CI environment which provisions agent infrastructure on the fly per build.
https://github.com/samrocketman/jenkins-bootstrap-jervis
bootstrap-jenkins hacktoberfest jenkins-console jervis job-dsl provision-jenkins
Last synced: 4 days ago
JSON representation
An automated Jenkins CI environment which provisions agent infrastructure on the fly per build.
- Host: GitHub
- URL: https://github.com/samrocketman/jenkins-bootstrap-jervis
- Owner: samrocketman
- License: apache-2.0
- Created: 2015-05-21T04:28:47.000Z (over 9 years ago)
- Default Branch: main
- Last Pushed: 2023-10-31T03:42:16.000Z (about 1 year ago)
- Last Synced: 2024-04-30T09:03:56.349Z (7 months ago)
- Topics: bootstrap-jenkins, hacktoberfest, jenkins-console, jervis, job-dsl, provision-jenkins
- Language: Shell
- Homepage:
- Size: 350 KB
- Stars: 75
- Watchers: 12
- Forks: 30
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Bootstrap Jenkins using Jervis [![Build Status][travis-status]][travis]
[Jervis][jervis] generates Jenkins jobs using Travis CI YAML. This project is
meant to bootstrap Jenkins from scratch and pre-configure it to use Jervis.# Instructions
### Clone this project
This project uses a submodule. Therefore, cloning it must include also cloning
the submodule.git clone --recursive https://github.com/samrocketman/jenkins-bootstrap-jervis.git
### GitHub API key
Log into GitHub and [generate an API token][gh-token] so that Jervis can
authenticate to the GitHub API.### Provision Jenkins
Using Vagrant is the recommended way to provision. Copy
[`settings.groovy.EXAMPLE`](settings.groovy.EXAMPLE) to `settings.groovy` and
fill in the [GitHub personal access token][gh-token].export VAGRANT_JENKINS=1
vagrant up
./jervis_bootstrap.shVisit `http://localhost:8080/` to see Jenkins running with Jervis. Simply read
the Welcome page for next steps. The first example will guide you through
onboarding the [Jervis project][jervis] for CI.### Screenshot
[Jervis][jervis] built from [the `main` branch][yml-main] by this Jenkins
instance.![Screenshot Jervis matrix pipeline][jenkins-jervis-screenshot]
[Jervis][jervis] built from [the `jervis_simple` branch][yml-jervis_simple] by
this Jenkins instance.![Screenshot Jervis simple pipeline][jenkins-jervis-screenshot2]
### Webhook relay
If you wish to try out this project with webhook integration then I recommend
taking advantage of the [webhookrelay service][webhookrelay].Provision Jenkins in vagrant and then provision a relay automatically. Pro-tip:
start the relay in a `screen` session so it's easy to detach.vagrant ssh
curl -sSL https://storage.googleapis.com/webhookrelay/downloads/relay-linux-amd64 > relay && chmod +x relay && sudo mv relay /usr/local/bin
relay forward -b jervis -t internal http://localhost:8080/github-webhook/Username (token Access Key) and password (token Secret Key) comes from
[webhookrelay tokens][webhookrelay-tokens].Update the `settings.groovy` file by setting the `github_plugin` > `hookUrl`
setting to the value of the webhookrelay "input".> Example webhookrelay "input" URL:
> `https://my.webhookrelay.com/v1/webhooks/`Configure Jenkins normally and GitHub repository hooks will now be configured
with a proper webhook when jobs are generated.### License
* [Apache License 2.0](LICENSE)
* [3rd party licenses](3rd_party)[gh-token]: https://help.github.com/articles/creating-an-access-token-for-command-line-use/
[jenkins-auth]: https://wiki.jenkins-ci.org/display/JENKINS/Github+OAuth+Plugin#GithubOAuthPlugin-CallingJenkinsAPIusingGitHubPersonalAccessTokens
[jenkins-cli]: https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+CLI
[jenkins-console]: https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+Script+Console
[jenkins-jervis-screenshot2]: https://user-images.githubusercontent.com/875669/39089420-a1dcfb9e-457b-11e8-8365-0a3d39f99e5c.png
[jenkins-jervis-screenshot]: https://user-images.githubusercontent.com/875669/39089410-600abb52-457b-11e8-9598-4c0f808ed7b4.png
[jenkins-source]: https://github.com/jenkinsci/jenkins
[jervis]: https://github.com/samrocketman/jervis
[travis-status]: https://travis-ci.org/samrocketman/jenkins-bootstrap-jervis.svg
[travis]: https://travis-ci.org/samrocketman/jenkins-bootstrap-jervis
[webhookrelay-tokens]: https://my.webhookrelay.com/tokens
[webhookrelay]: https://webhookrelay.com/
[yml-jervis_simple]: https://github.com/samrocketman/jervis/blob/jervis_simple/.travis.yml
[yml-main]: https://github.com/samrocketman/jervis/blob/main/.travis.yml