If you specify a CUSTOM_PROJECTS_LIST_URL that doesn't exist you get a
message but the script continues. Since you clearly meant to specify
something we should bail so the user can correct the problem.
Additionally, add some documentation to the build-image.sh script to
describe how to use this to cut down build times considerably for
initial testing purposes.
Change-Id: I02d1cd341f793471b1ad4374e98031ea53db7f49
This came up in I79ced2532d03701f50afc9d2a6e4a6e533e8228a. I don't
think it's actually a problem as the value is stripped. Certainly the
zuul config-parser doesn't trip up on it. So it's just for
consistency.
This found the entries fixed up in in zuul/layout.yaml
Change-Id: I76abb096426e24683fe8316c2f8e2d7a796dd96e
As per OpenStack licensing guide lines [1]:
[H102 H103] Newly contributed Source Code should be licensed under
the Apache 2.0 license.
[H104] Files with no code shouldn't contain any license header nor
comments, and must be left completely empty.
[1] http://docs.openstack.org/developer/hacking/#openstack-licensing
Change-Id: Iabfc781800f080b8235a2d812d16bdb3ee57067a
We currently re-run all the grub setup in 99-fix-grub-timeout which
shouldn't really be necessary (actually a little problematic; although
this is dib's fault, see Ibaaa81124098f3c6febe48e455d3e1cd0a5f1761)
Use the new timeout flag to set this in the bootloader element
directly.
I think it is also an advantage that if you build a testing image with
./tools/build_image.sh this is configurable now ... having to fiddle
the bootloader for debugging is something that happens more than you'd
like.
This is supported since dib 1.26.0
Change-Id: Iafc660a9a8c072af6bf1fd5e51c419abccef4d54
Mainly I always forget to set the nameservers; the corporate firewall
disallows outbound DNS queries so this breaks image build after the
values are written into /etc/resolv.conf
Update with a few other options & clarifications too. All should be
self-explanatory.
Change-Id: I359f10f2d80cbc8997580870cf3de88903c5f507
gerritbot can now handle more than 120 channels, remove the test for it.
Change-Id: If6d1630581762aab93c979ba7852f845bc2846f5
Depends-On: Ifafeed77e640bc7b5910251c619358a8a2bd78a6
We're using now 'run-tox' as builder for tox instead of the previous
'tox' one. Add a check so that new changes do not introduce 'tox'
builder again.
Change-Id: I5fe91898807206b87901f8b3cefa6bc4c52ff52e
Publisher are required for almost every job and it's very easy to forget
to specify them and get a job that cannot be debugged. If publishers are
not required for a job, one should explicitely specify empty list of
publishers as I did here for test job and for rtfd hook.
Change-Id: I7c4923910b0e139ca3831b6450b0fbb82b618b64
Enhance jenkins-projects-checks.py so that node entries are required.
This needs a fix for jenkins/jobs/misc.yaml where a job was used without
node.
This would have caught the missing node entry for fuel-ccp-validator:
Failure: required key not provided @ data['node']
Failure in file jenkins/jobs/fuel-ccp.yaml
Failure parsing item:
OrderedDict([('job', OrderedDict([('name', 'gate-fuel-ccp-validate'),
('builders', ['revoke-sudo', 'clone-fuel-ccp', OrderedDict([('shell',
'#!/bin/bash -xe\ncd "$WORKSPACE/fuel-ccp/tools/gate"\n./run.sh\n')])]),
('publishers', ['console-log'])]))])
Change-Id: I77c34d104d7fe47e6dd47ec7ac64721c5fe738a7
Add a new script to build release notes including translation,
we will run this script as part of each release notes build.
The new script will build releasenotes and all translations for them.
It checks for available translations and only builds for these.
The translated releasenotes are published in-tree, so for
trove-dashboard this would publish:
/releasenotes/trove-dashboard # Original untranslated content
/releasenotes/trove-dashboard/ja/ # Japanese translation
/releasenotes/trove-dashboard/ko_KR/ # Korean translation
The index file gets automatically enhanced to include
links to the translated releasenotes.
A preview of the generated release notes are at:
http://users.suse.com/~aj/horizon-releasenotes/http://users.suse.com/~aj/trove-dashboard-releasenotes/
Include the file directly in JJB so that it can be changed anytime.
For details, see:
http://docs.openstack.org/infra/jenkins-job-builder/definition.html#module-jenkins_jobs.local_yaml
This needs a change for jenkins-projects-checks.py: The yaml is now an
extented yaml, use the JJB yaml loader to parse it.
For now, use a separate job gate-{name}-i18n-releasenotes-nv and add it
only to horizon and openstack-manuals so that we can evaluate that this
works as expected. A followup will add this for all jobs and the
publishing as well.
Co-Authored-By: Akihiro Motoki <amotoki@gmail.com>
Change-Id: Ic64d571a91bc1bd292d45c0f6ba1a67bfee75997
This removes the compare-xml jobs from both the project-config
and the jenkins-job-builder projects. The JJB configuration in
project-config is beginning to include custom JJB components
which are supported only in Zuul v2.5.
For the project-config directory, we install a custom JJB module
to support these extensions and run JJB to validate that we have
a good configuration.
It would be possible to do the same for changes to JJB, but
considering that we are beginning to use custom components while
pinning to a released version of JJB (rather than master), it
seems like the project-config corpus of jobs may be less relevant
now, so perhaps now is a good time to stop.
Change-Id: I7c96b866663ce497b566a20f55c4c715b13c3723
This adds a JJB module that validates the parameters we use for
the afs publisher. This publisher is not an actual Jenkins
publisher and only exists in Zuul v2.5's ansible launcher. Thus,
it has no XML output and is defined locally in this repo.
This also removes the run-layout script (which used to clone HEAD
of both jjb and zuul) in favor of installing these dependencies
via pip in the tox testenv. We are no longer tracking JJB master,
so pinning to the version of JJB we are using makes more sense.
Similary, it is not expected that we will need cutting edge
versions of zuul for this test in the immediate future (we may
want to revisit this when we approach zuulv3).
Change-Id: I4acd70c868cb6965d39f968b7582257b4ab21778
Check changes to the upstream URL for a repo that has option
track-upstream. The check currently is just cloning of the repository.
Since we currently have over 580 repos with track upstream, this check
compares the previous version of the file with the current one and only
tests for changed entries.
Change-Id: Ic716c685512ebe660876388d663314bf3b008b66
Add a layout check to find projects added to gerrit but not zuul, and
vice versa.
We can ignore gerrit projects with a read-only state since they are not
under active development. We can also ignore the z/tempest zuul pipeline
since it is a meta-pipeline not tied to a specific project.
Change-Id: I1da184ecc0268689081c1795b8ee741b41d80d45
For tools/check_valid_gerrit_projects.py:
* Improve one error message to mention the project as well.
For tools/check_valid_gerrit_config.sh:
* Remove output for each ACL we check, we output the entry if it's
wrong. But with 800+ ACL lines, we should not output 800+ lines of
progress and thus make it hard to find the one failing line.
Change-Id: I4434c0f0bf65a1eb69889a2362c1abae7119fdd7
Remove redundant group entries and add a check so that they cannot get
in again.
Remove some unneeded quotation signs in descriptions.
This is just a cleanup, it should not have any functional differences in
projects.yaml itself.
Change-Id: I49ff9438ab43612704ab61ff84d16c4432f0bc2a
Original file causes jenkins-project to fail in python 3 with the
following error at L158 and L172:
SyntaxError: missing parenthesis in call to 'print'
This patch fixes those syntax errors so jenkins-project will not fail
in python 3
Change-Id: I04ad04ac7f418effe01971253c4ea2368fcc4188
This check ensures jobs are not defined without attributes in the jobs
section of Zuul layout.yaml
Change-Id: Id81d2272b0a0c4546197e2ab0f992f46a259de77
We have added and moved elements around and that needs to be reflected
in tools/build-image.sh so that local image builds result in functional
images.
Change-Id: Iaba5eac8ff65b10d608c7d5aa84f083ee00a8319
Add check for valid keys to find obvious typos in keys.
Fix the one error found in openstack.config.
Change-Id: I6a2af22db0b9425372e66dca93498a33a07275e9
Capitalize ERROR for all project-config specific tests, so
that errors can found easily.
Add missing ERROR marks.
Change-Id: I1d7e1077de62945647e0329462016a34eaabd83e
We want to check if console-log is used as a publisher, it is the last
publisher defined. This is for zuulv25 specifically as we also use the
console-log publisher to upload our zuul-launcher logs.
Change-Id: I1c987158be13f90e382fcaec8c7d133ed595e177
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
Update our testing to only check upstream if we haven't imported the
repo into openstack. This will address test failues when users
deleted the upstream repo before removing it from
gerrit/projects.yaml.
Change-Id: I6bd9fe9841dee8be352ed17af44b4cf9cea397fd
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
Here we fully remove node-devstack from nodepool. I've changed
refrences to it to be cache-devstack as that is the only function the
now defunct node-devstack element was providing. I did not do this to
openstack-repos as it has already moved to the prepare-node element.
Change-Id: I1dacd9e1af5ebb6056998f6f2705317eddc87714
Signed-off-by: Matthew Thode <mthode@mthode.org>
When importing projects, check that they do not contain a simple
"stable" branch as that will block creation of "stable/RELEASE" branches
like "stable/mitaka".
Similar for "feature".
Change-Id: Ia190fdbddf9029149b54e686aa0e82fe040b6733
Create three new checks for zuul/layout.yaml:
* Ensure every project has a check job
* Ensure every project has a gate job
* Ensure that no check or gate pipeline mixes noop jobs with real jobs
vinz-webclient did not have any gate jobs defined, so add noop to its
gate pipeline.
Change-Id: I5935cfbb0e99270af22ca144382b35f6a1b08fee
Check the following common problems with gerrit ACL lines:
* Wrong path
* Non-existence of a referenced file
* Redundant setting of acl-config with default value
Remove redundant entries that the script found.
Add acl-config for freezer-specs since no ACL existed.
Add acl-config for vinz-webclient since no ACL existed,
this was in original change I1706332f911ad9c8887d1e40613b06cbeb5e1143.
Change-Id: I6b9fc6d2ff1cd5a1f871975608947d6fe763b500
This changes the base element for build-image.sh to ubuntu-minimal, and
adds the simple-init element, to make this match the images used in the
gate.
It also adds an EXTRA_ELEMENTS environment variable that users can use
to add elements to the image. For example, local-config is useful to put
the current user's ssh keys in the image.
Last, it documents the things I needed to install to get it to run
correctly on Ubuntu; this is likely not an exhaustive list.
Change-Id: I2506c6722b77bb2f861d08e7a6da453dc2bbbfc2
The mass rename is done, we do not need these anymore in our repository, remove it again.
This reverts commit 246bbfe03bb5a04ee904e9d09f199dab615fd244.
Change-Id: I5caeabdde4988a987d3fd828605bf5cb73b1aefa
Check how many jobs have been changed and report that number.
Do not abort if the diff or grep fails to find anything.
Change-Id: I7f655f65cbe4d5cd084af2bda645ba57697ba3be
Whenever a project-specific ACL declares exclusiveGroupPermissions
on some permission, it can block other valid uses of that permission
which would otherwise be inherited from the All-Projects pseudoACL.
Make sure that Project Bootstrappers retains access to abandon,
-2..+2 on label-Code-Review and -1..+1 on label-Workflow. Also make
sure Change Owners can still abandon and add -1..0 on
label-Workflow, and that Registered Users can always -1..+1 on
label-Code-Review.
This change corrects existing ACLs to meet the above criteria, and
also introduces a normalization rule to prevent regression.
Change-Id: I2eecb7028bcab7d5d82ad4155a775a9b2daa441f
Gerrit ACLs can have multiple duplicate option keys in a section,
but completely duplicate lines (key and value together) have no use
so make sure they're collapsed into at most 1 copy.
Change-Id: I6bf43e860dcc8c3d7b2846d4e058b6c8ac7243eb