Allow tox-install to handle base python ver 80/8380/3
authorThanh Ha <thanh.ha@linuxfoundation.org>
Fri, 12 Jan 2018 03:26:39 +0000 (22:26 -0500)
committerThanh Ha <thanh.ha@linuxfoundation.org>
Fri, 12 Jan 2018 03:59:22 +0000 (22:59 -0500)
Turns tox-install.sh into a proper macro allowing the user to choose
which base Python version to use in the tox virtualenv.

Issue: RT-50802
Change-Id: Iff578f4cfa39ce6b2540be45537931e6a3b48d22
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
.jjb-test/expected-xml/gerrit-python-tox-verify-master
.jjb-test/expected-xml/gerrit-rtd-rtd-verify-master
.jjb-test/expected-xml/github-python-tox-verify-master
.jjb-test/expected-xml/github-rtd-rtd-verify-master
docs/jjb/lf-python-jobs.rst
jjb/lf-python-jobs.yaml
shell/tox-install.sh
shell/tox-run.sh

index c1d4956..30f2729 100644 (file)
@@ -274,6 +274,11 @@ lftools --version
 # pipdeptree
 </command>
     </hudson.tasks.Shell>
+    <EnvInjectBuilder>
+      <info>
+        <propertiesContent>PYTHON_VERSION=python3</propertiesContent>
+      </info>
+    </EnvInjectBuilder>
     <hudson.tasks.Shell>
       <command>#!/bin/bash
 # SPDX-License-Identifier: EPL-1.0
@@ -291,7 +296,7 @@ echo &quot;---&gt; tox-install.sh&quot;
 # DO NOT set -u as virtualenv's activate script has unbound variables
 set -e -o pipefail
 
-virtualenv --quiet &quot;/tmp/v/tox&quot;
+virtualenv --quiet -p &quot;$PYTHON_VERSION&quot; &quot;/tmp/v/tox&quot;
 # shellcheck source=/tmp/v/tox/bin/activate disable=SC1091
 source &quot;/tmp/v/tox/bin/activate&quot;
 pip install --quiet --upgrade pip
@@ -300,8 +305,10 @@ pip install --quiet --upgrade argparse detox tox tox-pyenv
 
 echo &quot;----&gt; Pip Dependency Tree&quot;
 pipdeptree
-
-#!/bin/bash
+</command>
+    </hudson.tasks.Shell>
+    <hudson.tasks.Shell>
+      <command>#!/bin/bash
 # SPDX-License-Identifier: EPL-1.0
 ##############################################################################
 # Copyright (c) 2017 The Linux Foundation and others.
@@ -313,6 +320,9 @@ pipdeptree
 ##############################################################################
 echo &quot;---&gt; tox-run.sh&quot;
 
+# shellcheck source=/tmp/v/tox/bin/activate disable=SC1091
+source &quot;/tmp/v/tox/bin/activate&quot;
+
 # Ensure we fail the job if any steps fail.
 # DO NOT set -u as virtualenv's activate script has unbound variables
 set -e -o pipefail
index 0a4ba15..b47f5e3 100644 (file)
@@ -205,7 +205,7 @@ echo &quot;---&gt; tox-install.sh&quot;
 # DO NOT set -u as virtualenv's activate script has unbound variables
 set -e -o pipefail
 
-virtualenv --quiet &quot;/tmp/v/tox&quot;
+virtualenv --quiet -p &quot;$PYTHON_VERSION&quot; &quot;/tmp/v/tox&quot;
 # shellcheck source=/tmp/v/tox/bin/activate disable=SC1091
 source &quot;/tmp/v/tox/bin/activate&quot;
 pip install --quiet --upgrade pip
index d04f71e..38ac0dd 100644 (file)
@@ -236,6 +236,11 @@ lftools --version
 # pipdeptree
 </command>
     </hudson.tasks.Shell>
+    <EnvInjectBuilder>
+      <info>
+        <propertiesContent>PYTHON_VERSION=python3</propertiesContent>
+      </info>
+    </EnvInjectBuilder>
     <hudson.tasks.Shell>
       <command>#!/bin/bash
 # SPDX-License-Identifier: EPL-1.0
@@ -253,7 +258,7 @@ echo &quot;---&gt; tox-install.sh&quot;
 # DO NOT set -u as virtualenv's activate script has unbound variables
 set -e -o pipefail
 
-virtualenv --quiet &quot;/tmp/v/tox&quot;
+virtualenv --quiet -p &quot;$PYTHON_VERSION&quot; &quot;/tmp/v/tox&quot;
 # shellcheck source=/tmp/v/tox/bin/activate disable=SC1091
 source &quot;/tmp/v/tox/bin/activate&quot;
 pip install --quiet --upgrade pip
@@ -262,8 +267,10 @@ pip install --quiet --upgrade argparse detox tox tox-pyenv
 
 echo &quot;----&gt; Pip Dependency Tree&quot;
 pipdeptree
-
-#!/bin/bash
+</command>
+    </hudson.tasks.Shell>
+    <hudson.tasks.Shell>
+      <command>#!/bin/bash
 # SPDX-License-Identifier: EPL-1.0
 ##############################################################################
 # Copyright (c) 2017 The Linux Foundation and others.
@@ -275,6 +282,9 @@ pipdeptree
 ##############################################################################
 echo &quot;---&gt; tox-run.sh&quot;
 
+# shellcheck source=/tmp/v/tox/bin/activate disable=SC1091
+source &quot;/tmp/v/tox/bin/activate&quot;
+
 # Ensure we fail the job if any steps fail.
 # DO NOT set -u as virtualenv's activate script has unbound variables
 set -e -o pipefail
index 8a8f408..cf393fb 100644 (file)
@@ -157,7 +157,7 @@ echo &quot;---&gt; tox-install.sh&quot;
 # DO NOT set -u as virtualenv's activate script has unbound variables
 set -e -o pipefail
 
-virtualenv --quiet &quot;/tmp/v/tox&quot;
+virtualenv --quiet -p &quot;$PYTHON_VERSION&quot; &quot;/tmp/v/tox&quot;
 # shellcheck source=/tmp/v/tox/bin/activate disable=SC1091
 source &quot;/tmp/v/tox/bin/activate&quot;
 pip install --quiet --upgrade pip
index 624026d..a047724 100644 (file)
@@ -23,6 +23,21 @@ Jobs for Python projects using GitHub.
 
     - github-tox-verify
 
+
+Macros
+======
+
+lf-tox-install
+--------------
+
+Runs a shell script that installs tox in a Python virtualenv.
+
+:Required Parameters:
+
+    :python-version: Base Python version to use in the virtualenv. For example
+        python2 or python3.
+
+
 Job Templates
 =============
 
@@ -49,6 +64,8 @@ Tox runner to verify a project
     :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
     :build-timeout: Timeout in seconds before aborting build. (default: 10)
     :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
+    :python-version: Version of Python to configure as a base in virtualenv.
+        (default: python3)
     :stream: Keyword representing a release code-name.
         Often the same as the branch. (default: master)
     :submodule-recursive: Whether to checkout submodules recursively.
index 4011822..81f681b 100644 (file)
     jobs:
       - github-tox-verify
 
+##########
+# Macros #
+##########
+
+- builder:
+    name: lf-infra-tox-install
+    builders:
+      - inject:
+          properties-content: 'PYTHON_VERSION={python-version}'
+      - shell: !include-raw-escape: ../shell/tox-install.sh
+
 ##############
 # Tox Verify #
 ##############
@@ -32,6 +43,7 @@
     build-days-to-keep: 7
     build-timeout: 10
     git-url: '$GIT_URL/$GERRIT_PROJECT'
+    python-version: python3
     stream: master
     submodule-recursive: true
     tox-dir: ''
@@ -70,9 +82,9 @@
           # Without running the install first the run in the publisher will fail
           # due to missing lftools because it gets installed into a tox venv.
           - ../shell/lftools-install.sh
-      - shell: !include-raw-escape:
-          - ../shell/tox-install.sh
-          - ../shell/tox-run.sh
+      - lf-infra-tox-install:
+          python-version: '{python-version}'
+      - shell: !include-raw-escape: ../shell/tox-run.sh
 
     publishers:
       - lf-infra-publish
index f7f9a9c..652043b 100644 (file)
@@ -14,7 +14,7 @@ echo "---> tox-install.sh"
 # DO NOT set -u as virtualenv's activate script has unbound variables
 set -e -o pipefail
 
-virtualenv --quiet "/tmp/v/tox"
+virtualenv --quiet -p "$PYTHON_VERSION" "/tmp/v/tox"
 # shellcheck source=/tmp/v/tox/bin/activate disable=SC1091
 source "/tmp/v/tox/bin/activate"
 pip install --quiet --upgrade pip
index 0eae0f1..dd67699 100644 (file)
@@ -10,6 +10,9 @@
 ##############################################################################
 echo "---> tox-run.sh"
 
+# shellcheck source=/tmp/v/tox/bin/activate disable=SC1091
+source "/tmp/v/tox/bin/activate"
+
 # Ensure we fail the job if any steps fail.
 # DO NOT set -u as virtualenv's activate script has unbound variables
 set -e -o pipefail