Add retrieve task

This commit adds a pl:jenkins:retrieve task for retrieving packages that
jenkins has built from the distribution server.
Add uber workflow for jenkins

This commit adds tasks for building all the things with jenkins and signing
them with the soon-to-be jenkins sign_all task.
Make no tarball not an exit failure on sign

With the advent of signing remotely of all the things, we need it to not be an
error if the tarball doesn't exist. There's no reason for it to fail anyway, so
we might as well just not sign if if its not there.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Add task for signing packages after they've been staged

This is a piece of the jenkins chain. This task allows us to take locally
staged packages and ship them to the distribution server (known to have tools
for all kinds of signing), sign them, and bring them back. The twist is, we
don't want to duplicate all the hacky logic already in the packaging repo to
do this, so we send the packaging repo along with it, via the remote
bootstrap workflow already used in the remote tasks. Signed packages are
then retrieved and ready to go. This is actually an unfortunate duplication of
the logic of pl:remote, but it is necessary because we have to deviate
from that workflow because we're handling files that aren't in git - everything
under pkg.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Remove test for root in building apple packages, use sudos

We should call 'sudo' to do everything we need sudo for, so checking that we're
running as root is not necessary, as it makes generic automation incredibly
difficult. This commit updates the script to do so. It also removes a strange
recursive chmod to 755 of the entire pkg directory. I'm fairly certain we don't
want to do this. Given the strange behavior we've experienced with apple
packaging, packages have been built and fdiffed before and after this commit to
ensure they are identical.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Add pl: and pe:tar aliases for jenkins automation
Check for build property pe version, not env var

This way when we build from a params file, we're not uselessly checking for an
environment variable we swore we'd never send again on a remote task.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Pull logic out and abstract for PE builds
Add sles to build types
Add checks for pe_version
Add more documentation to the Jenkins file

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Add a utility method for posting via curl
Fix json string and use util method in jenkins.rake
Add a jenkins ship to ship to distribution server
Fix up script documentation
ship to 'shipped' on distribution server during final ship tasks
Add an rpm_repos.rake for creating rpm repos on distribution server
Add deb_repos.rake, which sets up debian repos for us

This commit adds the automatic creation of debian repositories for the jenkins
build artifacts on the distribution server under the standard location
/opt/jenkins-builds/$project/$sha/repos/deb" where $sha is the git commit sha
of HEAD. With this commit creating the repositories also automatically creates
apt source config files for each packaged distribution, for use later in
acceptance testing, etc.
Add jenkins ship to PE ship