From 63aefcdb3937bbacb196471e69bcd1c1a146b564 Mon Sep 17 00:00:00 2001
From: Andreas Jaeger <aj@suse.com>
Date: Wed, 1 Nov 2017 19:58:47 +0100
Subject: [PATCH] Replace legacy-tox-build with native job

Use a native v3 job instead of legacy-tox-build.

Change-Id: I44749a82e824366c382988e88cf937ac99c4e917
---
 playbooks/legacy/tox-build/post.yaml      | 67 ------------------
 playbooks/legacy/tox-build/run.yaml       | 86 -----------------------
 zuul.d/jobs.yaml                          | 10 +++
 zuul.d/project-templates.yaml             | 11 +++
 zuul.d/zuul-legacy-jobs.yaml              |  9 ---
 zuul.d/zuul-legacy-project-templates.yaml | 11 ---
 6 files changed, 21 insertions(+), 173 deletions(-)
 delete mode 100644 playbooks/legacy/tox-build/post.yaml
 delete mode 100644 playbooks/legacy/tox-build/run.yaml

diff --git a/playbooks/legacy/tox-build/post.yaml b/playbooks/legacy/tox-build/post.yaml
deleted file mode 100644
index 68fbdf81..00000000
--- a/playbooks/legacy/tox-build/post.yaml
+++ /dev/null
@@ -1,67 +0,0 @@
-- hosts: primary
-  tasks:
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.log_root }}'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=**/*nose_results.html
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.log_root }}'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=**/*testr_results.html.gz
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.log_root }}'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=/.testrepository/tmp*
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.log_root }}'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=**/*testrepository.subunit.gz
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
-
-    - name: Copy files from {{ ansible_user_dir }}/workspace/ on node
-      synchronize:
-        src: '{{ ansible_user_dir }}/workspace/'
-        dest: '{{ zuul.executor.log_root }}/tox'
-        mode: pull
-        copy_links: true
-        verify_host: true
-        rsync_opts:
-          - --include=/.tox/*/log/*
-          - --include=*/
-          - --exclude=*
-          - --prune-empty-dirs
diff --git a/playbooks/legacy/tox-build/run.yaml b/playbooks/legacy/tox-build/run.yaml
deleted file mode 100644
index 0e0ea882..00000000
--- a/playbooks/legacy/tox-build/run.yaml
+++ /dev/null
@@ -1,86 +0,0 @@
-- hosts: all
-  name: Autoconverted job legacy-tox-build from old job gate-{name}-tox-build-ubuntu-xenial
-  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: |
-          if [ -x tools/test-setup.sh ] ; then
-            tools/test-setup.sh
-          fi
-        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: /usr/local/jenkins/slave_scripts/run-tox.sh build
-        chdir: '{{ ansible_user_dir }}/workspace'
-      environment: '{{ zuul | zuul_legacy_vars }}'
-
-    - shell:
-        cmd: |
-          OUT=`git ls-files --other --exclude-standard --directory`
-          if [ -z "$OUT" ]; then
-              echo "No extra files created during test."
-              exit 0
-          else
-              echo "The following un-ignored files were created during the test:"
-              echo "$OUT"
-              exit 0  # TODO: change to 1 to fail tests.
-          fi
-        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 fdfcac8c..8f883ebf 100644
--- a/zuul.d/jobs.yaml
+++ b/zuul.d/jobs.yaml
@@ -330,6 +330,16 @@
     vars:
       tox_envlist: bashate
 
+- job:
+    name: openstack-tox-build
+    parent: openstack-tox
+    description: |
+      Run build tests.
+
+      Uses tox with the ``build`` environment.
+    vars:
+      tox_envlist: build
+
 - job:
     name: openstack-tox-validate
     parent: openstack-tox
diff --git a/zuul.d/project-templates.yaml b/zuul.d/project-templates.yaml
index 9d46150c..f8705b92 100644
--- a/zuul.d/project-templates.yaml
+++ b/zuul.d/project-templates.yaml
@@ -706,3 +706,14 @@
               - stable/pike
             required-projects:
               - openstack/neutron
+
+- project-template:
+    name: python-charm-layer-jobs
+    check:
+      jobs:
+        - openstack-tox-pep8
+        - openstack-tox-build
+    gate:
+      jobs:
+        - openstack-tox-pep8
+        - openstack-tox-build
diff --git a/zuul.d/zuul-legacy-jobs.yaml b/zuul.d/zuul-legacy-jobs.yaml
index 93746aca..66fb012d 100644
--- a/zuul.d/zuul-legacy-jobs.yaml
+++ b/zuul.d/zuul-legacy-jobs.yaml
@@ -8913,15 +8913,6 @@
     required-projects:
       - openstack/requirements
 
-- job:
-    name: legacy-tox-build
-    parent: legacy-base
-    run: playbooks/legacy/tox-build/run.yaml
-    post-run: playbooks/legacy/tox-build/post.yaml
-    timeout: 2400
-    required-projects:
-      - openstack/requirements
-
 - job:
     name: legacy-tox-with-sudo-snap
     parent: legacy-base
diff --git a/zuul.d/zuul-legacy-project-templates.yaml b/zuul.d/zuul-legacy-project-templates.yaml
index 66b32422..c708a4f4 100644
--- a/zuul.d/zuul-legacy-project-templates.yaml
+++ b/zuul.d/zuul-legacy-project-templates.yaml
@@ -529,17 +529,6 @@
       jobs:
         - publish-openstack-python-branch-tarball
 
-- project-template:
-    name: python-charm-layer-jobs
-    check:
-      jobs:
-        - openstack-tox-pep8
-        - legacy-tox-build
-    gate:
-      jobs:
-        - openstack-tox-pep8
-        - legacy-tox-build
-
 - project-template:
     name: snap-jobs
     check: