Background: during a cycle, we deploy OpenStack on centos7 from trunk
using RDO repositories, automatically built at each commit in OpenStack.
Currently, Puppet OpenStack CI manually promotes
puppet-openstack-integration every week, to latest URL. We would like to
automate this process with a daily periodic job so every day we would
have a promotion and we could detect which commit in OpenStack would
break our CI, and we could work on it quicker than usual, because
feedback would be daily.
This patch adds a periodic job, called
"propose-puppet-openstack-rdo-promote" that will execute
jenkins/scripts/propose_rdo_promote.sh script. The script has been
tested and already used manually.
Change-Id: I9b19a440325f609746a197676d3799aa0f60ce66
In Puppet OpenStack CI, we use r10k to clone Puppet OpenStack modules
and all their dependencies from different places.
The Puppetfile is useful for both unit and functional tests, so we have
a consistency in what we test.
Until now, we were managing this Puppetfile without automation.
From time to time, we were updating the file but it does not scale,
regarding the work that needs to be done and the amount of dependencies
that never stop to grow up.
We recently implemented a script that is called
generate_puppetfile.sh (see dependency). This script aims to generate a
Puppetfile by cloning OpenStack & External modules.
The script will fetch tags and take the most recent one.
The script works as it is now, please look:
https://review.openstack.org/300696
And the Puppetfile that is generated.
This patch is an attempt to automate the run of this script, by using
the periodic job that is already in place for many other projects.
More features will come in next iterations:
* support stable branches
* add more logic in the script to detect whether or not tags exist (all
our current modules have tags, but we never know...)
Change-Id: Id23ba86487d2223861b21941fa04acac0d49e3f3
We should use ZUUL_REFNAME instead of ZUUL_REF.
Change propose_update.sh to use REFNAME. Since propose_update.sh is
deployed at different time than the JJB update, let's pass both
variables for now and cleanup once new images are generated.
Change-Id: I8d77840d4d745b4df787e9f8d572ef10b3902b82
This is intended to obviate I72e769e5479f651673ef24b4ee20f92b12049f74
Change-Id: Ifef7573acb00ad5fb03859f737f4cb96043392f2
Depends-On: Ia04ab72900c8efd5d5289fbd7632201dcaa3e5d9
Use function setup_commit_message everywhere to avoid duplication of
these lines.
Also, document the side effects of the function in the invocation.
Change-Id: I3b77a232467b536b62b5c61d30705deeb11e725e
Since I93465255c27fb2079915c7b3cd9170bfc40b8c35 when the predecessor
of our current propose_update.sh was introduced, this script has
always cloned all our repos directly from Gerrit over SSH. This is
bad for performance of the job and Gerrit both. Instead clone from
our git server farm (using zuul-cloner would be nice, but there is
no git cache maintained on proposal.slave.openstack.org so we should
improve this in a follow up change).
Change-Id: Ic4adb2e59330ccb8e922b9c0cca59cde162eedf4
We don't constrain source code checkers since various repos are
compliant with different versions. Use the new -b/--blacklist option
to generate-constraints so that they're skipped.
Change-Id: Ibff24e72281f673904feeceac32372ee6f0d3677
Depends-On: I11eb0d762869ad8920795fb710f1b2eeb9354f12
The propose-requirements-updates was failing since we essentially call
virtualenv `mktemp` - but mktemp creates a file and virtualenv expects a
directory.
Add -d to mktemp invocation to create a directory.
Change-Id: I358bd2c42d698de4d7863ac08318d46a4524e32b
When proposing updates, the parameter passed to the update function
is the name of the subdirectory where the project to be updated can
be found, so the global-requirements.txt is relative to the
requirements repo workspace. Also when passing it to the
generate-constraints entrypoint, do so with the -r parameter rather
than as a positional argument (since the latter does not work).
Change-Id: I22acc4598dda92a60b47d34a7986a117197f8626
The requirements update.py script is growing its own dependencies so
we need to install it into a virtualenv and run it from there. Also,
go ahead and switch to invoking its entrypoint since it'll be
installed for us now. Also run the generate-constraints entrypoint
from a virtualenv similarly.
Change-Id: I16e967356d5c56f1474ee661b954b3db11a608cb
Cleanup every use of `` for subshells in the jenkins/scripts
directory, replacing them with $(), and finally making the
scripts consistent.
Change-Id: Id3e45fb873c1ebeae6ab63a0caa4c427a7ccbb62
Using the construct of x$var != x is unnecessary, and has been
unnecessary for quite some time. We trust our shell, so switch to
using test -n.
Change-Id: I8eea943e5b641ba3d8781212877da7ddec167a6c
In propose_update, we were pushing the shell's set -e functionality
out of the way, so we could use a if block to check the return value.
We only care if the command exits non-zero, so we can do it in an if
directly.
Change-Id: I196751e79aee24e96a854fec4a51b4756c96047f
There are a number of calls to git config in the slave scripts are
all the same, and we should use a shell function to not repeat
ourselves.
Change-Id: Ib2fa3d5ca12d5d08e2d21a734fea13aa9848b19e
This change adds a check to propose_update.sh,
avoiding it to go into fatal error when a project
fails to clone.
Just report the incident and move onto the next
project.
Change-Id: Ib22403f1bd27070b8121a9d79bb95cae409dbe7d
During the RC period for a project, there may already be a stable
branch for the release on the triggering project and a proposed
branch on the target project. If so, we want stable changes proposed
to the proposed branch. That's not confusing!
Change-Id: I488bb9ff63daf9d012e41dbaa178b1656eaeffad
This repo was created from filter branching the openstack-infra/
config repo. This process brought a lot of cruft with it in the
form of directories that we no longer need. This patch removes
that cruft so we begin with a tidier repo.
Change-Id: Ibffad1b11c0c5f84eedfb0365369f60c4961a0f3