Build configuration(s) closer to code; inspired by .travis.yml
- Default yaml file to define a build that runs
make test
- Preserves No State Between Builds (runs all commands over SSH in isolated virtual machines)
- The standard Unix exit code of "0" means the build passed; everything else is treated as failure.
- Specify branches to build (whitelist, blacklist)
- Secure environment variables (keys, configuration, ...)
(This could dovetail nicely into a combined project (esp. the build matrix and configuration concepts): .ci.yml
)
(Note: this is in the "flavor" of Jenkins+Github APIs, although ostensibly any VCS+hooks should be compatible)
- Job creation (identified by the existence
.jenkins.yml
) - Hook (github api) integration
- Push/PR status (see: ghprb)
- Authorized users/contributors (repo admins/teams)
- Linking the Jenkins user into the repo processes
github-webhook
+ Git plugin Service configuration- Github enterprise custom page link
- Environment vars (see: Travis CI environment)
- Notifications (configure existing methods through github API; see: Travis CI notifications)
- IRC
- webhook (ideal for pass = build package/next "build" step)
- Expose "embeddable" status information from a specific build (see: Embeddable build status) (Note: howto differentiate PR fail vs. master branch fail?)
(See: Jenkins CLI)
Template .jenkins/jobs/<job name>/config.xml
to use with CLI create-job
, update-job
(, get-job
?)
- XML template items (per job/repo)
description
displayName
...GithubProjectProperty:projectUrl
scm...GitSCM:url
browser...GithubWeb:url
- Configure Github hooks in Jenkins
$JENKINS_URL/ghprbhook
$JENKINS_URL/github-webhook
- https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+CLI
- http://ci.openstack.org/jenkins_jobs.html
- https://github.com/varnish/jenkins-yaml (http://err.no/personal/blog/2012/Sep/04)
- http://git.gitano.org.uk/personal/liw/jenkinstool.git/tree/README
- https://wiki.jenkins-ci.org/display/JENKINS/Github+pull+request+builder+plugin
- https://github.com/arangamani/jenkins_api_client
- http://arangamani.github.io/jenkins_launcher/
- (alt?) https://github.com/customink/stoplight
- https://github.com/travis-ci/travis-lint
This is a great idea!