/
main.yaml
71 lines (66 loc) · 2.6 KB
/
main.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
- name: Set build directory
set_fact:
doc_build_dir: "{{ zuul_work_dir }}/{{ sphinx_build_dir }}"
- name: Write marker text
copy:
dest: "{{ doc_build_dir }}/html/.root-marker"
content: "Project: {{ zuul.project.name }} Branch: {{ zuul.branch }} Build: {{ zuul.build }} Revision: {{ zuul.ref }}"
- name: Process tagged build
include_tasks: tagged.yaml
when: "zuul.branch != 'master' and zuul.tag is defined"
- name: Process stable branch build
include_tasks: stable.yaml
when: "'stable' in zuul.branch and zuul.tag is not defined"
- name: Process branch build
include_tasks: branch.yaml
when: "zuul.branch != 'master' and 'stable' not in zuul.branch and zuul.tag is not defined"
- name: Rearrange publish directories
args:
chdir: "{{ zuul_work_dir }}"
executable: /bin/bash
shell: |
set -xe
DOCBUILD="{{ sphinx_build_dir }}"
if [[ {{ zuul.ref }} =~ ^refs/tags/ ]]; then
# This job should not be configured to run for
# pre-releases, so if we have a tag we want to use it as
# the publishing location.
tag=$(echo {{ zuul.ref }} | cut -d/ -f3-)
branch_name=""
else
# If the ref was not a tag, assume it is a branch.
branch_name={{ zuul.branch }}
tag=""
fi
# Rearrange the build output to reflect the end publishing
# location, so we can use doc/publish as the source for the
# publisher step.
mkdir -p doc/publish
if [[ ! -z "$tag" ]]; then
# We will have already moved the content inside
# a directory named for the tag, so we move that
# directory to the publish location.
mv $DOCBUILD/html/$tag doc/publish/
elif [[ $branch_name = master ]]; then
# The above tasks does not rename the output directory, but
# we want it to be called "latest".
mv $DOCBUILD/html doc/publish/latest
elif [[ $branch_name =~ stable/ ]]; then
# We will have already moved the content inside
# a directory named for the branch, so move that to the
# publish location.
mv $DOCBUILD/html/$(basename $branch_name) doc/publish/
elif [[ $branch_name =~ feature/ ]]; then
echo "Docs should not be published for feature branches"
exit 1
elif [[ $branch_name =~ driverfixes/ ]]; then
echo "Docs should not be published for feature branches"
exit 1
else
# What is this even?
echo "Could not determine publishing location for branch_name $branch_name"
exit 1
fi
# Move back into doc/build/html for artifact publisher.
rm -rf $DOCBUILD/html
mv doc/publish $DOCBUILD/html