The release scripts rely on having an actually up to date version of
the repo being tagged or branched. Since the repos in the CI images
may have branches that have been deleted in the upstream repository,
we need to add the --prune option when we fetch any updates to cause
those branches to be removed locally.
Change-Id: I806283102be4de5ae865ca67978216a76de96a71
Related-commit: I25848275f90ec440e85765f87a23cd1413aab6cb
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Import this script from now retired openstack-infra/release-tools
repository. It is run manually at eol time to retire a branch.
Change-Id: Idcffdc5c5c540bd73ee7ee3e5be9274d693d5f1f
Use python3 when running the script to comment on launchpad tickets as
part of the release process. The depends-on patch adds the python3
version of launchpadlib via bindep.
Change-Id: I189d83462381723bb8309c248d0ace21ae6f30c1
Story: #2001691
Task: #22329
Depends-On: https://review.openstack.org/577290
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
The file module with recurse goes to the bad place when the content has
a symlink to '.'. Rather than fighting it - just use chmod -R, which
does what we want.
Change-Id: Ied4cc2a7e252db555ffdc3f1fd47edaf93b666da
The instructions for setting up the virtualenv were wrong, leading to
it being unusable. This patch fixes the setup and adds a variable to
control the location of the virtualenv, to mirror the way
ensure-sphinx and some of our other roles work.
Change-Id: I2d8d443ec1fb51d58e70ca0b7837e8ccf586513c
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Ansible 2.5 changed the default value of follow to true.
We don't want to follow symlinks here, so set follow to false directly.
Needed-By: https://review.openstack.org/551989/
Change-Id: I858f328118a301d648bef485cc606a7fd6364ada
The requirements project is very slow to actually tag branches as EOLd as
that can cause some testing environments and devstack to fail. For
example if tox.ini refers to a constraints file in git[1].
However building wheels for those releases isn't actually helpful as
they're not chnaging *and* can cause failed runs as pypi etc move on.
This change adds an regex for the closed branches to exclude them from
building. The regex is a little more complex than the single case
(newton) requires but allows for easier future additions.
[1] http://git.openstack.org/cgit/openstack/nova/tree/tox.ini?h=newton-eol#n12
Change-Id: Ia0c589989cb6e7e81e7b08e39d81dac78c55bf18
Retired repositories may not have a .gitreview file in master, so we
want to check out the tag we are given to branch from instead. There's
no point in setting up git-review if we aren't going to create the
branch, so move the setup logic after the test for the existing
branch.
Change-Id: Ie8c69a9729e5e0d470c8a9292da999e275c9611a
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
This commit adds horizon, openstack-ansible, and openstack-helm to test
project doc translation generation jobs by adding openstack-ansible
and openstack-helm to project translation job and dealing with
pot files.
Since project doc translation structure is generally divided into
multiple directories such as admin, user, install, and contributor,
it is a good idea to split into different pot files and manage as
different documents in Zanata.
Co-Authored-By: Akihiro Motoki <amotoki@gmail.com>
Co-Authored-By: Frank Kloeker <f.kloeker@telekom.de>
Change-Id: I84a65f375dbd73f52d7b5d88218f92c53b99a2e9
Implements: blueprint project-doc-translation-support
The series_status.yaml file does not contain release data so
process_release_requests.py should ignore it.
Change-Id: I661c5a10b0497fd9112daea6d4737a5d15dc8b79
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
This prevents the release tools from processing changes in the newton
branch, including re-creating newton branches that have been deleted.
Story: #2001852
Task: #14346
Change-Id: I5de04f1bbea61b00fda4d312aea77b1ea4efaa7e
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Do not explicitly return 0 at the end of the function in case set -e
doesn't work inside the function the way we expect.
Use git -C instead of a subshell.
Remove an unused variable.
Change-Id: I166563cb6e84dd5af38e11b2f69189bbf6befd0e
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
When a project is retired, the .gitreview file is removed. Without
that file, "git review -s" (run during cloning) fails, and the tag job
ends up failing.
This patch passes an assumed branch name to clone_repo.sh so that if
the stable branch for the series exists we get it. If the stable
branch does not exist, clone_repo.sh falls back to checking out
master.
Change-Id: Ib1221b5672c518eb8e3037232440807af6c90412
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
The releases playbook calls process_release_requests.sh, which
calls process_release_requests.py, which calls release.sh and
make_branch.sh as necessary.
If an error happens during release.sh or make_branch.sh, the error
is propagated back to process_release_requests.py, but that script
failed to propagate the error back to process_release_requests.sh.
This could result in the job appearing to complete successfully,
while it actually failed to do anything (whatever the reason is).
Change-Id: I10e5362e4d14cb9d787cf09f62d0b67f7dce8a03
The remaining bashate warnings was E042:
The return value of "local" is always 0; errors in subshells
used for declaration are thus hidden and will not trigger "set
-e".
Fix the few cases this triggered so that we don't get confused anymore
about the message.
Remove -v from bashate invocation, we don't need to print out all the
filenames anymore.
Change-Id: I47991a7040c8b9183bc72cce8e5d95b2cec7e6c5
Some teams are still wrapping up their newton EOL work, so we need to
let them tag releases.
Change-Id: I2b49a9cef44896aa9f147e3fbc487b15efed9590
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
The current implementation of the task is not idempotent.
That's fine in CI but when running locally it forces a cleanup
of the environment every time.
Change-Id: Ifdb573bc09ddb2d39674218e9f631e8c15f936cb
We download already on the remote system, so tell unarchive that the
content is there already and does not need to copied over.
The role currently fails since ansible tries to copy the file over from
the local host.
Change-Id: I8b879b976b19ab5672a95db35346cdea8467e726
To not install these on the images, create a new scripts directory to
hold them.
Create new copy-release-tools-scripts role to copy the files over,
we do not need using legacy-copy-project-config-scripts anymore since
everything is copied elsewhere.
Add the role to all playbooks that use release-tools scripts.
Change-Id: I36c458e297fec58023799f625739b341c4d403cf
No need to use magic names since we now have host_vars, instead set
wheel_python explicitly.
Remove TODO comment.
Change-Id: I5051a32d843b106b013b94d57fd24b63896b741a
Create new role for copying common scripts, this includes for now only
common.sh. Use this for proposal and translation jobs.
In the past we duplicated the file, this allows to have one definition
only.
Change-Id: I72c14341f511fdaa2c67a3758387afc9445869cc
We only need the three wheel-X scripts from jenkins/scripts and need
them only for the playbook and its roles. Move the scripts in the
roles directory and copy them only if needed - using the scripts module.
Remove copying of complete jenkins/script for this playbook using the
role legacy-copy-project-config-scripts, it's not needed anymore.
Change-Id: I2e481fcf7ca148aac8a36ae99d8598ba26078a25
The scripts are run from {{ ansible_user_dir }}/scripts/, so copy to
that place. In this case we do not need sudo access.
See playbooks/translation/upstream-translation.yaml for
invocation.
Change-Id: I792d991ead1217a223e3f81fe9096d6a8ba737d9
No need to install these files on all nodes. Instead copy them over only
when needed and place them together in the translation directory.
Change-Id: Iebffa4f7b5998f2e1a3ee660f1242a11abf1e3f8
The role name is misleading. It's not fetching stestr output, it's
fetching subunit output.
Add a note to the README explaining what it does and that it's not using
fetch-subunit-output on purpose.
Use "{{ zuul.project.src_dir }}" instead of
"src/{{ zuul.project.canonical_name }}".
Change-Id: I1b5ab65f9697ec184969ca7899fb40294cdb853c
It would be useful to know what zuul executor ran a job so that we can
track potential executor specific issues back to that executor via
logstash. Add the zuul executors hostname to the log processing payload
which will result in us storing it in elasticsearch.
Change-Id: Ifbd7c7f91a006bd63e3df6053297ccc36bb3240b
Improve the code as suggested during code review.
Co-Authored-By: David Moreau Simard <dmsimard@redhat.com>
Change-Id: I51a948d0ec590f9e1db2f9f60287a360bb8ca362