53 Commits

Author SHA1 Message Date
Andreas Jaeger
01e0f6d6e2 Whitelist bash in tox.ini for zuul
Avoid these lines in every output of the layout gate job with
whitelisting bash:

WARNING:test command found but not installed in testenv
  cmd: /bin/bash
  env: /home/aj/vcs/OpenStack/openstack-infra/project-config/.tox/zuul
Maybe you forgot to specify a dependency? See also the
whitelist_externals envconfig setting.

Also, order list of external commands alphabetically.

Change-Id: I4d1fe347c8006e14bc0fe3c61b3783e9039648b7
2016-12-19 09:12:44 +01:00
Andreas Jaeger
19ea9dcda2 Translate releasenotes
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
2016-10-07 10:58:28 +02:00
Jenkins
f6d08ffa64 Merge "Enable layout-checks.py again" 2016-09-28 16:12:20 +00:00
Jenkins
b0274dc63d Merge "Add JJB AFS module" 2016-09-28 16:09:58 +00:00
Andreas Jaeger
1cf95e591a Enable layout-checks.py again
Add check back to tox.ini and fix the location of the job-list file.

Change-Id: I9a92663e3f69313adc95cf6a63c04291ab983460
2016-09-28 08:39:06 +02:00
James E. Blair
a9c6b6f020 Add JJB AFS module
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
2016-09-27 14:49:09 -07:00
Andreas Jaeger
f2c6295f25 Check changed track-upstreams in gerrit/projects.yaml
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
2016-09-27 22:05:48 +02:00
Thomas Goirand
9a7e468819 Unfix irc-access: unpins jaraco.itertools
Release of today's PyPi module: "irc" broke the job:
gate-project-config-irc-access

This patch unpins jaraco.itertools which fixes the issue
(in fact, removes it from tox.ini since it is a transitive dep).

Change-Id: I196f31f4bf35c7faecb8fffa115fbfba5136b893
2016-09-12 23:18:10 +02:00
Andreas Jaeger
fdea47b3cf Remove generated zuul content
When running tox -e zuul locally, some files are not deleted which
results in strange or wrong results. Remove the generated data files
before each run.

Change-Id: Ic8bd50b4d969d27ac99d743cb0be94019691fd2b
2016-08-09 16:37:18 +02:00
Andreas Jaeger
0392959170 Remove projects tox environment
Since projects is not used anymore (it was merged with the gerrit
environment), this can be removed now.

Change-Id: Ic9693c9660cd8ca1e29da0405b7f5704c908b778
2016-06-22 08:18:39 +02:00
Andreas Jaeger
e66ce9d5cd Merge gerrit jobs for project-config
Both gate-project-config-projects-yaml and gate-project-config-gerrit
test files in gerrit directory, both check ACLs a swell. Let's merge
those into one job since in most cases both need to be run anyway and
the name projects-yaml might be confused with
jenkins/jobs/projects.yaml.

Note that this one leaves the projects tox environment in so that
testing of this change passes.

Change-Id: I34324643c26d0bcf2d24ce1dc51250ad53f2d48f
2016-06-22 08:18:06 +02:00
Paul Belanger
f2884bb303
Add support for bindep
Change-Id: I402c3f01ac73a7c1bbcd15c4bc2e4ab03a87b9d1
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
2016-06-03 10:10:34 -04:00
Jenkins
eedeb8d0d0 Merge "Revert "Add script to facilitate project renaming in project-config repo"" 2016-04-20 08:38:46 +00:00
Andreas Jaeger
6ef07db860 Add checks for gerrit ACLs
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
2016-04-11 16:52:26 +02:00
Andreas Jaeger
d91225a30a Revert "Add script to facilitate project renaming in project-config repo"
The mass rename is done, we do not need these anymore in our repository, remove it again.

This reverts commit 246bbfe03bb5a04ee904e9d09f199dab615fd244.

Change-Id: I5caeabdde4988a987d3fd828605bf5cb73b1aefa
2016-03-28 21:56:24 +02:00
James E. Blair
5308c933ca Revert "Pass ZUUL_* env vars through tox"
This reverts commit b70bbeb5c7a93a0ae0fad067359f35909dab8afe.

This is no longer needed with the dependent commit merged.

Change-Id: I22fad4995cb379009a1fac9be25dd580e1aacee5
Depends-On: Iacba1611e5c50fbccd6ae700b3456028b142fc5c
2016-01-07 17:33:56 -08:00
James E. Blair
9ed42604d0 Validate grafyaml based on master
Rather than installing grafyaml from pypi, install it with
zuul-cloner so that it may be validated with the contents of
master (or even changes in review).  We run grafyaml continuously
deployed from source rather than installing from pypi, so this
more closely matches what we actually want to validate.

Change-Id: I26663e5c70883b910fced6c32ae364734542b5a5
2016-01-07 17:23:27 -08:00
James E. Blair
b70bbeb5c7 Pass ZUUL_* env vars through tox
So that zuul-cloner inside of a tox env works

Change-Id: I5d7428be62fccf0d28d5d39dafdc58193e7f9ad6
2016-01-07 17:23:27 -08:00
Andreas Jaeger
abac964a99 Remove pep8/bashate targets
These targets are now part of the linters environment, so can be
removed.

Change-Id: I451e2c0a745439838c58bb024d81196f347cfd7b
2015-12-23 10:07:22 +01:00
Andreas Jaeger
3a92c37ea8 Replace bashate/pep8 in project-config by linters
Use a single linting target for changes and run that instead of the
individual bashate and pep8 targets.

Fix name of pep8 job for project-config-example.

Create new gate-{name}-linters job-template for this.

The pep8 job was run also on project-config-examples, create a new job
for that repo. It now runs without the filters since with the amount
of changes to the repo, we do not need to optimize anything right now.

Change-Id: I2afa7931bf3e18798b95a8af33ccf5ef761c4ad5
2015-12-22 18:43:35 +00:00
Paul Belanger
8ccd1d987e Start validating JJB job-templates
Initial commit to validate some JJB files. This validates
for existence of required sections and where possible that no additional
ones are available.

It will catch some errors that the JJB parser misses, since JJB ignores
unknown entries.

Change-Id: I51606d7066af7d5761f09655eead48883f7f56dc
Co-Authored-By: Andreas Jaeger <aj@suse.com>
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
2015-12-16 08:46:46 +01:00
Tony Breeds
a4e18ddfaa Add temporary pin on jaraco.itertools
jaraco.itertools was released in the last 24hours.

---
 jaraco.itertools-1.6.tar.gz                            : 2015-11-18T17:41:38
 jaraco.itertools-1.6.1.tar.gz                          : 2015-11-18T17:52:02
---

it breaks check_irc_access with:

---
$ tools/check_irc_access.py -l accessbot/channels.yaml openstackinfra
Traceback (most recent call last):
  File "tools/check_irc_access.py", line 19, in <module>
    import irc.client
  File "<snip>/irc/client.py", line 67, in <module>
    from jaraco.itertools import always_iterable
---

Add a quick pin to unblock that gate check.

Change-Id: Ie37268d7003392e8865f6850e6345be0b6b4d5c7
2015-11-19 08:19:16 +11:00
Paul Belanger
d41def4851 Move bashate to its own gate
This is a trivial change to keep things inline with system-config.
Additionally, this will allow a follow up patch to update pep8 to only
run when .py files changes.

Change-Id: I7981c118b2483147a145617a14a583fe80a20df7
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
2015-11-11 10:54:12 -05:00
Ramy Asselin
14cef9c397 Move nodepool.yaml from system-config to project-config
Nodepool.yaml.erb in system-config no longer contains any secrets.
Let's move it to the project-config repo.

Add the nodepool validation jobs and tox environment, initially
as non-voting until it is boot strapped.

The version of nodepool.yaml proposed matches the version in system-config
depends-on patch. A follow-up patch will be submitted with any deltas needed
when the needed-by patch is ready to merge. Until that happens, this nodepool.yaml
file won't be used and is safe to merge.

Make both gate-project-config-nodepool and gate-system-config-nodepool
non-voting to aid in bootstrapping this change.

The nodepool logging template file and associated tool that generates the file
will remain in system-config. In the short term, updates to nodepool.yaml in
this repo may require a related change in system-config to update the logging
configuration. In the longer term, nodepool will be updated to automatically
log image creations without needing a customized logging configuration.

Needed-By: I2b45a7145805368b1598d3a3e8a94f0e4eb8cf2d
Depends-On: Ib045c104daac15360e62f46e3e5683c7a387bc96
Depends-On: I89207d100eb4b6bbb502a6ed38831f49e4b29096
Change-Id: I473a1b78acdb035eb379394a7ed5f771434dc942
2015-10-29 10:56:39 +01:00
Jenkins
1b9a935b64 Merge "Check for valid upstream git projects" 2015-10-22 09:08:04 +00:00
Jenkins
64fa5348d8 Merge "Remove dib-lint flake8 requirement" 2015-10-22 08:46:59 +00:00
Andreas Jaeger
106f6b80e2 Check for valid upstream git projects
This checks out the upstream git projects (unless we use track-upstream)
and prints some information about it.

Note this checks for all upstream repositories but since those are
cleaned up regularly, this should be fine.

It fails if the there is no remote master branch.

Reindent the original code as main function.

Change-Id: Ie469905f48e4bc1a408fb9e731f95b2b735a6a02
2015-10-21 20:34:45 +02:00
Ian Wienand
c26b8cb86c Remove dib-lint flake8 requirement
With the dependent change, this should be requested by
diskimage-builder itself.

Change-Id: Id45c0dfcae86672e4a0c6cdc7c057d9aa6d291b1
Depends-On: I3052f860cebc66844cd21f34be64aea8474d2248
2015-10-21 06:14:00 +11:00
Clint Adams
246bbfe03b Add script to facilitate project renaming in project-config repo
This takes a list of projects from stdin in the format of
aeromancer
anvil
blazar

and renames stackforge/aeromancer, stackforge/anvil, and stackforge/blazar
to openstack/aeromancer, openstack/anvil, and openstack/blazar respectively
in gerrit/projects.yaml, gerritbot/channels.yaml, zuul/layout.html,
and every file in jenkins/jobs/ , as well as renaming acl files.

A side effect of this process is that comments will be stripped from
gerritbot/channels.yaml ; if you are committing the results of a run of
this script, please re-add the comments manually unless we come up with
a more elegant solution.

This script also has test coverage for verification and documentation.

Also included is a WIP list of renames in data/stackforge-renames, as
per
http://eavesdrop.openstack.org/irclogs/%23openstack-infra/%23openstack-infra.2015-10-13.log.html#t2015-10-13T20:10:17
and a WIP list of retirements in data/stackforge-retirements, which
is not used by the script in this change.

Co-Authored-By: Augustina Ragwitz <aragwitz+lp@pobox.com>
Change-Id: Iaf2a13d8b9b9a840d9fde07ec1ef65d1c9e90e8e
2015-10-17 15:50:14 +00:00
Paul Belanger
25932eca7c Add grafana dashboard for status.o.o/zuul
This is our first grafyaml dashboard which reproduces the current
graphs on status.o.o/zuul rendered by graphite. While we aren't
actually running grafyaml upstream yet, we can get started on building
our dashboards.

We also added a tox job to properly gate on the configuration.

Change-Id: Ia738bcb510e146ab38566f0c13ff483ec618a6ed
Depends-On: I16b9affd4402fe5d1637238a2e27f22fdd3986ff
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
2015-10-05 16:09:32 -04:00
Ian Wienand
d243e02553 Add diskimage-builder lint job
Add a "dib" tox environment to run "dib-lint", the linting tool
diskimage-builder runs over its included elements.

Add this as a non-voting job for now; there are issues in dib-lint and
our elements to sort out
(e.g. Ibba1dadb9e819f94294c9d583b83ff698252f93f, as a start).

Change-Id: I28459a9bbaaa6175d03dbe753498849a75942538
2015-10-01 19:17:19 +10:00
Clint Adams
952bc590ba Test formatting of gerritbot/channels.yaml
Ensure that the output of tools/normalize_channels_yaml.py matches
gerritbot/channels.yaml modulo any comments.

Change-Id: I3147cb094a795aeeffcceda182d065ed5145c2dd
Depends-On: Ia710997f37e8fba4a18b26577ecac42dd3137e2a
2015-09-29 09:56:18 -04:00
Andreas Jaeger
c28da01f91 project-config: Merge lint jobs (2/2)
Since both pep8 and bashate are voting, we can merge the two lint
targets into the "common" pep8 lint target. There's no need for a
separate bashate run.

This change is the second part for this.
Since the jobs are changed, we can now remove the obsolete bashate
tox.ini target.

Change-Id: I572ba3fe8b3a9a05f5239a858d2f701bfd8f684d
2015-04-23 20:15:28 +02:00
Jeremy Stanley
4d17d13edd Add an index.html for docs.o.o/infra
This is a partial cargo-culting of the index job and associated
files from the specs.o.o site, to generate a simple top-level index
page for the http://docs.openstack.org/infra/ tree.

Change-Id: Idb5a8dba58a53c7c8ea1de69e9a4d9b5ef410c78
2015-04-23 16:11:24 +00:00
Victor Stinner
ceee9c0f1a Fix Python 3 issues
* Fix print syntax in check_valid_gerrit_projects.py
* tox.ini: jenkins-project env works also on Python 3, no need to force
  Python 2.7

Change-Id: I3c643470c6b5db666aeab208c615382719f8768d
2015-04-10 01:29:25 +02:00
Andreas Jaeger
71f3989ce4 project-config: Merge lint jobs (1/2)
This is the first part of merging pep and bashate jobs: Remove
bashate job from project-config queues.

Since both pep8 and bashate are voting, we can merge the two lint
targets into the "common" pep8 lint target. There's no need for a
separate bashate run.

The second part will remove the bashate job from tox.ini. This cannot
be done as part of this change since it would break gating.

Change-Id: I9522b2b7478590bf41dc1dab763de01d38b70404
2015-03-15 19:22:25 +01:00
Andreas Jaeger
f8788e2e27 Ensure that gerritbot channels are in accessbot
Add new test that checks that channels mentioned in gerritbot are also
in accessbot.

Enhance the irc tox target so that it runs the checks, and update Zuul
so that the job is run for changes to gerritbot.

Add channels openstack-mistral and puppet-openstack to accessbot,
openstackinfra now has access to the channels. These two channels are
already in gerritbot.

Make check_irc_access.py script executable.

Change-Id: Ic68ba9a1c60854e68817fcadb1a5df2144944af7
2015-03-06 12:51:24 +01:00
Jenkins
d811f94974 Merge "Generate specs.o.o root page from template" 2015-01-20 19:12:35 +00:00
Doug Hellmann
b332c2a776 Generate specs.o.o root page from template
Use a YAML file listing the projects to generate the specs.openstack.org
root page and an OPML file for all of the available RSS feeds.

These changes are based on the work of Maish Saidel-Keesing
<maishsk@gmail.com> in https://review.openstack.org/#/c/140041/

Change-Id: I828d65f10fb7608b59e3561cedc9553d4d96ee75
2014-12-18 16:06:11 -05:00
armando-migliaccio
e6573ea752 Add test for validating certain gerrit ACL rules
This patch adds a check for Gerrit ACL configs. In this initial
version, the test being added checks that the config defines
at least one team that acts as a core/admin one.

The current check is intentially pretty loose to ensure some
flexibility.

Currently the check applies to stackforge and openstack-dev only.

Change-Id: I2b04f2d94130699d6fd1c16a9b00b9c81d1ba07d
2014-12-15 23:03:03 -08:00
Jenkins
c269a67f35 Merge "Check for valid entries in gerrit/projects.yaml" 2014-12-04 19:45:25 +00:00
Doug Hellmann
4c6e428257 Fix layout-checks.py to work in virtualenv
Fix the python interpreter used by layout-checks.py so that the "tox -e
zuul" target works correctly on a local system.

Add the PyYAML dependency needed by layout-checks.py to the tox
configuration for the zuul target.

Add the zuul target to the default list for tox.

Change-Id: Ic4db9fc3bb236d36365abfe966eb9e7769896011
2014-12-03 15:05:21 -05:00
Andreas Jaeger
6ee2f2234f Check for valid entries in gerrit/projects.yaml
Rename check_upstream_url_scheme.py to check_valid_gerrit_projects.py
and extend the check so that:
* It shows all errors, not only the first one
* It checks that the keywords are valid

This was triggered by seen twice in a week the keyword "description"
misspelled.

Script now outputs in error case:
Error: Upstream URLs should use a scheme in ['https://', 'http://', 'git://'],
 found git@://github.com/emonty/cookiecutter-openstack.git in
 openstack-dev/cookiecutter
Error: Unknown keyword 'decription' in project stackforge/ec2-driver
Found 2 error(s) in /tmp/projects.yaml

Also add the usual license header.

Change-Id: I334dcadc6fd4472fb28d379aec317c1a16dee2e2
2014-12-03 15:40:40 +01:00
Doug Hellmann
3c2ca5a922 Add jenkins-project to the default env list
Add jenkins-project to the list of envs used when "tox" is run locally
without arguments. This should make it easier for someone working on a
change to test locally before submitting the patch.

Change-Id: I5f2732daa2509ff378429959bd15d0f2f7f98692
2014-10-20 19:32:53 +00:00
Andreas Jaeger
9836ea5357 Add check for ordering of jenkins/jobs/projects.yaml
Example output of test:
$ tools/jenkins-projects-checks.py
Checking section 'OpenStack server projects'
Checking section 'OpenStack client projects'
Checking section 'oslo libraries'
Checking section 'Other OpenStack projects'
  Wrong alphabetical order: tempest, qa-specs
Checking section 'OpenStack API projects'
Checking section 'OpenStack documentation projects'
Checking section 'OpenStack development projects'
Checking section 'OpenStack infrastructure projects'
Checking section 'Stackforge projects'
Found errors in jenkins/jobs/projects.yaml!

This patch fixes the order so that it passes.
It also creates a new job to test this.

Change-Id: I36fd522261363494f07b57e40f0d9b943cf08841
2014-10-06 22:17:26 +02:00
Jenkins
383ce82680 Merge "Whitelist commands in tox.ini" 2014-10-01 18:38:30 +00:00
Jenkins
fb22ef61c7 Merge "Clean up bashate failures" 2014-10-01 17:12:55 +00:00
K Jonathan Harker
2f03cf35e5 Clean up bashate failures
Also create tools/run-bashate.sh to wrap a find command to search for
files to run bashate on, and use it in tox.

Change-Id: I5ab07425f566a556f158a4b76b00aa35f9fb4385
2014-09-30 12:39:48 -07:00
Andreas Jaeger
c6b1ffd04f Add more checks for zuul/layout.yaml
Check that each project (with exception of z/tempest) has a merge-check
template.
Check projects - so far stackforge only - for alphabetical order.

The merge template check is taken from a test that Jeremy shared.

Change-Id: I2bc457ddfe0eca787bb88ceeb919f89d491978d7
Co-Authored-By: Jeremy Stanley <fungi@yuggoth.org>
2014-09-30 18:46:56 +00:00
Andreas Jaeger
f4a284d3e8 Use tox -e zuul for layout test
Adjust tox environment, the check_projects_yaml_alphabetized.sh script
only works with gerrit/projects.yaml but not with layout.yaml, so remove
the call.

Change the job to use tox -e zuul.

Change-Id: I70d918ec1de94c6ec9aa0c2c6647aa8c791df303
2014-09-30 20:32:44 +02:00