Ken Dreyer [Mon, 17 Nov 2014 21:42:36 +0000 (14:42 -0700)]
ceph-deploy-pull-requests: add Travis to admins list
Travis is a co-maintainer of ceph-deploy; add him to the list of
administrators for the GitHub Pull Requests plugin. Jenkins will trust
any pull requests from Travis and build them automatically.
(I don't know why Jenkins wasn't already trusting Travis since he's a
member of the Ceph organization.)
Ken Dreyer [Fri, 14 Nov 2014 15:13:40 +0000 (08:13 -0700)]
jjb: increase precision of job searches
The "for `ls .` ... -d subdirectory" logic was examining every entry at
the top-level of the workspace, both files and directories. The files
entries were useless since they would never contain subdirectories.
Use "find" instead to only locate directories at the top level.
The purpose of this change is to make the verbose output (with set -x)
easier to read, and make it easier to spot errors in the future.
Ken Dreyer [Fri, 14 Nov 2014 14:27:53 +0000 (07:27 -0700)]
jjb: be verbose and fail early on errors
Prior to this commit, if the "job-builder update" command failed,
Jenkins would still consider the overall job to have succeeded, because
the jjb/config/config script was exiting with a zero exit code. (This
was because the for/ls loop were the final commands to run, and they
were exiting with zero.)
When I modified the Jenkins UID as a part of the overall Jenkins
authentication changes yesterday, the "job-builder update" command no
longer worked, because the password in jenkins_builder.ini was no longer
valid. However, Jenkins still considered the jjb job to be passing, as
explained above.
Tell bash to be verbose about the commands it runs ("set -x") and fail
early if there are any problems ("set -e").
With this change, if there is a problem with "job-builder update" or any
other command in the script, the job will fail right away and Jenkins
will bring it to our attention sooner.
Dan Mick [Wed, 13 Aug 2014 01:23:15 +0000 (18:23 -0700)]
build-rpms.sh: copy "*.patch" from topdir into SOURCES
This allows patches to be applied when building the RPMs; the addition
of the ceph patch to disable /etc/init.d/ceph from autostarting Ceph
daemons leads to the desire for a .patch file, conditionally applied
by the .spec. See the Ceph sources.
Ken Dreyer [Mon, 10 Mar 2014 23:33:23 +0000 (17:33 -0600)]
jenkins: optionally skip Debian package diffs
The Debian package diffs are present when we do a real release, but
they're not present during the continuous integration
"ceph-setup-nightly" Jenkins task.
Skip moving the files if they're not present.
Signed-off-by: Ken Dreyer <ken.dreyer@inktank.com>
Ken Dreyer [Tue, 25 Feb 2014 04:20:46 +0000 (04:20 +0000)]
sign_and_index_rpm_repo: speed up createrepo indexing
Run "createrepo" with the --update and --checkts options. This allows
createrepo to skip a lot of the metadata generation. With thousands of released
RPMs on ceph.com, every bit helps.
Signed-off-by: Ken Dreyer <ken.dreyer@inktank.com>
Ken Dreyer [Fri, 21 Feb 2014 18:13:17 +0000 (11:13 -0700)]
jenkins: show errors and fail fast during job execution
Jenkins will dynamically write the commands in its database into a
script and run it with "-x" and "-e" in order to display each step and
fail after the first step fails.
Now that our commands are stored in Git, ensure that we're doing the
same thing.
Signed-off-by: Ken Dreyer <ken.dreyer@inktank.com>
Ken Dreyer [Thu, 16 Jan 2014 04:45:30 +0000 (21:45 -0700)]
release_tarball: select the "v" tags for cephver
By default, Jenkins' Git plugin adds its own tag to the repository. This
interferes with the versioning in release_tarball.sh
One solution would be to disable the tag in the Jenkins job. Since this
is not the default, that tag creation option would need to be manually
disabled for every job in Jenkins that runs this script. The other
option is to make the script more selective about what it considers to
be cephver. This commit implements this option.
Use a --match selector to "git describe" so that we're sure we're using
the standard "vX.X" tags.
Pipe "git describe" through "sed" instead of "cut", so that it's easier
to debug what tag was selected.
Signed-off-by: Ken Dreyer <ken.dreyer@inktank.com>
Ken Dreyer [Tue, 14 Jan 2014 17:18:39 +0000 (10:18 -0700)]
jenkins: use in-tree clone for the ceph-build repo
Historically we have had a single system-wide clone of the ceph-build
repository on each builder, at /srv/ceph-build.
The disadvantage to this configuration is that there is no way to ensure
that each of these clones are up to date. When we make changes to the
ceph-build repository on GitHub, we have to manually pull the changes
into each builder's local clone at /srv.
Going forward, we will use the Multi-SCM plugin to Jenkins to make the
ceph-setup Jenkins job use an up-to-date clone of the ceph-build
repository. This will ensure that Jenkins is using the very latest code
from ceph-build.
The ceph-build repository will be cloned into the root of the tree.
Remove the references to /srv/ceph-build and just use the relative path,
"ceph-build".
Ken Dreyer [Tue, 14 Jan 2014 03:29:06 +0000 (20:29 -0700)]
jenkins: support autobuild key or release key
We need Jenkins to build ceph more often so we can have more testing,
but we don't want to sign these "unofficial" builds with the official
release key.
Conditionally select the release key or the autobuild key based upon the
$RELEASE environment variable. Jenkins will set this variable using a
parameter when it runs each ceph build. For formal releases, we will set
the parameter to "true".
Signed-off-by: Ken Dreyer <ken.dreyer@inktank.com>