David Galloway [Wed, 11 Nov 2020 19:35:17 +0000 (14:35 -0500)]
ceph-dev*build: Pull centos images from our registry mirror
Since docker started rate limiting on Nov2, we've often seen errors that we hit our `pull` limit. This should greatly reduce the number of times we're going to docker.io. Only ephemeral builders would pull from docker.io once this is merged and those builders' IP changes when they're spun up.
Signed-off-by: David Galloway <dgallowa@redhat.com>
ceph-dev-*-build: reset CI_CONTAINER when building octopus for el7
because the consumers of ceph container images are referencing the
required images using
"${CONTAINER_REPO_HOSTNAME}/${CONTAINER_REPO_ORGANIZATION}/ceph:${SHA1}".
see ceph-container/contrib/build-push-ceph-container-imgs.sh.
but in a recent change, we push both the images built for el7 and for
el8 with the same tag. and the last one wins. this breaks the tests
which expect the cephadm and other tools included in an image built for
el8. but these tools are not included by el7 because of the missing
dependencies.
so we have at least two options
- stop building octopus+el7 container images
- use a different tag for octopus+el7 to avoid the racing and name collision.
before the 2nd change lands on ceph-container, we should have the 1st
one in ceph-build to unblock the builds of octopus.
Dimitri Savineau [Wed, 21 Oct 2020 19:12:12 +0000 (15:12 -0400)]
ceph-container-lint: use --rm docker option
The container lint job, which run shellcheck in a docker container,
doesn't use the --rm docker option so the container aren't removed
after their execution.
Kefu Chai [Fri, 16 Oct 2020 08:26:06 +0000 (16:26 +0800)]
ceph-pr-commits: use origin/master as the base commit
instead of using `${sha1}^1...${sha1}^2` use
`origin/master...origin/pr/${ghprbPullId}/head` for getting the range of
commits introduced by a PR. as per `man git-diff`
> "git diff A...B" is equivalent to "git diff $(git-merge-base A B) B".
and `origin/${ghprbTargetBranch}` and `origin/pr/${ghprbPullId}/head` are fetched by
the ghprb-plugin plugin, so it's safe to use them. see
https://plugins.jenkins.io/ghprb/
Kefu Chai [Tue, 6 Oct 2020 15:13:41 +0000 (23:13 +0800)]
ceph-pr-commits: add "code_test" for test_signed_off_by() test
this test should only apply to changes which modifies code. for the doc
only changes, we should skip this test for lowering the bar for
contributors willing to improve the document.
David Galloway [Mon, 5 Oct 2020 14:35:27 +0000 (10:35 -0400)]
ceph-pr-commits: Allow empty junit results
report.xml wasn't getting written for docs-only changes because the job `exit 0`s. The junit plugin was failing the build in those instances but we don't need or want it to.
Signed-off-by: David Galloway <dgallowa@redhat.com>
Dan Mick [Tue, 29 Sep 2020 08:29:14 +0000 (08:29 +0000)]
ceph-dev, ceph-dev-new: copy branch artifact too for short name
BRANCH is set by the github plugin to, say, origin/master. The
-setup jobs change that back to just 'master', so, copy their
saved env-setting artifact 'branch' as well so the parent job
can also use the short branch name in its build name.
Dan Mick [Tue, 29 Sep 2020 04:09:49 +0000 (04:09 +0000)]
ceph-dev, ceph-dev-new: copyartifact permission: no spaces
I don't see why from examining the plugin source, but it appears
that if you use both a comma and a space, the second entry will not
be found (as though the space is becoming part of the string for
comparison inside the plugin). Stopping fighting and just letting it happen.
Dan Mick [Fri, 25 Sep 2020 08:04:51 +0000 (08:04 +0000)]
Fix intermittent error with last copyartifacts change
Apparently, sometimes, Jenkins can't find a toplevel job by "name", and
one must specify an "absolute path" to the job by prefixing "/". This
was causing ceph-dev builds to fail to find ceph-dev-setup, but changing
to /ceph-dev-setup fixed the failure-to-find. It didn't affect ceph-dev-new.
I've no idea why it affected one and not the other.
Dan Mick [Thu, 24 Sep 2020 17:26:07 +0000 (17:26 +0000)]
Grab SHA1 into parent job's environment for human or program
The Ceph SHA1 is divined by the -setup job, and not available in the
parent job. That's easily fixed by the same method it's passed to the
-build job: grab the file artifact and use it to inject SHA1 into the
environment. This means the parent job can show the SHA1 in its build
label for humans, and can also be searched by Jenkins API calls.
Currently the curl command is returning all tags matching the ceph
release so the variable contains multiple values.
We only need to have the latest one.
David Galloway [Tue, 15 Sep 2020 14:30:23 +0000 (10:30 -0400)]
ansible: Pass API key to slave.jar as file
vstart_runner.py runs 'ps ww' for the jenkins-build user. This exposes the API key by showing the java.jar process in Jenkins logs. If we pass the credentials as a file, there's less of a chance of it getting exposed.
Signed-off-by: David Galloway <dgallowa@redhat.com>
David Galloway [Tue, 8 Sep 2020 13:56:43 +0000 (09:56 -0400)]
ansible: Start libvirt services on slave spinup
I accidentally left these out when I combined all the slave playbooks. It wasn't caught till now because I hadn't actually pulled the latest ceph-build.git on prado
Signed-off-by: David Galloway <dgallowa@redhat.com>
The gcc version requirement was raised to 4.9 in kernel 4.8. centos7
is on gcc 4.8 and these builds have been failing for the last couple of
months.
While we could switch to devtoolset-7 or devtoolset-8, both of which
are installed on our centos7 build agents, let's just drop them. For
one-off testing of older releases, trusty and xenial would do.
David Galloway [Thu, 3 Sep 2020 17:02:11 +0000 (13:02 -0400)]
ceph*setup: Abbreviate the tag
I don't know what changed or when but `git describe` started returning a longer string. Our tooling relies on there only being 8 characters in the last portion of the version so we need to keep naming our packages that way.
Signed-off-by: David Galloway <dgallowa@redhat.com>