From 8e72e62de11f9fdd34f4cdd00f9a6126b7cf1412 Mon Sep 17 00:00:00 2001
From: Andreas Jaeger <aj@suse.com>
Date: Sun, 22 Oct 2017 10:55:00 +0200
Subject: [PATCH] Build native v3 install-guide docs

Convert install-guide job and template to v3. This
runs only on newton and ocata.

Change-Id: Ide665a796bd80173b1e2248dfc8a7ad412c6c8bc
Depends-On: I85c101b83f745196bc6f8673c26f3864d61ff3f5
---
 playbooks/legacy/install-guide/post.yaml  |  10 --
 playbooks/legacy/install-guide/run.yaml   | 129 ----------------------
 zuul.d/jobs.yaml                          |  21 ++++
 zuul.d/project-templates.yaml             |  12 ++
 zuul.d/zuul-legacy-jobs.yaml              |  14 ---
 zuul.d/zuul-legacy-project-templates.yaml |  25 -----
 6 files changed, 33 insertions(+), 178 deletions(-)
 delete mode 100644 playbooks/legacy/install-guide/post.yaml
 delete mode 100644 playbooks/legacy/install-guide/run.yaml

diff --git a/playbooks/legacy/install-guide/post.yaml b/playbooks/legacy/install-guide/post.yaml
deleted file mode 100644
index 0d55a252..00000000
--- a/playbooks/legacy/install-guide/post.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-- hosts: primary
-  tasks:
-
-    - name: Copy files from install-guide/build/html/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/install-guide/build/html/'
-        dest: '{{ zuul.executor.log_root }}/html/'
-        mode: pull
-        copy_links: true
-        verify_host: true
diff --git a/playbooks/legacy/install-guide/run.yaml b/playbooks/legacy/install-guide/run.yaml
deleted file mode 100644
index f69c2df1..00000000
--- a/playbooks/legacy/install-guide/run.yaml
+++ /dev/null
@@ -1,129 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-install-guide from old job gate-{name}-install-guide
-  tasks:
-
-    - name: Ensure legacy workspace directory
-      file:
-        path: '{{ ansible_user_dir }}/workspace'
-        state: directory
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          CLONEMAP=`mktemp`
-          REQS_DIR=`mktemp -d`
-          function cleanup {
-              mkdir -p $WORKSPACE
-              rm -rf $CLONEMAP $REQS_DIR
-          }
-          trap cleanup EXIT
-          cat > $CLONEMAP << EOF
-          clonemap:
-            - name: $ZUUL_PROJECT
-              dest: .
-          EOF
-          # zuul cloner works poorly if there are 2 names that are the
-          # same in here.
-          if [[ "$ZUUL_PROJECT" != "openstack/requirements" ]]; then
-          cat >> $CLONEMAP << EOF
-            - name: openstack/requirements
-              dest: $REQS_DIR
-          EOF
-          fi
-          /usr/zuul-env/bin/zuul-cloner -m $CLONEMAP --cache-dir /opt/git \
-              git://git.openstack.org $ZUUL_PROJECT openstack/requirements
-          # REQS_DIR is not set for openstack/requirements and there is also
-          # no need to copy in this case.
-          if [[ "$ZUUL_PROJECT" != "openstack/requirements" ]]; then
-              cp $REQS_DIR/upper-constraints.txt ./
-          fi
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: /usr/local/jenkins/slave_scripts/install-distro-packages.sh
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          set -x
-          sudo rm -f /etc/sudoers.d/zuul
-          # Prove that general sudo access is actually revoked
-          ! sudo -n true
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          set -e
-          set -x
-          VENV="install-guide"
-          GUIDEDIR="install-guide"
-
-          # This script is used to publish project-specific deploy-guide and
-          # install-guide documents to the proper place. Master will be
-          # published to a draft directory, stable/X will be published to the X
-          # directory. For example stable/newton documents will life in the
-          # newton directory.
-
-          # You need to pass in the following variables:
-          # VENV - virtual env to use
-          # GUIDEDIR - directory for building
-
-          if [ -z "$VENV" ] ; then
-              echo "The variable VENV is not set."
-              exit 1
-          fi
-          if [ -z "$GUIDEDIR" ] ; then
-              echo "The variable GUIDEDIR is not set."
-              exit 1
-          fi
-
-          export UPPER_CONSTRAINTS_FILE=$(pwd)/upper-constraints.txt
-
-          tox -e $VENV
-
-          [ -e .tox/$VENV/bin/pbr ] && freezecmd=pbr || freezecmd=pip
-
-          echo "Begin pbr freeze output from test virtualenv:"
-          echo "======================================================================"
-          .tox/${VENV}/bin/${freezecmd} freeze
-          echo "======================================================================"
-
-          MARKER_TEXT="Project: $ZUUL_PROJECT Ref: $ZUUL_REFNAME Build: $ZUUL_UUID Revision: $ZUUL_NEWREV"
-          echo $MARKER_TEXT > $GUIDEDIR/build/html/.root-marker
-
-          if [ -z "$ZUUL_REFNAME" ]; then
-              TARGET=""
-              # Leave documents where they are
-          elif [ "$ZUUL_REFNAME" == "master" ] ; then
-              TARGET=draft
-          elif echo $ZUUL_REFNAME | grep stable/ >/dev/null ; then
-              # Put stable release changes in dir named after stable release under the
-              # build dir. When Jenkins copies these files they will be accessible under
-              # the developer docs root using the name of the stable release.
-              TARGET=$(echo $ZUUL_REFNAME | sed 's/stable.//')
-          else
-              # Put other branch changes in dir named after branch under the
-              # build dir. When Jenkins copies these files they will be
-              # accessible under the developer docs root using the branch name.
-              # EG: feature/foo or milestone-proposed
-              TARGET=$ZUUL_REFNAME
-          fi
-
-          if [ ! -z $TARGET ] ; then
-              # Move the docs into subdir based on branch
-              TOP=`dirname $TARGET`
-              mv $GUIDEDIR/build/html $GUIDEDIR/build/tmp
-              mkdir -p $GUIDEDIR/build/html/$TOP
-              mv $GUIDEDIR/build/tmp $GUIDEDIR/build/html/$TARGET
-          fi
-
-          exit
-        executable: /bin/bash
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml
index 0765bdc4..802a8039 100644
--- a/zuul.d/jobs.yaml
+++ b/zuul.d/jobs.yaml
@@ -493,6 +493,27 @@
       - bindep.txt
       - other-requirements.txt
 
+- job:
+    name: build-openstack-install-guide
+    parent: openstack-tox
+    description: |
+      Build install-guide document.
+    success-url: html/
+    post-run: playbooks/build-deploy-guide/post
+    timeout: 1800
+    vars:
+      tox_envlist: install-guide
+    # This job runs only pre-pike, with pike the documents have been
+    # integrated into normal builds.
+    branches:
+      - stable/newton
+      - stable/ocata
+    files:
+      - ^tox.ini$
+      - ^install-guide/.*
+      - bindep.txt
+      - other-requirements.txt
+
 - job:
     name: build-placement-api-ref
     parent: openstack-tox
diff --git a/zuul.d/project-templates.yaml b/zuul.d/project-templates.yaml
index 3f0f77e1..7d24c8d0 100644
--- a/zuul.d/project-templates.yaml
+++ b/zuul.d/project-templates.yaml
@@ -644,3 +644,15 @@
     post:
       jobs:
         - publish-deploy-guide
+
+- project-template:
+    name: install-guide-jobs
+    check:
+      jobs:
+        - build-openstack-install-guide
+    gate:
+      jobs:
+        - build-openstack-install-guide
+    post:
+      jobs:
+        - publish-install-guide
diff --git a/zuul.d/zuul-legacy-jobs.yaml b/zuul.d/zuul-legacy-jobs.yaml
index eef01f72..6e865ce8 100644
--- a/zuul.d/zuul-legacy-jobs.yaml
+++ b/zuul.d/zuul-legacy-jobs.yaml
@@ -2646,20 +2646,6 @@
       - openstack/kuryr
       - openstack/kuryr-kubernetes
 
-- job:
-    name: legacy-install-guide
-    parent: legacy-base
-    success-url: html/
-    run: playbooks/legacy/install-guide/run
-    post-run: playbooks/legacy/install-guide/post
-    timeout: 1800
-    branches: ^stable/(newton|ocata).*$
-    files:
-      - ^tox.ini$
-      - ^install-guide/.*
-      - bindep.txt
-      - other-requirements.txt
-
 - job:
     name: legacy-interop-tox-doc8
     parent: legacy-base
diff --git a/zuul.d/zuul-legacy-project-templates.yaml b/zuul.d/zuul-legacy-project-templates.yaml
index df5eaf52..4b785aff 100644
--- a/zuul.d/zuul-legacy-project-templates.yaml
+++ b/zuul.d/zuul-legacy-project-templates.yaml
@@ -750,31 +750,6 @@
       jobs:
         - legacy-puppet-syntax-4-centos-7
 
-- project-template:
-    name: install-guide-jobs
-    check:
-      jobs:
-        - legacy-install-guide:
-            branches: ^stable/(newton|ocata).*$
-            files:
-              - ^tox.ini$
-              - ^install-guide/.*
-              - bindep.txt
-              - other-requirements.txt
-    gate:
-      jobs:
-        - legacy-install-guide:
-            branches: ^stable/(newton|ocata).*$
-            files:
-              - ^tox.ini$
-              - ^install-guide/.*
-              - bindep.txt
-              - other-requirements.txt
-    post:
-      jobs:
-        - legacy-install-guide:
-            branches: ^stable/(newton|ocata).*$
-
 - project-template:
     name: integrated-gate
     check: