Merge "Add jenkins job for running barometer tests on a daily basis"
authorTrevor Bramwell <tbramwell@linuxfoundation.org>
Mon, 31 Aug 2020 17:45:06 +0000 (17:45 +0000)
committerGerrit Code Review <gerrit@opnfv.org>
Mon, 31 Aug 2020 17:45:06 +0000 (17:45 +0000)
jjb/functest/functest-kubernetes-docker.yaml
jjb/functest/functest-kubernetes-pi.yaml
jjb/functest/functest-kubernetes.yaml
jjb/kuberef/Vagrantfile [new file with mode: 0644]
jjb/kuberef/kuberef-run-linting.sh
jjb/kuberef/kuberef-verify-jobs.yaml
jjb/kuberef/tox.ini [new file with mode: 0644]

index d62691a..92eecb9 100644 (file)
@@ -38,6 +38,7 @@
       - 'smoke'
       - 'cnf'
       - 'security'
+      - 'benchmarking'
 
     # settings for jobs run in multijob phases
     build-job-settings: &build-job-settings
           projects:
             - name: 'functest-kubernetes-smoke-docker-manifest-{stream}'
               <<: *manifest-job-settings
+      - multijob:
+          name: 'build functest-kubernetes-benchmarking image'
+          condition: SUCCESSFUL
+          execution-type: PARALLEL
+          projects:
+            - name: 'functest-kubernetes-benchmarking-docker-build-amd64-{stream}'
+              <<: *build-job-settings
+            - name: 'functest-kubernetes-benchmarking-docker-build-arm64-{stream}'
+              <<: *build-job-settings
+      - multijob:
+          name: 'publish functest-kubernetes-benchmarking manifests'
+          condition: SUCCESSFUL
+          execution-type: PARALLEL
+          projects:
+            - name: 'functest-kubernetes-benchmarking-docker-manifest-{stream}'
+              <<: *manifest-job-settings
 
     publishers:
       - 'functest-kubernetes-amd64-recipients'
index 4df9eef..f33d028 100644 (file)
     jobs:
       - 'functest-kubernetes-pi-{repo}-{container}-{tag}-pull'
 
+- project:
+    name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-benchmarking-pull'
+    <<: *functest-kubernetes-pi-params
+    container: 'functest-kubernetes-benchmarking'
+    exclude:
+      - tag: arm-hunter
+      - tag: arm64-hunter
+    jobs:
+      - 'functest-kubernetes-pi-{repo}-{container}-{tag}-pull'
+
 - project:
     name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-cnf-pull'
     <<: *functest-kubernetes-pi-params
     jobs:
       - 'functest-kubernetes-pi-{repo}-{container}-{tag}-rmi'
 
+- project:
+    name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-benchmarking-rmi'
+    <<: *functest-kubernetes-pi-params
+    container: 'functest-kubernetes-benchmarking'
+    exclude:
+      - tag: arm-hunter
+      - tag: arm64-hunter
+    jobs:
+      - 'functest-kubernetes-pi-{repo}-{container}-{tag}-rmi'
+
 - project:
     name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-cnf-rmi'
     <<: *functest-kubernetes-pi-params
       - functest-kubernetes-pi-run-containers:
           <<: *functest-kubernetes-pi-run-containers
 
-- job-template:
-    name: 'functest-kubernetes-pi-{repo}-functest-kubernetes-cnf-{tag}-k8s_vims-run'
-    properties:
-      - build-blocker:
-          use-build-blocker: true
-          blocking-level: 'GLOBAL'
-          blocking-jobs:
-            - '^functest-kubernetes(-pi)?-*-k8s_vims-run$'
-    parameters:
-      - functest-kubernetes-pi-slave:
-          slave: '{slave}'
-      - functest-kubernetes-pi-build_tag:
-          build_tag: ''
-      - functest-kubernetes-pi-DEPLOY_SCENARIO:
-          DEPLOY_SCENARIO: k8-nosdn-nofeature-noha
-      - functest-kubernetes-pi-DEBUG:
-          DEBUG: 'true'
-    builders:
-      - functest-kubernetes-pi-run-containers:
-          <<: *functest-kubernetes-pi-run-containers
-
 - project:
     name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-healthcheck'
     <<: *functest-kubernetes-pi-params
     jobs:
       - 'functest-kubernetes-pi-{repo}-{container}-{tag}-{test}-run'
 
+- project:
+    name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-benchmarking'
+    <<: *functest-kubernetes-pi-params
+    container: 'functest-kubernetes-benchmarking'
+    test:
+      - xrally_kubernetes_full
+    exclude:
+      - tag: arm-hunter
+      - tag: arm64-hunter
+    privileged: 'false'
+    network: bridge
+    jobs:
+      - 'functest-kubernetes-pi-{repo}-{container}-{tag}-{test}-run'
+
 - project:
     name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-cnf'
     <<: *functest-kubernetes-pi-params
     privileged: 'false'
     network: bridge
     jobs:
-      - 'functest-kubernetes-pi-{repo}-functest-kubernetes-cnf-{tag}-k8s_vims-run'
+      - 'functest-kubernetes-pi-{repo}-{container}-{tag}-{test}-run'
 
 
 - builder:
     name: 'functest-kubernetes-pi-{tag}-daily'
     project-type: multijob
     triggers:
-      - timed: '@daily'
+      - timed: '@weekly'
     parameters:
       - functest-kubernetes-pi-slave:
           slave: '{slave}'
     properties:
       - build-blocker:
           use-build-blocker: true
-          blocking-level: 'NODE'
+          blocking-level: 'GLOBAL'
           blocking-jobs:
             - '^functest-kubernetes(-pi)?-(arm.*-|amd64-)*[a-z]+-(daily|gate|check)$'
     builders:
               <<: *functest-kubernetes-pi-jobs
             - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-security-{tag}-rmi'
               <<: *functest-kubernetes-pi-jobs
+            - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-benchmarking-{tag}-rmi'
+              <<: *functest-kubernetes-pi-jobs
             - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-cnf-{tag}-rmi'
               <<: *functest-kubernetes-pi-jobs
       - multijob:
               <<: *functest-kubernetes-pi-jobs
             - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-security-{tag}-pull'
               <<: *functest-kubernetes-pi-jobs
+            - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-benchmarking-{tag}-pull'
+              <<: *functest-kubernetes-pi-jobs
             - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-cnf-{tag}-pull'
               <<: *functest-kubernetes-pi-jobs
       - multijob:
               <<: *functest-kubernetes-pi-jobs
             - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-security-{tag}-kube_bench-run'
               <<: *functest-kubernetes-pi-jobs
+      - multijob:
+          name: ollivier/functest-kubernetes-benchmarking:{tag}
+          projects:
+            - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-benchmarking-{tag}-xrally_kubernetes_full-run'
+              <<: *functest-kubernetes-pi-jobs
       - multijob:
           name: ollivier/functest-kubernetes-cnf:{tag}
           projects:
index db5c500..a96ba32 100644 (file)
     jobs:
       - 'functest-kubernetes-{repo}-{container}-{tag}-pull'
 
+- project:
+    name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-pull'
+    <<: *functest-kubernetes-params
+    container: 'functest-kubernetes-benchmarking'
+    jobs:
+      - 'functest-kubernetes-{repo}-{container}-{tag}-pull'
+
 - project:
     name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-pull'
     <<: *functest-kubernetes-params
     jobs:
       - 'functest-kubernetes-{repo}-{container}-{tag}-rmi'
 
+- project:
+    name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-rmi'
+    <<: *functest-kubernetes-params
+    container: 'functest-kubernetes-benchmarking'
+    jobs:
+      - 'functest-kubernetes-{repo}-{container}-{tag}-rmi'
+
 - project:
     name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-rmi'
     <<: *functest-kubernetes-params
       - functest-kubernetes-run-containers:
           <<: *functest-kubernetes-run-containers
 
-- job-template:
-    name: 'functest-kubernetes-{repo}-functest-kubernetes-cnf-{tag}-k8s_vims-run'
-    properties:
-      - build-blocker:
-          use-build-blocker: true
-          blocking-level: 'GLOBAL'
-          blocking-jobs:
-            - '^functest-kubernetes(-pi)?-*-k8s_vims-run$'
-    parameters:
-      - functest-kubernetes-slave:
-          slave: '{slave}'
-      - functest-kubernetes-build_tag:
-          build_tag: ''
-      - functest-kubernetes-DEPLOY_SCENARIO:
-          DEPLOY_SCENARIO: k8-nosdn-nofeature-noha
-      - functest-kubernetes-DEBUG:
-          DEBUG: 'true'
-    builders:
-      - functest-kubernetes-run-containers:
-          <<: *functest-kubernetes-run-containers
-
 - project:
     name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck'
     <<: *functest-kubernetes-params
     jobs:
       - 'functest-kubernetes-{repo}-{container}-{tag}-{test}-run'
 
+- project:
+    name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking'
+    <<: *functest-kubernetes-params
+    container: 'functest-kubernetes-benchmarking'
+    test:
+      - xrally_kubernetes_full
+    privileged: 'false'
+    network: bridge
+    jobs:
+      - 'functest-kubernetes-{repo}-{container}-{tag}-{test}-run'
+
 - project:
     name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf'
     <<: *functest-kubernetes-params
     privileged: 'false'
     network: bridge
     jobs:
-      - 'functest-kubernetes-{repo}-functest-kubernetes-cnf-{tag}-k8s_vims-run'
+      - 'functest-kubernetes-{repo}-{container}-{tag}-{test}-run'
 
 
 - builder:
     name: 'functest-kubernetes-{tag}-daily'
     project-type: multijob
     triggers:
-      - timed: '@daily'
+      - timed: '@weekly'
     parameters:
       - functest-kubernetes-slave:
           slave: '{slave}'
     properties:
       - build-blocker:
           use-build-blocker: true
-          blocking-level: 'NODE'
+          blocking-level: 'GLOBAL'
           blocking-jobs:
             - '^functest-kubernetes(-pi)?-(arm.*-|amd64-)*[a-z]+-(daily|gate|check)$'
     builders:
               <<: *functest-kubernetes-jobs
             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-rmi'
               <<: *functest-kubernetes-jobs
+            - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-pull'
+              <<: *functest-kubernetes-jobs
             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-rmi'
               <<: *functest-kubernetes-jobs
       - multijob:
               <<: *functest-kubernetes-jobs
             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-pull'
               <<: *functest-kubernetes-jobs
+            - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-pull'
+              <<: *functest-kubernetes-jobs
             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-pull'
               <<: *functest-kubernetes-jobs
       - multijob:
               <<: *functest-kubernetes-jobs
             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_bench-run'
               <<: *functest-kubernetes-jobs
+      - multijob:
+          name: opnfv/functest-kubernetes-benchmarking:{tag}
+          projects:
+            - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-xrally_kubernetes_full-run'
+              <<: *functest-kubernetes-jobs
       - multijob:
           name: opnfv/functest-kubernetes-cnf:{tag}
           projects:
       - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
       - 'functest-kubernetes-{repo}-{container}-{tag}-check'
 
+- project:
+    name: functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-build
+    <<: *functest-kubernetes-params
+    container: functest-kubernetes-benchmarking
+    ref_arg:
+    path: docker/benchmarking
+    exclude:
+      - tag: arm64-latest
+      - tag: arm64-kali
+      - tag: arm64-jerma
+      - tag: arm64-iruya
+      - tag: arm64-hunter
+    jobs:
+      - 'functest-kubernetes-{repo}-{container}-{tag}-gate'
+      - 'functest-kubernetes-{repo}-{container}-{tag}-check'
+
 - job-template:
     name: 'functest-kubernetes-{tag}-check'
     project-type: multijob
     properties:
       - build-blocker:
           use-build-blocker: true
-          blocking-level: 'NODE'
+          blocking-level: 'GLOBAL'
           blocking-jobs:
             - '^functest-kubernetes(-pi)?-(arm.*-|amd64-)*[a-z]+-(daily|gate|check)$'
     builders:
               <<: *functest-kubernetes-jobs
             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-rmi'
               <<: *functest-kubernetes-jobs
+            - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-rmi'
+              <<: *functest-kubernetes-jobs
             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-rmi'
               <<: *functest-kubernetes-jobs
       - multijob:
           projects:
             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-check'
               <<: *functest-kubernetes-jobs
+      - multijob:
+          name: build opnfv/functest-kubernetes-benchmarking
+          projects:
+            - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-check'
+              <<: *functest-kubernetes-jobs
       - multijob:
           name: opnfv/functest-kubernetes-healthcheck:{tag}
           projects:
               <<: *functest-kubernetes-jobs
             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_conformance-run'
               <<: *functest-kubernetes-jobs
+      - multijob:
+          name: opnfv/functest-kubernetes-benchmarking:{tag}
+          projects:
+            - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-xrally_kubernetes_full-run'
+              <<: *functest-kubernetes-jobs
       - multijob:
           name: opnfv/functest-kubernetes-security:{tag}
           projects:
     properties:
       - build-blocker:
           use-build-blocker: true
-          blocking-level: 'NODE'
+          blocking-level: 'GLOBAL'
           blocking-jobs:
             - '^functest-kubernetes(-pi)?-(arm.*-|amd64-)*[a-z]+-(daily|gate|check)$'
     builders:
               <<: *functest-kubernetes-jobs
             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-rmi'
               <<: *functest-kubernetes-jobs
+            - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-rmi'
+              <<: *functest-kubernetes-jobs
             - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-rmi'
               <<: *functest-kubernetes-jobs
       - multijob:
           projects:
             - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-gate'
               <<: *functest-kubernetes-jobs
+      - multijob:
+          name: build opnfv/functest-kubernetes-benchmarking
+          projects:
+            - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-gate'
+              <<: *functest-kubernetes-jobs
       - multijob:
           name: opnfv/functest-kubernetes-healthcheck:{tag}
           projects:
               <<: *functest-kubernetes-jobs
             - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_bench-run'
               <<: *functest-kubernetes-jobs
+      - multijob:
+          name: opnfv/functest-kubernetes-benchmarking:{tag}
+          projects:
+            - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-xrally_kubernetes_full-run'
+              <<: *functest-kubernetes-jobs
       - multijob:
           name: opnfv/functest-kubernetes-cnf:{tag}
           projects:
diff --git a/jjb/kuberef/Vagrantfile b/jjb/kuberef/Vagrantfile
new file mode 100644 (file)
index 0000000..61132f5
--- /dev/null
@@ -0,0 +1,70 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+##############################################################################
+# Copyright (c) 2020 Samsung Electronics
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+$no_proxy = ENV['NO_PROXY'] || ENV['no_proxy'] || "127.0.0.1,localhost"
+# NOTE: This range is based on vagrant-libvirt network definition CIDR 192.168.121.0/24
+(1..254).each do |i|
+  $no_proxy += ",192.168.121.#{i}"
+end
+$no_proxy += ",10.0.2.15"
+
+distros = {
+"centos_7" => "generic/centos7",
+"ubuntu_xenial" => "generic/ubuntu1604",
+"ubuntu_bionic" => "generic/ubuntu1804",
+"ubuntu_focal" => "generic/ubuntu2004",
+"opensuse" => "opensuse/Tumbleweed.x86_64"
+}
+
+Vagrant.configure("2") do |config|
+  config.vm.provider :libvirt
+  config.vm.provider :virtualbox
+
+  config.vm.synced_folder './', '/vagrant', type: "rsync",
+    rsync__args: ["--verbose", "--archive", "--delete", "-z"]
+  distros.each do |key,box|
+    config.vm.define key do |node|
+      node.vm.box = box
+      node.vm.box_check_update = false
+    end
+  end
+
+  config.vm.provision 'shell', privileged: false, inline: <<-SHELL
+    set -o errexit
+
+    cd /vagrant
+    ./kuberef-run-linting.sh
+  SHELL
+
+  [:virtualbox, :libvirt].each do |provider|
+  config.vm.provider provider do |p|
+      p.cpus = 1
+      p.memory = ENV['MEMORY'] || 512
+    end
+  end
+
+  config.vm.provider "virtualbox" do |v|
+    v.gui = false
+  end
+
+  config.vm.provider :libvirt do |v|
+    v.random_hostname = true
+    v.management_network_address = "192.168.121.0/24"
+  end
+
+  if ENV['http_proxy'] != nil and ENV['https_proxy'] != nil
+    if Vagrant.has_plugin?('vagrant-proxyconf')
+      config.proxy.http     = ENV['http_proxy'] || ENV['HTTP_PROXY'] || ""
+      config.proxy.https    = ENV['https_proxy'] || ENV['HTTPS_PROXY'] || ""
+      config.proxy.no_proxy = $no_proxy
+      config.proxy.enabled = { docker: false, git: false }
+    end
+  end
+end
index 4f681ac..084eac9 100755 (executable)
@@ -12,9 +12,51 @@ set -o nounset
 set -o pipefail
 set -o xtrace
 
+# _vercmp() - Function that compares two versions
+function _vercmp {
+    local v1=$1
+    local op=$2
+    local v2=$3
+    local result
+
+    # sort the two numbers with sort's "-V" argument.  Based on if v2
+    # swapped places with v1, we can determine ordering.
+    result=$(echo -e "$v1\n$v2" | sort -V | head -1)
+
+    case $op in
+        "==")
+            [ "$v1" = "$v2" ]
+            return
+            ;;
+        ">")
+            [ "$v1" != "$v2" ] && [ "$result" = "$v2" ]
+            return
+            ;;
+        "<")
+            [ "$v1" != "$v2" ] && [ "$result" = "$v1" ]
+            return
+            ;;
+        ">=")
+            [ "$result" = "$v2" ]
+            return
+            ;;
+        "<=")
+            [ "$result" = "$v1" ]
+            return
+            ;;
+        *)
+            die $LINENO "unrecognised op: $op"
+            ;;
+    esac
+}
+
+echo "Requirements validation"
 # shellcheck disable=SC1091
 source /etc/os-release || source /usr/lib/os-release
 
+min_shellcheck_version=0.4.0
+min_tox_version=3.5
+
 pkgs=""
 if ! command -v shellcheck; then
     case ${ID,,} in
@@ -26,20 +68,33 @@ if ! command -v shellcheck; then
         ;;
     esac
 fi
-
 if ! command -v pip; then
-    pkgs+=" python-pip"
+    case ${ID,,} in
+        *suse*|rhel|centos|fedora)
+            pkgs+=" python3-pip python3-setuptools"
+        ;;
+        ubuntu|debian)
+            if _vercmp "${VERSION_ID}" '<=' "18.04"; then
+                pkgs+=" python-pip python-setuptools"
+            else
+                pkgs+=" python3-pip python3-setuptools"
+            fi
+        ;;
+    esac
 fi
 
 if [ -n "$pkgs" ]; then
+    echo "Requirements installation"
     case ${ID,,} in
         *suse*)
             sudo zypper install --gpg-auto-import-keys refresh
-            sudo -H -E zypper install -y --no-recommends "$pkgs"
+            # shellcheck disable=SC2086
+            sudo -H -E zypper install -y --no-recommends $pkgs
         ;;
         ubuntu|debian)
             sudo apt-get update
-            sudo -H -E apt-get -y --no-install-recommends install "$pkgs"
+            # shellcheck disable=SC2086
+            sudo -H -E apt-get -y --no-install-recommends install $pkgs
         ;;
         rhel|centos|fedora)
             PKG_MANAGER=$(command -v dnf || command -v yum)
@@ -47,10 +102,29 @@ if [ -n "$pkgs" ]; then
                 sudo -H -E "$PKG_MANAGER" -q -y install epel-release
             fi
             sudo "$PKG_MANAGER" updateinfo --assumeyes
-            sudo -H -E "${PKG_MANAGER}" -y install "$pkgs"
+            # shellcheck disable=SC2086
+            sudo -H -E "$PKG_MANAGER" -y install $pkgs
         ;;
     esac
+    if ! command -v pip && command -v pip3 ; then
+        sudo ln -s "$(command -v pip3)" /usr/bin/pip
+    fi
+    sudo "$(command -v pip)" install --upgrade pip
 fi
 
+if ! command -v tox || _vercmp "$(tox --version | awk '{print $1}')" '<' "$min_tox_version"; then
+    sudo "$(command -v pip)" install tox==$min_tox_version
+fi
+
+echo "Server tools information:"
+python -V
+tox --version
+shellcheck -V
+
+echo "Linting process execution"
 tox -e lint
-bash -c 'shopt -s globstar; shellcheck  **/*.sh'
+if _vercmp "$(shellcheck --version | awk 'FNR==2{print $2}')" '<' "$min_shellcheck_version"; then
+    bash -c 'shopt -s globstar; shellcheck **/*.sh'
+else
+    bash -c 'shopt -s globstar; shellcheck -x **/*.sh'
+fi
index dfe6d72..cc55b1d 100644 (file)
 - job-template:
     name: '{project}-verify-lint-{stream}'
     scm:
-      - kuberef-project-scm
+      - git-scm-gerrit
+    parameters:
+      - label:
+          name: SLAVE_LABEL
+          default: 'opnfv-build'
+          all-nodes: false
+          node-eligibility: 'ignore-offline'
+      - project-parameter:
+          project: $GERRIT_PROJECT
+          branch: '{branch}'
+      - string:
+          name: GIT_BASE
+          default: https://gerrit.opnfv.org/gerrit/$PROJECT
+          description: 'Git URL to use on this Jenkins Slave'
     triggers:
       - gerrit:
           server-name: 'gerrit.opnfv.org'
     builders:
       - kubref-run-linting
 
-- scm:
-    name: kuberef-project-scm
-    scm:
-      - git:
-          url: https://gerrit.opnfv.org/gerrit/kuberef
-          refspec: '+refs/changes/*:refs/changes/*'
-          branches:
-            - '{ref}'
-
 - builder:
     name: kubref-run-linting
     builders:
diff --git a/jjb/kuberef/tox.ini b/jjb/kuberef/tox.ini
new file mode 100644 (file)
index 0000000..328a05d
--- /dev/null
@@ -0,0 +1,28 @@
+#!/bin/bash
+# SPDX-license-identifier: Apache-2.0
+##############################################################################
+# Copyright (c) 2020 Samsung Electronics
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+[tox]
+minversion = 3.5
+skipsdist = True
+envlist = lint
+
+[testenv]
+passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY
+usedevelop = False
+install_command = pip install {opts} {packages}
+
+[testenv:lint]
+deps =
+   {env:BASHATE_INSTALL_PATH:bashate}
+whitelist_externals = bash
+commands = bash -c "find {toxinidir} \
+   -not -path {toxinidir}/.tox/\* \
+# E006 check for lines longer than 79 columns
+   -name \*.sh | xargs bashate -v -iE006"