From 6db259b74c9708a1f31918ecab2394e8426e953a Mon Sep 17 00:00:00 2001 From: Chris Dent Date: Tue, 8 Aug 2017 18:00:10 +0100 Subject: [PATCH] Publish placement-api-ref Make a special placement-api-ref publishing job for the placement API. A special job is required because placement is hosted within the nova repository, in its own sub-directory. The api-ref template job is not set up for that. We could probably have done some refactoring to reuse the existing template but since it is planned for placement to eventually move out of the nova repo, it's not really worth it. This change also makes the gate-placement-api-ref job voting, the change linked via depends-on below provides testing to ensure that all placement URLs and methods have documentation. In I895333c21a18afadaf987f8f9903a0c8b132b1d5 there was discussion that this style of publishing job was incorrect and api-ref should be moved under doc/source. This is not desirable for API reference because we do not wish for API references to be versioned in the same way that project documentation is versioned. Also, placement's odd positioning within a repo with another service makes that complex. This change continues the desirable publishing to developer.openstack.org and maintains the patterns and standards set by nova's api-ref. Co-Authored-By: Andrey Volkov Depends-On: Ifefedcd51f1f8d5e741ef6d02b7a0879a185e05f Change-Id: If5ff9bcc31e2680861e959ef7dc8581210e619e9 --- jenkins/jobs/api-jobs.yaml | 30 +++++++++++++++++++++++++++++- jenkins/jobs/projects.yaml | 3 ++- zuul/layout.yaml | 6 ++++-- 3 files changed, 35 insertions(+), 4 deletions(-) diff --git a/jenkins/jobs/api-jobs.yaml b/jenkins/jobs/api-jobs.yaml index 4ac106ebd8..5cbef83faf 100644 --- a/jenkins/jobs/api-jobs.yaml +++ b/jenkins/jobs/api-jobs.yaml @@ -112,7 +112,7 @@ - console-log - job-template: - name: gate-placement-api-ref-nv + name: gate-placement-api-ref description: Build and draft the placement API Reference from source. node: ubuntu-xenial @@ -168,6 +168,34 @@ - test-results - console-log +# Because placement is hosted within nova, which has its own api-ref, +# we need a separate job for placement, to handle the separate +# directories. +# TODO(cdent): When placement gets its own repo, remove the special +# jobs, this one and 'gate-placement-api-ref'. +- job: + name: 'placement-api-ref' + description: Build and publish the Placement API Reference from source. + node: ubuntu-xenial + + builders: + - zuul-git-prep-upper-constraints + - install-distro-packages + - revoke-sudo + - run-tox: + envlist: 'placement-api-ref' + - add-docs-root-marker: + docsrootdir: placement-api-ref/build/html + + publishers: + - afs: + site: afs-developer-docs + source: 'placement-api-ref/build/html/**' + target: 'api-ref/placement' + remove-prefix: 'placement-api-ref/build/html/' + - test-results + - console-log + # Be aware that the variable "service" needs to be # set when this job group is used. # The "service" variable comes from the service catalog, which is diff --git a/jenkins/jobs/projects.yaml b/jenkins/jobs/projects.yaml index 63e7212e43..065a71f45d 100644 --- a/jenkins/jobs/projects.yaml +++ b/jenkins/jobs/projects.yaml @@ -8479,7 +8479,8 @@ - api-ref-jobs: service: compute - gate-{name}-api-ref-src - - gate-placement-api-ref-nv + - gate-placement-api-ref + - placement-api-ref - '{pipeline}-tempest-dsvm-neutron-nova-next-full-{node}{suffix}': pipeline: gate node: ubuntu-xenial diff --git a/zuul/layout.yaml b/zuul/layout.yaml index 82ee7c37fc..5be9c08715 100755 --- a/zuul/layout.yaml +++ b/zuul/layout.yaml @@ -2729,7 +2729,7 @@ jobs: - '^api-ref/.*' - '^doc/api_samples/.*' - - name: ^gate-placement-api-ref-nv$ + - name: ^gate-placement-api-ref$ success-pattern: http://docs-draft.openstack.org/{build.parameters[LOG_PATH]}/placement-api-ref/build/html/ branch: master files: @@ -12824,14 +12824,16 @@ projects: - gate-tempest-dsvm-neutron-nova-next-full-ubuntu-xenial-nv - gate-tempest-dsvm-multinode-live-migration-ubuntu-xenial - gate-tempest-dsvm-ironic-ipa-wholedisk-bios-agent_ipmitool-tinyipa-ubuntu-xenial-nv - - gate-placement-api-ref-nv + - gate-placement-api-ref gate: - gate-nova-tox-functional-ubuntu-xenial - gate-nova-tox-functional-py35-ubuntu-xenial - gate-tempest-dsvm-cells-ubuntu-xenial - gate-tempest-dsvm-multinode-live-migration-ubuntu-xenial + - gate-placement-api-ref post: - nova-coverage-ubuntu-xenial + - placement-api-ref experimental: - gate-tempest-dsvm-nova-v20-api-ubuntu-xenial - gate-grenade-dsvm-neutron-nova-next-ubuntu-xenial-nv