From: Trevor Bramwell Date: Mon, 31 Aug 2020 17:45:06 +0000 (+0000) Subject: Merge "Add jenkins job for running barometer tests on a daily basis" X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=commitdiff_plain;h=dff45d0810ed6b37fe437e7c58873cf2c923f612;hp=b51101aa47e59b784f8dc713622096fe5586de0d;p=releng.git Merge "Add jenkins job for running barometer tests on a daily basis" --- diff --git a/jjb/functest/functest-kubernetes-docker.yaml b/jjb/functest/functest-kubernetes-docker.yaml index d62691abf..92eecb945 100644 --- a/jjb/functest/functest-kubernetes-docker.yaml +++ b/jjb/functest/functest-kubernetes-docker.yaml @@ -38,6 +38,7 @@ - 'smoke' - 'cnf' - 'security' + - 'benchmarking' # settings for jobs run in multijob phases build-job-settings: &build-job-settings @@ -155,6 +156,22 @@ 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' diff --git a/jjb/functest/functest-kubernetes-pi.yaml b/jjb/functest/functest-kubernetes-pi.yaml index 4df9eef6c..f33d028f3 100644 --- a/jjb/functest/functest-kubernetes-pi.yaml +++ b/jjb/functest/functest-kubernetes-pi.yaml @@ -196,6 +196,16 @@ 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 @@ -239,6 +249,16 @@ 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 @@ -261,27 +281,6 @@ - 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 @@ -323,6 +322,20 @@ 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 @@ -332,7 +345,7 @@ 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: @@ -388,7 +401,7 @@ name: 'functest-kubernetes-pi-{tag}-daily' project-type: multijob triggers: - - timed: '@daily' + - timed: '@weekly' parameters: - functest-kubernetes-pi-slave: slave: '{slave}' @@ -401,7 +414,7 @@ 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: @@ -414,6 +427,8 @@ <<: *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: @@ -425,6 +440,8 @@ <<: *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: @@ -446,6 +463,11 @@ <<: *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: diff --git a/jjb/functest/functest-kubernetes.yaml b/jjb/functest/functest-kubernetes.yaml index db5c50037..a96ba32cd 100644 --- a/jjb/functest/functest-kubernetes.yaml +++ b/jjb/functest/functest-kubernetes.yaml @@ -211,6 +211,13 @@ 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 @@ -248,6 +255,13 @@ 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 @@ -270,27 +284,6 @@ - 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 @@ -326,6 +319,17 @@ 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 @@ -335,7 +339,7 @@ privileged: 'false' network: bridge jobs: - - 'functest-kubernetes-{repo}-functest-kubernetes-cnf-{tag}-k8s_vims-run' + - 'functest-kubernetes-{repo}-{container}-{tag}-{test}-run' - builder: @@ -391,7 +395,7 @@ name: 'functest-kubernetes-{tag}-daily' project-type: multijob triggers: - - timed: '@daily' + - timed: '@weekly' parameters: - functest-kubernetes-slave: slave: '{slave}' @@ -404,7 +408,7 @@ 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: @@ -417,6 +421,8 @@ <<: *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: @@ -428,6 +434,8 @@ <<: *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: @@ -449,6 +457,11 @@ <<: *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: @@ -600,6 +613,22 @@ - '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 @@ -617,7 +646,7 @@ 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: @@ -630,6 +659,8 @@ <<: *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: @@ -661,6 +692,11 @@ 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: @@ -673,6 +709,11 @@ <<: *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: @@ -727,7 +768,7 @@ 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: @@ -740,6 +781,8 @@ <<: *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: @@ -771,6 +814,11 @@ 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: @@ -790,6 +838,11 @@ <<: *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 index 000000000..61132f57b --- /dev/null +++ b/jjb/kuberef/Vagrantfile @@ -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 diff --git a/jjb/kuberef/kuberef-run-linting.sh b/jjb/kuberef/kuberef-run-linting.sh index 4f681ac53..084eac91c 100755 --- a/jjb/kuberef/kuberef-run-linting.sh +++ b/jjb/kuberef/kuberef-run-linting.sh @@ -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 diff --git a/jjb/kuberef/kuberef-verify-jobs.yaml b/jjb/kuberef/kuberef-verify-jobs.yaml index dfe6d7276..cc55b1db8 100644 --- a/jjb/kuberef/kuberef-verify-jobs.yaml +++ b/jjb/kuberef/kuberef-verify-jobs.yaml @@ -11,7 +11,20 @@ - 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' @@ -35,15 +48,6 @@ 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 index 000000000..328a05df0 --- /dev/null +++ b/jjb/kuberef/tox.ini @@ -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"