Add nox-docs base jobs
This adds a copy of the tox-docs related jobs but using nox instead. Depends-On: https://review.opendev.org/868134 Change-Id: I445202f366c748191fe6a05e145c05cbad1bb8f5
This commit is contained in:
parent
8a7b3895d4
commit
675ff8b712
@ -1,6 +1,10 @@
|
|||||||
Documentation Jobs
|
Documentation Jobs
|
||||||
==================
|
==================
|
||||||
|
|
||||||
|
.. zuul:autojob:: opendev-nox-docs
|
||||||
|
.. zuul:autojob:: opendev-publish-nox-docs-base
|
||||||
|
.. zuul:autojob:: opendev-publish-nox-docs
|
||||||
|
.. zuul:autojob:: opendev-publish-unversioned-nox-docs
|
||||||
.. zuul:autojob:: opendev-tox-docs
|
.. zuul:autojob:: opendev-tox-docs
|
||||||
.. zuul:autojob:: opendev-publish-tox-docs-base
|
.. zuul:autojob:: opendev-publish-tox-docs-base
|
||||||
.. zuul:autojob:: opendev-publish-tox-docs
|
.. zuul:autojob:: opendev-publish-tox-docs
|
||||||
|
3
playbooks/nox-docs/post.yaml
Normal file
3
playbooks/nox-docs/post.yaml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
- hosts: all
|
||||||
|
roles:
|
||||||
|
- fetch-sphinx-tarball
|
5
playbooks/nox-docs/pre.yaml
Normal file
5
playbooks/nox-docs/pre.yaml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
- hosts: all
|
||||||
|
roles:
|
||||||
|
- bindep
|
||||||
|
- ensure-nox
|
||||||
|
- ensure-python
|
37
playbooks/nox-docs/publish.yaml
Normal file
37
playbooks/nox-docs/publish.yaml
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
- hosts: localhost
|
||||||
|
tasks:
|
||||||
|
- name: Check execution context
|
||||||
|
when: "zuul.tag is not defined"
|
||||||
|
fail:
|
||||||
|
msg: "This playbook must be run in a tag-based pipeline (e.g., 'release')."
|
||||||
|
- include_role:
|
||||||
|
name: write-root-marker
|
||||||
|
vars:
|
||||||
|
root_marker_dir: "{{ zuul.executor.log_root }}/docs"
|
||||||
|
- name: Select target configuration
|
||||||
|
set_fact:
|
||||||
|
target_dict: "{{ afs.targets.tag }}"
|
||||||
|
- name: Set target path
|
||||||
|
set_fact:
|
||||||
|
target_dir: "{{ target_dict.path.format(zuul=zuul) }}"
|
||||||
|
- name: Adjust target path
|
||||||
|
when: "target_dict.regex is defined"
|
||||||
|
set_fact:
|
||||||
|
target_dir: "{{ target_dir | regex_replace(target_dict.regex.pattern, target_dict.regex.sub) }}"
|
||||||
|
- name: Get an AFS token
|
||||||
|
include_role:
|
||||||
|
name: create-afs-token
|
||||||
|
- name: Create publication directory
|
||||||
|
file:
|
||||||
|
path: "{{ target_dir }}"
|
||||||
|
state: directory
|
||||||
|
mode: 0755
|
||||||
|
- name: Upload to AFS
|
||||||
|
include_role:
|
||||||
|
name: upload-afs-roots
|
||||||
|
vars:
|
||||||
|
afs_source: "{{ zuul.executor.log_root }}/docs/"
|
||||||
|
afs_target: "{{ target_dir }}"
|
||||||
|
- name: Destroy AFS token
|
||||||
|
include_role:
|
||||||
|
name: destroy-afs-token
|
4
playbooks/nox-docs/run.yaml
Normal file
4
playbooks/nox-docs/run.yaml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
- hosts: all
|
||||||
|
roles:
|
||||||
|
- revoke-sudo
|
||||||
|
- nox
|
105
zuul.d/jobs.yaml
105
zuul.d/jobs.yaml
@ -224,111 +224,6 @@
|
|||||||
- secret: opendev-intermediate-registry
|
- secret: opendev-intermediate-registry
|
||||||
name: intermediate_registry
|
name: intermediate_registry
|
||||||
|
|
||||||
- job:
|
|
||||||
name: opendev-tox-docs
|
|
||||||
# This is not parented to tox-docs because the post playbook
|
|
||||||
# differs.
|
|
||||||
description: |
|
|
||||||
Build documentation with "tox".
|
|
||||||
|
|
||||||
Uses tox with the ``docs`` environment.
|
|
||||||
vars:
|
|
||||||
tox_envlist: docs
|
|
||||||
bindep_profile: compile doc
|
|
||||||
pre-run: playbooks/tox-docs/pre.yaml
|
|
||||||
run: playbooks/tox-docs/run.yaml
|
|
||||||
post-run: playbooks/tox-docs/post.yaml
|
|
||||||
|
|
||||||
- job:
|
|
||||||
name: opendev-publish-tox-docs-base
|
|
||||||
# This is not parented to opendev-tox-docs because the post
|
|
||||||
# playbook differs.
|
|
||||||
description: |
|
|
||||||
Publish a ref-based documentation build.
|
|
||||||
|
|
||||||
Use this in the tag or release pipelines to publish a build
|
|
||||||
based on a newly-created tag.
|
|
||||||
|
|
||||||
This is an abstract job intended to be inherited from in an
|
|
||||||
OpenDev tenant and an appropriate secret added.
|
|
||||||
|
|
||||||
.. zuul:jobvar:: afs
|
|
||||||
:type: dict
|
|
||||||
|
|
||||||
This is expected to be a Zuul Secret with these keys:
|
|
||||||
|
|
||||||
.. zuul:jobvar:: keytab
|
|
||||||
|
|
||||||
The AFS keytab for the service principal.
|
|
||||||
|
|
||||||
.. zuul:jobvar:: service_name
|
|
||||||
|
|
||||||
The name of the service princpal.
|
|
||||||
|
|
||||||
.. zuul:jobvar:: targets
|
|
||||||
|
|
||||||
This is a dict containing information about where docs should be
|
|
||||||
published.
|
|
||||||
|
|
||||||
.. zuul:jobvar:: master
|
|
||||||
|
|
||||||
This is expected to be a dict with a single key value pair:
|
|
||||||
`path: the full docs publication path to use if the job is
|
|
||||||
run on the master branch.`
|
|
||||||
|
|
||||||
.. zuul:jobvar:: branch
|
|
||||||
|
|
||||||
This is expected to be a dict with a key value pair:
|
|
||||||
`path: the full docs publication path to use if the job is run on
|
|
||||||
any other branch.`
|
|
||||||
|
|
||||||
.. zuul:jobvar:: tag
|
|
||||||
|
|
||||||
This is expected to be a dict with a key value pair:
|
|
||||||
`path: the full docs publication path to use if the job is run on
|
|
||||||
a tag.`
|
|
||||||
abstract: True
|
|
||||||
vars:
|
|
||||||
tox_envlist: docs
|
|
||||||
bindep_profile: compile doc
|
|
||||||
pre-run: playbooks/tox-docs/pre.yaml
|
|
||||||
run: playbooks/tox-docs/run.yaml
|
|
||||||
post-run:
|
|
||||||
- playbooks/tox-docs/post.yaml
|
|
||||||
- playbooks/tox-docs/publish.yaml
|
|
||||||
|
|
||||||
- job:
|
|
||||||
name: opendev-publish-unversioned-tox-docs
|
|
||||||
parent: opendev-publish-tox-docs-base
|
|
||||||
description: |
|
|
||||||
Publish a ref-based documentation build to "latest" always.
|
|
||||||
|
|
||||||
Use this in the tag or release pipelines to publish a build
|
|
||||||
based on a newly-created tag but published as if it were a
|
|
||||||
branch tip build instead. This is useful when the project has
|
|
||||||
only a single branch and multiple version-specific copies of
|
|
||||||
its documentation are undesirable, or when triggered by a tag
|
|
||||||
alongside a version-specific publication job.
|
|
||||||
post-run: playbooks/tox-docs/publish.yaml
|
|
||||||
secrets:
|
|
||||||
- secret: opendev-unversioned-docs
|
|
||||||
name: afs
|
|
||||||
pass-to-parent: true
|
|
||||||
|
|
||||||
- job:
|
|
||||||
name: opendev-publish-tox-docs
|
|
||||||
parent: opendev-publish-tox-docs-base
|
|
||||||
description: |
|
|
||||||
Publish a ref-based documentation build.
|
|
||||||
|
|
||||||
Use this in the tag or release pipelines to publish a build
|
|
||||||
based on a newly-created tag.
|
|
||||||
post-run: playbooks/tox-docs/publish.yaml
|
|
||||||
secrets:
|
|
||||||
- secret: opendev-zuul-docs
|
|
||||||
name: afs
|
|
||||||
pass-to-parent: true
|
|
||||||
|
|
||||||
- job:
|
- job:
|
||||||
name: opendev-promote-docs-base
|
name: opendev-promote-docs-base
|
||||||
description: |
|
description: |
|
||||||
|
105
zuul.d/nox-jobs.yaml
Normal file
105
zuul.d/nox-jobs.yaml
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
- job:
|
||||||
|
name: opendev-nox-docs
|
||||||
|
# This is not parented to nox-docs because the post playbook
|
||||||
|
# differs.
|
||||||
|
description: |
|
||||||
|
Build documentation with "nox".
|
||||||
|
|
||||||
|
Uses nox with the ``docs`` session.
|
||||||
|
vars:
|
||||||
|
nox_session: docs
|
||||||
|
bindep_profile: compile doc
|
||||||
|
pre-run: playbooks/nox-docs/pre.yaml
|
||||||
|
run: playbooks/nox-docs/run.yaml
|
||||||
|
post-run: playbooks/nox-docs/post.yaml
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: opendev-publish-nox-docs-base
|
||||||
|
# This is not parented to opendev-nox-docs because the post
|
||||||
|
# playbook differs.
|
||||||
|
description: |
|
||||||
|
Publish a ref-based documentation build.
|
||||||
|
|
||||||
|
Use this in the tag or release pipelines to publish a build
|
||||||
|
based on a newly-created tag.
|
||||||
|
|
||||||
|
This is an abstract job intended to be inherited from in an
|
||||||
|
OpenDev tenant and an appropriate secret added.
|
||||||
|
|
||||||
|
.. zuul:jobvar:: afs
|
||||||
|
:type: dict
|
||||||
|
|
||||||
|
This is expected to be a Zuul Secret with these keys:
|
||||||
|
|
||||||
|
.. zuul:jobvar:: keytab
|
||||||
|
|
||||||
|
The AFS keytab for the service principal.
|
||||||
|
|
||||||
|
.. zuul:jobvar:: service_name
|
||||||
|
|
||||||
|
The name of the service princpal.
|
||||||
|
|
||||||
|
.. zuul:jobvar:: targets
|
||||||
|
|
||||||
|
This is a dict containing information about where docs should be
|
||||||
|
published.
|
||||||
|
|
||||||
|
.. zuul:jobvar:: master
|
||||||
|
|
||||||
|
This is expected to be a dict with a single key value pair:
|
||||||
|
`path: the full docs publication path to use if the job is
|
||||||
|
run on the master branch.`
|
||||||
|
|
||||||
|
.. zuul:jobvar:: branch
|
||||||
|
|
||||||
|
This is expected to be a dict with a key value pair:
|
||||||
|
`path: the full docs publication path to use if the job is run on
|
||||||
|
any other branch.`
|
||||||
|
|
||||||
|
.. zuul:jobvar:: tag
|
||||||
|
|
||||||
|
This is expected to be a dict with a key value pair:
|
||||||
|
`path: the full docs publication path to use if the job is run on
|
||||||
|
a tag.`
|
||||||
|
abstract: True
|
||||||
|
vars:
|
||||||
|
nox_session: docs
|
||||||
|
bindep_profile: compile doc
|
||||||
|
pre-run: playbooks/nox-docs/pre.yaml
|
||||||
|
run: playbooks/nox-docs/run.yaml
|
||||||
|
post-run:
|
||||||
|
- playbooks/nox-docs/post.yaml
|
||||||
|
- playbooks/nox-docs/publish.yaml
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: opendev-publish-unversioned-nox-docs
|
||||||
|
parent: opendev-publish-nox-docs-base
|
||||||
|
description: |
|
||||||
|
Publish a ref-based documentation build to "latest" always.
|
||||||
|
|
||||||
|
Use this in the tag or release pipelines to publish a build
|
||||||
|
based on a newly-created tag but published as if it were a
|
||||||
|
branch tip build instead. This is useful when the project has
|
||||||
|
only a single branch and multiple version-specific copies of
|
||||||
|
its documentation are undesirable, or when triggered by a tag
|
||||||
|
alongside a version-specific publication job.
|
||||||
|
post-run: playbooks/nox-docs/publish.yaml
|
||||||
|
secrets:
|
||||||
|
- secret: opendev-unversioned-docs
|
||||||
|
name: afs
|
||||||
|
pass-to-parent: true
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: opendev-publish-nox-docs
|
||||||
|
parent: opendev-publish-nox-docs-base
|
||||||
|
description: |
|
||||||
|
Publish a ref-based documentation build.
|
||||||
|
|
||||||
|
Use this in the tag or release pipelines to publish a build
|
||||||
|
based on a newly-created tag.
|
||||||
|
post-run: playbooks/nox-docs/publish.yaml
|
||||||
|
secrets:
|
||||||
|
- secret: opendev-zuul-docs
|
||||||
|
name: afs
|
||||||
|
pass-to-parent: true
|
||||||
|
|
105
zuul.d/tox-jobs.yaml
Normal file
105
zuul.d/tox-jobs.yaml
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
- job:
|
||||||
|
name: opendev-tox-docs
|
||||||
|
# This is not parented to tox-docs because the post playbook
|
||||||
|
# differs.
|
||||||
|
description: |
|
||||||
|
Build documentation with "tox".
|
||||||
|
|
||||||
|
Uses tox with the ``docs`` environment.
|
||||||
|
vars:
|
||||||
|
tox_envlist: docs
|
||||||
|
bindep_profile: compile doc
|
||||||
|
pre-run: playbooks/tox-docs/pre.yaml
|
||||||
|
run: playbooks/tox-docs/run.yaml
|
||||||
|
post-run: playbooks/tox-docs/post.yaml
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: opendev-publish-tox-docs-base
|
||||||
|
# This is not parented to opendev-tox-docs because the post
|
||||||
|
# playbook differs.
|
||||||
|
description: |
|
||||||
|
Publish a ref-based documentation build.
|
||||||
|
|
||||||
|
Use this in the tag or release pipelines to publish a build
|
||||||
|
based on a newly-created tag.
|
||||||
|
|
||||||
|
This is an abstract job intended to be inherited from in an
|
||||||
|
OpenDev tenant and an appropriate secret added.
|
||||||
|
|
||||||
|
.. zuul:jobvar:: afs
|
||||||
|
:type: dict
|
||||||
|
|
||||||
|
This is expected to be a Zuul Secret with these keys:
|
||||||
|
|
||||||
|
.. zuul:jobvar:: keytab
|
||||||
|
|
||||||
|
The AFS keytab for the service principal.
|
||||||
|
|
||||||
|
.. zuul:jobvar:: service_name
|
||||||
|
|
||||||
|
The name of the service princpal.
|
||||||
|
|
||||||
|
.. zuul:jobvar:: targets
|
||||||
|
|
||||||
|
This is a dict containing information about where docs should be
|
||||||
|
published.
|
||||||
|
|
||||||
|
.. zuul:jobvar:: master
|
||||||
|
|
||||||
|
This is expected to be a dict with a single key value pair:
|
||||||
|
`path: the full docs publication path to use if the job is
|
||||||
|
run on the master branch.`
|
||||||
|
|
||||||
|
.. zuul:jobvar:: branch
|
||||||
|
|
||||||
|
This is expected to be a dict with a key value pair:
|
||||||
|
`path: the full docs publication path to use if the job is run on
|
||||||
|
any other branch.`
|
||||||
|
|
||||||
|
.. zuul:jobvar:: tag
|
||||||
|
|
||||||
|
This is expected to be a dict with a key value pair:
|
||||||
|
`path: the full docs publication path to use if the job is run on
|
||||||
|
a tag.`
|
||||||
|
abstract: True
|
||||||
|
vars:
|
||||||
|
tox_envlist: docs
|
||||||
|
bindep_profile: compile doc
|
||||||
|
pre-run: playbooks/tox-docs/pre.yaml
|
||||||
|
run: playbooks/tox-docs/run.yaml
|
||||||
|
post-run:
|
||||||
|
- playbooks/tox-docs/post.yaml
|
||||||
|
- playbooks/tox-docs/publish.yaml
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: opendev-publish-unversioned-tox-docs
|
||||||
|
parent: opendev-publish-tox-docs-base
|
||||||
|
description: |
|
||||||
|
Publish a ref-based documentation build to "latest" always.
|
||||||
|
|
||||||
|
Use this in the tag or release pipelines to publish a build
|
||||||
|
based on a newly-created tag but published as if it were a
|
||||||
|
branch tip build instead. This is useful when the project has
|
||||||
|
only a single branch and multiple version-specific copies of
|
||||||
|
its documentation are undesirable, or when triggered by a tag
|
||||||
|
alongside a version-specific publication job.
|
||||||
|
post-run: playbooks/tox-docs/publish.yaml
|
||||||
|
secrets:
|
||||||
|
- secret: opendev-unversioned-docs
|
||||||
|
name: afs
|
||||||
|
pass-to-parent: true
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: opendev-publish-tox-docs
|
||||||
|
parent: opendev-publish-tox-docs-base
|
||||||
|
description: |
|
||||||
|
Publish a ref-based documentation build.
|
||||||
|
|
||||||
|
Use this in the tag or release pipelines to publish a build
|
||||||
|
based on a newly-created tag.
|
||||||
|
post-run: playbooks/tox-docs/publish.yaml
|
||||||
|
secrets:
|
||||||
|
- secret: opendev-zuul-docs
|
||||||
|
name: afs
|
||||||
|
pass-to-parent: true
|
||||||
|
|
Loading…
Reference in New Issue
Block a user