projector
projector
manages the code repositories and build tasks that get your code into production.
Recipes
projector::pipeline
The pipeline
recipe iterates through items in a databag and constructs a pipeline to build and deploy a software project. The pipeline includes one projector_repository
resource and one or more projector_job
resources. The repository is configured to send to a queue when new code is pushed. The first job listens on the queue and triggers a build for each push. Any other jobs in the pipeline are triggered automatically as each preceding job completes successfully.
Resources
projector_repository
attribute | type | description |
---|---|---|
org | string | Github organization |
Data
projector
projects are defined in simple maps. The following keys are supported:
key | type | default | description |
---|---|---|---|
id | string | none | name of the project |
description | string | optional | short description of the project |
org | string | none | Github organzation that owns the project repository |
targets | [string] | [‘build’] | Jenkins pipeline phases |
command | string | ‘make’ | Jenkins job command |
code
key | type | default | description |
---|---|---|---|
provider | string | github | code repository provider |
api | URL | https://api.github.com/v3 | API URL |
org | string | none | repository organization |
user | string | none | repository owner |
hooks | hash | optional |
Either org
or user
must be specified, but not both.
build
key | type | default | description |
---|---|---|---|
Resources
projector_pipeline
A pipeline is the path your code follows from git commit
to production.
projector_repository
A repository stores and versions your code. projector
manages the repository and configures hooks to trigger builds when your code changes.
projector_job
A job builds or deploys your code. Jobs are organized in a pipeline, where artifacts are promoted from one phase to the next. In each phase, the phase name (target
) is passed to an executable when your job is run.
attribute | type | default |
---|---|---|
description | string | - |
command | string | ‘make’ |
target | string | ‘build’ |
owner | string | ‘projector’ |
group | string | ‘projector’ |
template | string | ‘config.xml.erb’ |
variables | Hash | - |
cookbook | string | caller |
url | string | node.jenkins.server.url |
repository | string | - |
branch | string | ‘master’ |