diff options
204 files changed, 7999 insertions, 18501 deletions
diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 9f7b77825..000000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "jjb/global-jjb"] - path = global-jjb - url = https://github.com/lfit/releng-global-jjb diff --git a/docs/ci/index.rst b/docs/ci/index.rst index 08f23ac2f..445552a82 100644 --- a/docs/ci/index.rst +++ b/docs/ci/index.rst @@ -8,10 +8,17 @@ OPNFV CI ======== -TBD +OPNFV continuous integration (CI) is ran on a variety of :doc:`hardware <resources>` +connected to Jenkins and mangaged through YAML files in the `Releng`_ +repository. These YAML files are read by `Jenkins Job Builder`_ to +generate and upload Jenkins jobs to the server. See the :doc:`User Guide +<user-guide>` for resources on getting started with CI for your project. .. toctree:: :maxdepth: 2 user-guide resources + +.. _Releng: https://gerrit.opnfv.org/gerrit/admin/repos/releng +.. _Jenkins Job Builder: https://docs.openstack.org/infra/jenkins-job-builder/ diff --git a/docs/ci/tables/ci-build-servers.rst b/docs/ci/tables/ci-build-servers.rst index b752a7b0f..b2f4893e3 100644 --- a/docs/ci/tables/ci-build-servers.rst +++ b/docs/ci/tables/ci-build-servers.rst @@ -18,19 +18,14 @@ - aarch64 - Ubuntu 16.04 - `Armband ENEA Team`_ - * - `ericsson-build4 <https://build.opnfv.org/ci/computer/ericsson-build4>`_ + * - `lf-build5 <https://build.opnfv.org/ci/computer/lf-build5>`_ - x86_64 - - Ubuntu 16.04 - - `Dianfeng Du`_ - * - `lf-build1 <https://build.opnfv.org/ci/computer/lf-build1>`_ - - x86_64 - - CentOS 7.4 + - Ubuntu 18.04 - `Linux Foundation`_ - * - `lf-build2 <https://build.opnfv.org/ci/computer/lf-build2>`_ + * - `lf-build6 <https://build.opnfv.org/ci/computer/lf-build6>`_ - x86_64 - - Ubuntu 16.10 + - CentOS 8 - `Linux Foundation`_ .. _Linux Foundation: helpdesk@opnfv.org -.. _Dianfeng Du: dianfeng.du@ericsson.com .. _Armband ENEA Team: armband@enea.com diff --git a/docs/ci/user-guide.rst b/docs/ci/user-guide.rst index 9c9b74a41..a56a3a1b0 100644 --- a/docs/ci/user-guide.rst +++ b/docs/ci/user-guide.rst @@ -8,4 +8,102 @@ CI User Guide ============= -TBD +Structure of the Releng Repository +---------------------------------- + +jjb/<projects> + Individual project CI configurations. + +jjb/global + Collection of JJB defaults and templates shared by all projects. + +global-jjb/ + Git submodule pointing to `Global-JJB`_, which provides a variety of + common `CI jobs`_ such as ReadTheDocs + (RTD) builds. + +docs/ + This documentation. + +releases/ + Release configuration files for creating stable branches and tagging + repositories and related automation scripts. + +utils/ + Collection of common utilities used by projects + +utils/build-server-ansible + Ansible configuration for managing build servers. This is where + projects can add packages they need for their CI to the servers. + + +CI Setup +-------- + +Basic Setup +~~~~~~~~~~~ + +All projects are required to have a **+1 Verified** vote in Gerrit in +order to merge their code. As a new project that comes in may not yet +know how they want to setup CI, they can pass this validation by +configuring a 'no-op' job to run against their changesets. + +1. Clone the `Releng`_ repository, using the *Clone with commit-msg + hook* command under the *SSH* tab (displayed after logging in and + uploading an SSH key): + + .. note:: + <gerrit username> in the command below will be your username in + Gerrit when viewing the command on the website. + + For example:: + + git clone "ssh://<gerrit username>@gerrit.opnfv.org:29418/releng" && \ + scp -p -P 29418 <gerrit username>@gerrit.opnfv.org:hooks/commit-msg "releng/.git/hooks/" + + +2. Create a project directory under the *jjb/* directory, and an intial + project YAML file:: + + mkdir jjb/myproject + touch jjb/myproject/myproject-ci-jobs.yaml + +3. Modify the project YAML file to add the basic validation job:: + + $EDITOR jjb/myproject/myproject-ci-jobs.yaml + + :: + + --- + - project: + name: myproject + project: + - '{name}' + jobs: + - '{project}-verify-basic' + +Docker Builds +~~~~~~~~~~~~~ + +Docker build are managed through the **jjb/releng/opnfv-docker.yaml** +file. Modify this file with your project details to enable docker builds +on merges and tags to your project repository:: + + --- + - project: + name: opnfv-docker' + + [...] + + dockerrepo: + [...] + - 'myproject': + project: 'myproject' + <<: *master + +.. _Jenkins Job Builder: https://docs.openstack.org/infra/jenkins-job-builder/ +.. _Releng: https://gerrit.opnfv.org/gerrit/admin/repos/releng +.. _Global-JJB: https://docs.releng.linuxfoundation.org/projects/global-jjb/en/latest/index.html +.. _CI jobs: https://docs.releng.linuxfoundation.org/projects/global-jjb/en/latest/index.html#global-jjb-templates +.. _opnfvdocs: https://docs.opnfv.org/en/latest/how-to-use-docs/index.html +.. _support.linuxfoundation.org: https://jira.linuxfoundation.org/plugins/servlet/theme/portal/2/create/145 diff --git a/docs/conf.py b/docs/conf.py index 86ab8c577..6cfaf6985 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1 +1,10 @@ -from docs_conf.conf import * # flake8: noqa +project = 'Releng' +extensions = [ + 'sphinx.ext.autosectionlabel' +] +html_theme = "piccolo_theme" +autosectionlabel_prefix_document = True +autosectionlabel_maxdepth = 4 +numfig = True +numfig_format = {'figure': 'Figure %s', 'table': 'Table %s', + 'code-block': 'Listing %s', 'section': 'Section %s'} diff --git a/docs/conf.yaml b/docs/conf.yaml deleted file mode 100644 index 749a4b1cf..000000000 --- a/docs/conf.yaml +++ /dev/null @@ -1,3 +0,0 @@ ---- -project_cfg: opnfv -project: releng diff --git a/docs/requirements.txt b/docs/requirements.txt deleted file mode 100644 index f26b04141..000000000 --- a/docs/requirements.txt +++ /dev/null @@ -1,3 +0,0 @@ -lfdocs-conf -sphinxcontrib-httpdomain -sphinx-opnfv-theme diff --git a/gitlab-templates/Docker.gitlab-ci.yml b/gitlab-templates/Docker.gitlab-ci.yml new file mode 100644 index 000000000..8acb5a00e --- /dev/null +++ b/gitlab-templates/Docker.gitlab-ci.yml @@ -0,0 +1,70 @@ +# Build and push a Docker image with CI/CD. +# Docker-in-Docker documentation: https://docs.gitlab.com/ee/ci/docker/using_docker_build.html +# +# By default builds are tagged with their branch name and pushed to the +# Gitlab Docker Registry. If DOCKER_TAG_LATEST is set to true, builds on +# the $DOCKER_LATEST_BRANCH are also tagged and pushed as ":latest" +# +# Scheduled builds can be enabled on a Gitlab schedule by specifying +# DOCKER_SCHEDULE = "true" in variables +--- +variables: + # Docker registry where images will be pushed + DOCKER_REGISTRY: "$CI_REGISTRY" + DOCKER_USERNAME: "$CI_REGISTRY_USER" + DOCKER_TOKEN: "$CI_REGISTRY_PASSWORD" + # Whether or to push images after they're built + DOCKER_PUSH: "true" + # TODO: Conditionally include '--file' to docker build to reduce need + # to always define FILEPATH when BUILDCONTEXT is set + DOCKER_FILEPATH: "Dockerfile" + DOCKER_BUILDCONTEXT: "." + DOCKER_IMAGE: "$CI_REGISTRY_IMAGE" + # If LATEST_TAG is set to true, builds on the $DOCKER_LATEST_BRANCH + # will be tagged and pushed with ":latest" + DOCKER_LATEST_TAG: "true" + DOCKER_LATEST_BRANCH: "$CI_DEFAULT_BRANCH" + +.docker-build-and-push: &docker-build-and-push + image: docker:latest + stage: deploy + interruptible: true + services: + - docker:dind + before_script: + - docker login -u "$DOCKER_USERNAME" -p "$DOCKER_TOKEN" $DOCKER_REGISTRY + script: + # Warm the cache by fetching the latest image. There's no guarantee + # the image will already exist on the runner. + - docker pull "$DOCKER_IMAGE:${CI_COMMIT_REF_SLUG}" || true + - > + docker build + --pull + --cache-from "$DOCKER_IMAGE:${CI_COMMIT_REF_SLUG}" + --file "$DOCKER_FILEPATH" + --tag "$DOCKER_IMAGE:${CI_COMMIT_REF_SLUG}" + $DOCKER_BUILDCONTEXT + - | + if [[ "$CI_COMMIT_BRANCH" == "$DOCKER_LATEST_BRANCH" && "$DOCKER_LATEST_TAG" == "true" ]]; then + docker tag "$DOCKER_IMAGE:${CI_COMMIT_REF_SLUG}" "$DOCKER_IMAGE" + fi + - | + # Push docker images if DOCKER_PUSH is set + if [[ "$DOCKER_PUSH" == "true" ]]; then + docker push "$DOCKER_IMAGE:${CI_COMMIT_REF_SLUG}" + # Push ':latest' if LATEST_TAG is true + if [[ "$CI_COMMIT_BRANCH" == "$DOCKER_LATEST_BRANCH" && "$DOCKER_LATEST_TAG" == "true" ]]; then + docker push "$DOCKER_IMAGE" + fi + fi + rules: + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' + when: never + # Gitlab does not have a way of specifying which jobs are scheduled, + # so an extra variable is needed in order to signify docker build + # should be picked up by the schedule run. + - if: $CI_PIPELINE_SOURCE == "schedule" && $DOCKER_SCHEDULE != "true" + when: never + - if: '$CI_COMMIT_BRANCH == $DOCKER_LATEST_BRANCH' + - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' + - if: $CI_COMMIT_TAG diff --git a/gitlab-templates/GoogleStorage.gitlab-ci.yml b/gitlab-templates/GoogleStorage.gitlab-ci.yml new file mode 100644 index 000000000..4ddf313d6 --- /dev/null +++ b/gitlab-templates/GoogleStorage.gitlab-ci.yml @@ -0,0 +1,35 @@ +# Template for uploading artifacts to Google Storage +# +# To upload artifacts to Google Storage, include this file in your +# .gitlab-ci.yml file with the following stanza: +# +# include: +# - project: anuket/releng +# file: '/gitlab-templates/GoogleStorage.gitlab-ci.yml' +# +# And append the following "- !reference.." line to the script portion +# of a job where artifacts should be uploaded: +# +# script: +# ... +# - !reference [.gsutil-install, script] +# ... +# +# After the script has been included `gsutil` will have access to the +# necessary Google Storage bucket. +--- +variables: + GS_URL: "artifacts.opnfv.org/$CI_PROJECT_NAME" + WORKSPACE: $CI_PROJECT_DIR + +.gsutil-install: &gsutil-install + script: + - | + if command -v dnf &> /dev/null; then + dnf -y install python3-pip + else + yum -y install python3-pip + fi + - python3 -m pip install -U pip + - python3 -m pip install gsutil + - echo "$GSUTIL_CONFIG" > ~/.boto diff --git a/gitlab-templates/RTD.gitlab-ci.yml b/gitlab-templates/RTD.gitlab-ci.yml new file mode 100644 index 000000000..59b455d69 --- /dev/null +++ b/gitlab-templates/RTD.gitlab-ci.yml @@ -0,0 +1,104 @@ +# ReadTheDocs Workflow +# +# This workflow adds these builds to projects: +# +# docs-build: +# Generate a html sphinx-build from the $DOCS_DIRECTORY +# +# docs-link-check: +# Run a non-blocking sphinx-build linkcheck against +# the $DOCS_DIRECTORY +# +# pages: +# Serve the built documentation as the Gitlab Pages site for +# the project +# +# Both docs-build and docs-link-check run on merge requests and merges +# to the default branch that modify files under the $DOCS_DIRECTORY, +# while pages only run on merges. +# +# Scheduled builds can be enabled when creating a schedule job and +# specifying DOCS_SCHEDULE = "true" in build variables +# +# If extra dependencies are needed for builds they will be installed +# from the $DOCS_REQUIREMENTS location. +--- +variables: + PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip" + DOCS_DIRECTORY: "docs" + DOCS_REQUIREMENTS: "$DOCS_DIRECTORY/requirements.txt" + STABLE_BRANCH: "stable/*" + +.docs-cache: &docs-cache + paths: + - .cache/pip + - venv/ + +.docs-before-script: &docs-before-script + - python -V + - pip install virtualenv + - virtualenv venv + - source venv/bin/activate + - pip install Sphinx + - | + if [ -f "$DOCS_REQUIREMENTS" ]; then + pip install -r "$DOCS_REQUIREMENTS" + fi + +docs-build: + stage: build + image: python:3 + before_script: + - *docs-before-script + script: | + sphinx-build -T -b html -D language=en $DOCS_DIRECTORY _build/html + cache: *docs-cache + artifacts: + paths: + - _build/html + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $DOCS_SCHEDULE != "true" + when: never + - if: $CI_PIPELINE_SOURCE == "merge_request_event" + changes: + - $DOCS_DIRECTORY/**/* + - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH + - if: $CI_COMMIT_BRANCH == $STABLE_BRANCH + +docs-link-check: + stage: test + allow_failure: true + needs: [] + image: python:3 + before_script: + - *docs-before-script + script: | + sphinx-build -T -b linkcheck $DOCS_DIRECTORY _build/linkcheck + cache: *docs-cache + artifacts: + paths: + - _build/linkcheck + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $DOCS_SCHEDULE != "true" + when: never + - if: $CI_PIPELINE_SOURCE == "merge_request_event" + changes: + - $DOCS_DIRECTORY/**/* + - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH + - if: $CI_COMMIT_BRANCH == $STABLE_BRANCH + +pages: + stage: deploy + image: python:3 + script: | + mkdir public + mv _build/html/* public/ + artifacts: + paths: + - public + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" + when: never + - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH + changes: + - $DOCS_DIRECTORY/**/* diff --git a/global-jjb b/global-jjb deleted file mode 160000 -Subproject 623134d6449371e8bc28095e53abc051bbb6b4a diff --git a/jjb/airship/airship-rtd-jobs.yaml b/jjb/airship/airship-rtd-jobs.yaml deleted file mode 100644 index d5f920b46..000000000 --- a/jjb/airship/airship-rtd-jobs.yaml +++ /dev/null @@ -1,24 +0,0 @@ ---- -- project: - name: airship-rtd - project: airship - project-name: airship - project-pattern: 'airship' - - stream: - - master: - branch: '{stream}' - disabled: false - - jerma: &jerma - branch: 'stable/{stream}' - disabled: false - - iruya: - branch: 'stable/{stream}' - disabled: false - - - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-airship/111032/' - rtd-token: 'b4e9b47eee6e1311e82e462f06cc4fb44a7534db' - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/airship/airship.yaml b/jjb/airship/airship.yaml deleted file mode 100644 index 8ba231a39..000000000 --- a/jjb/airship/airship.yaml +++ /dev/null @@ -1,637 +0,0 @@ ---- -- airship-jobs: &airship-jobs - name: 'airship-jobs' - current-parameters: true - -- airship-params: &airship-params - name: 'airship-params' - repo: 'opnfv' - port: - tag: - - latest: - branch: master - slave: intel-pod17 - functest_tag: iruya - -- parameter: - name: airship-slave - parameters: - - label: - name: slave - default: '{slave}' - -- parameter: - name: airship-build_tag - parameters: - - random-string: - name: build_tag - -- parameter: - name: airship-DEBUG - parameters: - - string: - name: DEBUG - default: 'true' - -- parameter: - name: airship-EXTERNAL_NETWORK - parameters: - - string: - name: EXTERNAL_NETWORK - default: public - -- airship-containers: &airship-containers - name: 'airship-containers' - repo: '{repo}' - port: '{port}' - container: '{container}' - functest_tag: '{functest_tag}' - -- airship-run-containers: &airship-run-containers - name: 'airship-run-containers' - <<: *airship-containers - test: '{test}' - -- builder: - name: airship-pull-containers - builders: - - shell: | - set +x - if [ "{repo}" = "_" ]; then - image={container}:{functest_tag} - elif [ "{port}" = "None" ]; then - image={repo}/{container}:{functest_tag} - else - image={repo}:{port}/{container}:{functest_tag} - fi - sudo docker pull $image - -- builder: - name: airship-run-containers - builders: - - shell: | - set +x - [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true - if [ "{repo}" = "_" ]; then - image={container}:{functest_tag} - elif [ "{port}" = "None" ]; then - image={repo}/{container}:{functest_tag} - else - image={repo}:{port}/{container}:{functest_tag} - fi - sudo docker run --rm --dns 172.17.0.2 \ - -e S3_ENDPOINT_URL=https://storage.googleapis.com \ - -e S3_DST_URL=s3://artifacts.opnfv.org/airship/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ - -e HTTP_DST_URL=http://artifacts.opnfv.org/airship/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ - -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ - -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \ - -e NODE_NAME=$slave \ - -e INSTALLER_TYPE=airship \ - -e BUILD_TAG=$BUILD_TAG \ - -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ - -v /home/opnfv/functest/.boto:/root/.boto \ - -e DEBUG=$DEBUG \ - -e EXTERNAL_NETWORK=$EXTERNAL_NETWORK \ - -e DEPLOY_SCENARIO=ovs \ - -e FLAVOR_EXTRA_SPECS=hw:mem_page_size:large \ - -e NEW_USER_ROLE=_member_ \ - -e NO_TENANT_NETWORK=true \ - -v /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file \ - -v /home/opnfv/functest/images:/home/opnfv/functest/images \ - -v /home/opnfv/functest/tempest_conf.yaml:/usr/lib/python3.6/\ - site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml \ - -v /home/opnfv/functest/singlevm.py:/usr/lib/python3.6/\ - site-packages/functest/core/singlevm.py \ - $image run_tests -t {test} -r -p - -- builder: - name: airship-remove-images - builders: - - shell: | - set +x - if [ "{repo}" = "_" ]; then - image={container}:{functest_tag} - elif [ "{port}" = "None" ]; then - image={repo}/{container}:{functest_tag} - else - image={repo}:{port}/{container}:{functest_tag} - fi - sudo docker rmi $image || true - -- builder: - name: airship-deploy - builders: - - shell: | - set +x - export TERM_OPTS=" " - sudo -H -E -u ubuntu bash -c 'tools/deploy.sh $slave deploy_site' - -- scm: - name: airship-scm - scm: - - git: - url: https://gerrit.opnfv.org/gerrit/airship - refspec: '+refs/changes/*:refs/changes/*' - branches: - - '{ref}' - -- parameter: - name: airship-branch - parameters: - - string: - name: branch - default: '{branch}' - -- job-template: - name: 'airship-deploy-daily-{tag}' - parameters: - - airship-slave: - slave: '{slave}' - - airship-branch: - branch: '{branch}' - scm: - - airship-scm: - ref: $branch - builders: - - airship-deploy - -- job-template: - name: 'airship-deploy-gate-{tag}' - parameters: - - airship-slave: - slave: '{slave}' - scm: - - airship-scm: - ref: $GERRIT_REFSPEC - builders: - - airship-deploy - -- project: - name: 'airship-deploy' - <<: *airship-params - jobs: - - 'airship-deploy-daily-{tag}' - - 'airship-deploy-gate-{tag}' - -- job-template: - name: 'airship-{repo}-{container}-{tag}-pull' - parameters: - - airship-slave: - slave: '{slave}' - builders: - - airship-pull-containers: - <<: *airship-containers - -- project: - name: 'airship-opnfv-functest-healthcheck-pull' - <<: *airship-params - container: 'functest-healthcheck' - jobs: - - 'airship-{repo}-{container}-{tag}-pull' - -- project: - name: 'airship-opnfv-functest-smoke-pull' - <<: *airship-params - container: 'functest-smoke' - jobs: - - 'airship-{repo}-{container}-{tag}-pull' - -- project: - name: 'airship-opnfv-functest-benchmarking-pull' - <<: *airship-params - container: 'functest-benchmarking' - jobs: - - 'airship-{repo}-{container}-{tag}-pull' - -- project: - name: 'airship-opnfv-functest-vnf-pull' - <<: *airship-params - container: 'functest-vnf' - jobs: - - 'airship-{repo}-{container}-{tag}-pull' - -- job-template: - name: 'airship-{repo}-{container}-{tag}-rmi' - parameters: - - airship-slave: - slave: '{slave}' - builders: - - airship-remove-images: - <<: *airship-containers - -- project: - name: 'airship-opnfv-functest-healthcheck-rmi' - <<: *airship-params - container: 'functest-healthcheck' - jobs: - - 'airship-{repo}-{container}-{tag}-rmi' - -- project: - name: 'airship-opnfv-functest-smoke-rmi' - <<: *airship-params - container: 'functest-smoke' - jobs: - - 'airship-{repo}-{container}-{tag}-rmi' - -- project: - name: 'airship-opnfv-functest-benchmarking-rmi' - <<: *airship-params - container: 'functest-benchmarking' - jobs: - - 'airship-{repo}-{container}-{tag}-rmi' - -- project: - name: 'airship-opnfv-functest-vnf-rmi' - <<: *airship-params - container: 'functest-vnf' - jobs: - - 'airship-{repo}-{container}-{tag}-rmi' - -- job-template: - name: 'airship-{repo}-{container}-{tag}-{test}-run' - parameters: - - airship-slave: - slave: '{slave}' - - airship-build_tag: - build_tag: '' - - airship-DEBUG: - DEBUG: 'true' - - airship-EXTERNAL_NETWORK: - EXTERNAL_NETWORK: public - builders: - - airship-run-containers: - <<: *airship-run-containers - -- project: - name: 'airship-opnfv-functest-healthcheck' - <<: *airship-params - container: 'functest-healthcheck' - test: - - connection_check - - tenantnetwork1 - - tenantnetwork2 - - vmready1 - - vmready2 - - singlevm1 - - singlevm2 - - vping_ssh - - vping_userdata - - cinder_test - - odl - - tempest_smoke - - tempest_horizon - jobs: - - 'airship-{repo}-{container}-{tag}-{test}-run' - -- project: - name: 'airship-opnfv-functest-smoke' - <<: *airship-params - container: 'functest-smoke' - test: - - tempest_neutron - - tempest_cinder - - tempest_keystone - - tempest_heat - - tempest_telemetry - - rally_sanity - - refstack_compute - - refstack_object - - refstack_platform - - tempest_full - - tempest_scenario - - tempest_slow - - patrole - - networking-bgpvpn - - networking-sfc - - tempest_barbican - - tempest_octavia - jobs: - - 'airship-{repo}-{container}-{tag}-{test}-run' - -- project: - name: 'airship-opnfv-functest-benchmarking' - <<: *airship-params - container: 'functest-benchmarking' - test: - - rally_full - - rally_jobs - - vmtp - - shaker - jobs: - - 'airship-{repo}-{container}-{tag}-{test}-run' - -- project: - name: 'airship-opnfv-functest-vnf' - <<: *airship-params - container: 'functest-vnf' - test: - - cloudify - - cloudify_ims - - heat_ims - - vyos_vrouter - - juju_epc - jobs: - - 'airship-{repo}-{container}-{tag}-{test}-run' - -- builder: - name: airship-zip - builders: - - shell: | - set +x - [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true - if [ "{repo}" = "_" ]; then - image={container}:{functest_tag} - elif [ "{port}" = "None" ]; then - image={repo}/{container}:{functest_tag} - else - image={repo}:{port}/{container}:{functest_tag} - fi - sudo docker run --rm --dns 172.17.0.2 \ - -e S3_ENDPOINT_URL=https://storage.googleapis.com \ - -e S3_DST_URL=s3://artifacts.opnfv.org/airship \ - -e HTTP_DST_URL=http://artifacts.opnfv.org/airship/ \ - -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ - -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \ - -e BUILD_TAG=$BUILD_TAG \ - -e DEPLOY_SCENARIO=ovs \ - -e FLAVOR_EXTRA_SPECS=hw:mem_page_size:large \ - -e NEW_USER_ROLE=_member_ \ - -e NO_TENANT_NETWORK=true \ - -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ - -v /home/opnfv/functest/.boto:/root/.boto \ - $image zip_campaign - -- job-template: - name: 'airship-{tag}-zip' - parameters: - - airship-build_tag: - build_tag: '' - builders: - - airship-zip: - <<: *airship-containers - -- project: - name: 'airship-{tag}-zip' - <<: *airship-params - container: 'functest-healthcheck' - jobs: - - 'airship-{tag}-zip' - -- job-template: - name: 'airship-{tag}-daily' - project-type: multijob - triggers: - - timed: '0 6 * * 3,6' - parameters: - - airship-slave: - slave: '{slave}' - - airship-build_tag: - build_tag: '' - - airship-branch: - branch: 'master' - - airship-DEBUG: - DEBUG: 'true' - - airship-EXTERNAL_NETWORK: - EXTERNAL_NETWORK: public - properties: - - build-blocker: - use-build-blocker: true - blocking-level: 'NODE' - blocking-jobs: - - '^airship-{tag}-(daily|gate)$' - builders: - - multijob: - name: deploy - projects: - - name: 'airship-deploy-daily-{tag}' - <<: *airship-jobs - - multijob: - name: remove former images - projects: - - name: 'airship-opnfv-functest-healthcheck-{tag}-rmi' - <<: *airship-jobs - - name: 'airship-opnfv-functest-smoke-{tag}-rmi' - <<: *airship-jobs - - name: 'airship-opnfv-functest-benchmarking-{tag}-rmi' - <<: *airship-jobs - - name: 'airship-opnfv-functest-vnf-{tag}-rmi' - <<: *airship-jobs - - multijob: - name: pull containers - projects: - - name: 'airship-opnfv-functest-healthcheck-{tag}-pull' - <<: *airship-jobs - - name: 'airship-opnfv-functest-smoke-{tag}-pull' - <<: *airship-jobs - - name: 'airship-opnfv-functest-benchmarking-{tag}-pull' - <<: *airship-jobs - - name: 'airship-opnfv-functest-vnf-{tag}-pull' - <<: *airship-jobs - - multijob: - name: opnfv/functest-healthcheck:{functest_tag} - condition: ALWAYS - projects: - - name: 'airship-opnfv-functest-healthcheck-{tag}-connection_check-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-healthcheck-{tag}-vmready1-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-healthcheck-{tag}-vmready2-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-healthcheck-{tag}-singlevm1-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-healthcheck-{tag}-singlevm2-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-healthcheck-{tag}-vping_ssh-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-healthcheck-{tag}-vping_userdata-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-healthcheck-{tag}-cinder_test-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-healthcheck-{tag}-odl-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-healthcheck-{tag}-tempest_smoke-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-healthcheck-{tag}-tempest_horizon-run' - <<: *airship-jobs - - multijob: - name: opnfv/functest-smoke:{functest_tag} - condition: ALWAYS - projects: - - name: 'airship-opnfv-functest-smoke-{tag}-tempest_neutron-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-smoke-{tag}-tempest_cinder-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-smoke-{tag}-tempest_keystone-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-smoke-{tag}-tempest_heat-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-smoke-{tag}-tempest_telemetry-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-smoke-{tag}-rally_sanity-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-smoke-{tag}-refstack_compute-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-smoke-{tag}-refstack_object-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-smoke-{tag}-refstack_platform-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-smoke-{tag}-tempest_full-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-smoke-{tag}-tempest_scenario-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-smoke-{tag}-tempest_slow-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-smoke-{tag}-patrole-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-smoke-{tag}-networking-bgpvpn-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-smoke-{tag}-networking-sfc-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-smoke-{tag}-tempest_barbican-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-smoke-{tag}-tempest_octavia-run' - <<: *airship-jobs - - multijob: - name: opnfv/functest-benchmarking:{functest_tag} - condition: ALWAYS - projects: - - name: 'airship-opnfv-functest-benchmarking-{tag}-rally_full-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-benchmarking-{tag}-rally_jobs-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-benchmarking-{tag}-vmtp-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-benchmarking-{tag}-shaker-run' - <<: *airship-jobs - - multijob: - name: opnfv/functest-vnf:{functest_tag} - condition: ALWAYS - execution-type: SEQUENTIALLY - projects: - - name: 'airship-opnfv-functest-vnf-{tag}-cloudify-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-vnf-{tag}-cloudify_ims-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-vnf-{tag}-heat_ims-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-vnf-{tag}-vyos_vrouter-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-vnf-{tag}-juju_epc-run' - <<: *airship-jobs - - multijob: - name: dump all campaign data - projects: - - name: 'airship-{tag}-zip' - <<: *airship-jobs - -- trigger: - name: airship-patchset-created - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: 'airship' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - skip-vote: - successful: false - failed: false - unstable: false - notbuilt: false - -- job-template: - name: 'airship-{tag}-gate' - project-type: multijob - triggers: - - airship-patchset-created: - branch: '{branch}' - parameters: - - airship-slave: - slave: '{slave}' - - airship-build_tag: - build_tag: '' - - airship-DEBUG: - DEBUG: 'true' - - airship-EXTERNAL_NETWORK: - EXTERNAL_NETWORK: public - properties: - - build-blocker: - use-build-blocker: true - blocking-level: 'NODE' - blocking-jobs: - - '^airship-{tag}-(daily|gate)$' - builders: - - multijob: - name: deploy - projects: - - name: 'airship-deploy-gate-{tag}' - <<: *airship-jobs - - multijob: - name: remove former images - projects: - - name: 'airship-opnfv-functest-healthcheck-{tag}-rmi' - <<: *airship-jobs - - name: 'airship-opnfv-functest-smoke-{tag}-rmi' - <<: *airship-jobs - - multijob: - name: pull containers - projects: - - name: 'airship-opnfv-functest-healthcheck-{tag}-pull' - <<: *airship-jobs - - name: 'airship-opnfv-functest-smoke-{tag}-pull' - <<: *airship-jobs - - multijob: - name: opnfv/functest-healthcheck:{functest_tag} - projects: - - name: 'airship-opnfv-functest-healthcheck-{tag}-connection_check-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-healthcheck-{tag}-vmready1-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-healthcheck-{tag}-vmready2-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-healthcheck-{tag}-singlevm1-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-healthcheck-{tag}-singlevm2-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-healthcheck-{tag}-vping_ssh-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-healthcheck-{tag}-cinder_test-run' - <<: *airship-jobs - - name: 'airship-opnfv-functest-healthcheck-{tag}-tempest_smoke-run' - <<: *airship-jobs - - multijob: - name: opnfv/functest-smoke:{functest_tag} - projects: - - name: 'airship-opnfv-functest-smoke-{tag}-tempest_keystone-run' - <<: *airship-jobs - -- project: - name: 'airship' - <<: *airship-params - jobs: - - 'airship-{tag}-daily' - - 'airship-{tag}-gate' - -- view: - name: airship - view-type: list - columns: - - status - - weather - - job - - last-success - - last-failure - - last-duration - regex: ^airship-[a-z]+-(daily|check|gate)$ diff --git a/jjb/airship/cntt.yaml b/jjb/airship/cntt.yaml deleted file mode 100644 index f886c829e..000000000 --- a/jjb/airship/cntt.yaml +++ /dev/null @@ -1,770 +0,0 @@ ---- -- cntt-jobs: &cntt-jobs - name: 'cntt-jobs' - current-parameters: true - -- cntt-params: &cntt-params - name: 'cntt-params' - repo: 'opnfv' - port: - tag: - - latest: - branch: master - slave: intel-pod15 - functest_tag: iruya - -- parameter: - name: cntt-slave - parameters: - - label: - name: slave - default: '{slave}' - -- parameter: - name: cntt-build_tag - parameters: - - random-string: - name: build_tag - -- parameter: - name: cntt-DEBUG - parameters: - - string: - name: DEBUG - default: 'false' - -- parameter: - name: cntt-EXTERNAL_NETWORK - parameters: - - string: - name: EXTERNAL_NETWORK - default: public - -- cntt-containers: &cntt-containers - name: 'cntt-containers' - repo: '{repo}' - port: '{port}' - container: '{container}' - functest_tag: '{functest_tag}' - -- cntt-run-containers: &cntt-run-containers - name: 'cntt-run-containers' - <<: *cntt-containers - test: '{test}' - -- builder: - name: cntt-pull-containers - builders: - - shell: | - set +x - if [ "{repo}" = "_" ]; then - image={container}:{functest_tag} - elif [ "{port}" = "None" ]; then - image={repo}/{container}:{functest_tag} - else - image={repo}:{port}/{container}:{functest_tag} - fi - sudo docker pull $image - -- builder: - name: cntt-run-containers - builders: - - shell: | - set +x - [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true - if [ "{repo}" = "_" ]; then - image={container}:{functest_tag} - elif [ "{port}" = "None" ]; then - image={repo}/{container}:{functest_tag} - else - image={repo}:{port}/{container}:{functest_tag} - fi - sudo docker run --rm \ - -e S3_ENDPOINT_URL=https://storage.googleapis.com \ - -e S3_DST_URL=s3://artifacts.opnfv.org/cntt/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ - -e HTTP_DST_URL=http://artifacts.opnfv.org/cntt/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ - -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ - -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \ - -e NODE_NAME=$slave \ - -e INSTALLER_TYPE=cntt \ - -e BUILD_TAG=$BUILD_TAG \ - -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ - -v /home/opnfv/functest/.boto:/root/.boto \ - -e DEBUG=$DEBUG \ - -e EXTERNAL_NETWORK=$EXTERNAL_NETWORK \ - -e DEPLOY_SCENARIO=os-nosdn-nofeature-ha \ - -v /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file \ - -v /home/opnfv/functest/images:/home/opnfv/functest/images \ - -v /home/opnfv/functest/tempest_conf.yaml:/usr/lib/python2.7/\ - site-packages/functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml \ - $image run_tests -t {test} -r -p - -- builder: - name: cntt-remove-images - builders: - - shell: | - set +x - if [ "{repo}" = "_" ]; then - image={container}:{functest_tag} - elif [ "{port}" = "None" ]; then - image={repo}/{container}:{functest_tag} - else - image={repo}:{port}/{container}:{functest_tag} - fi - sudo docker rmi $image || true - -- builder: - name: cntt-deploy - builders: - - shell: | - set +x - export TERM_OPTS=" " - sudo -H -E -u opnfv bash -c 'tools/deploy.sh $slave deploy_site' - -- scm: - name: cntt-scm - scm: - - git: - url: https://gerrit.opnfv.org/gerrit/airship - refspec: '+refs/changes/*:refs/changes/*' - branches: - - '{ref}' - -- parameter: - name: cntt-branch - parameters: - - string: - name: branch - default: '{branch}' - -- job-template: - name: 'cntt-deploy-daily-{tag}' - parameters: - - cntt-slave: - slave: '{slave}' - - cntt-branch: - branch: '{branch}' - scm: - - cntt-scm: - ref: $branch - builders: - - cntt-deploy - -- job-template: - name: 'cntt-deploy-gate-{tag}' - parameters: - - cntt-slave: - slave: '{slave}' - scm: - - cntt-scm: - ref: $GERRIT_REFSPEC - builders: - - cntt-deploy - -- project: - name: 'cntt-deploy' - <<: *cntt-params - jobs: - - 'cntt-deploy-daily-{tag}' - - 'cntt-deploy-gate-{tag}' - -- job-template: - name: 'cntt-{repo}-{container}-{tag}-pull' - parameters: - - cntt-slave: - slave: '{slave}' - builders: - - cntt-pull-containers: - <<: *cntt-containers - -- project: - name: 'cntt-opnfv-functest-healthcheck-pull' - <<: *cntt-params - container: 'functest-healthcheck' - jobs: - - 'cntt-{repo}-{container}-{tag}-pull' - -- project: - name: 'cntt-opnfv-functest-smoke-pull' - <<: *cntt-params - container: 'functest-smoke' - jobs: - - 'cntt-{repo}-{container}-{tag}-pull' - -- project: - name: 'cntt-opnfv-functest-smoke-cntt-pull' - <<: *cntt-params - container: 'functest-smoke-cntt' - jobs: - - 'cntt-{repo}-{container}-{tag}-pull' - -- project: - name: 'cntt-opnfv-functest-benchmarking-pull' - <<: *cntt-params - container: 'functest-benchmarking' - jobs: - - 'cntt-{repo}-{container}-{tag}-pull' - -- project: - name: 'cntt-opnfv-functest-benchmarking-cntt-pull' - <<: *cntt-params - container: 'functest-benchmarking-cntt' - jobs: - - 'cntt-{repo}-{container}-{tag}-pull' - -- project: - name: 'cntt-opnfv-functest-vnf-pull' - <<: *cntt-params - container: 'functest-vnf' - jobs: - - 'cntt-{repo}-{container}-{tag}-pull' - -- job-template: - name: 'cntt-{repo}-{container}-{tag}-rmi' - parameters: - - cntt-slave: - slave: '{slave}' - builders: - - cntt-remove-images: - <<: *cntt-containers - -- project: - name: 'cntt-opnfv-functest-healthcheck-rmi' - <<: *cntt-params - container: 'functest-healthcheck' - jobs: - - 'cntt-{repo}-{container}-{tag}-rmi' - -- project: - name: 'cntt-opnfv-functest-smoke-rmi' - <<: *cntt-params - container: 'functest-smoke' - jobs: - - 'cntt-{repo}-{container}-{tag}-rmi' - -- project: - name: 'cntt-opnfv-functest-smoke-cntt-rmi' - <<: *cntt-params - container: 'functest-smoke-cntt' - jobs: - - 'cntt-{repo}-{container}-{tag}-rmi' - -- project: - name: 'cntt-opnfv-functest-benchmarking-rmi' - <<: *cntt-params - container: 'functest-benchmarking' - jobs: - - 'cntt-{repo}-{container}-{tag}-rmi' - -- project: - name: 'cntt-opnfv-functest-benchmarking-cntt-rmi' - <<: *cntt-params - container: 'functest-benchmarking-cntt' - jobs: - - 'cntt-{repo}-{container}-{tag}-rmi' - -- project: - name: 'cntt-opnfv-functest-vnf-rmi' - <<: *cntt-params - container: 'functest-vnf' - jobs: - - 'cntt-{repo}-{container}-{tag}-rmi' - -- job-template: - name: 'cntt-{repo}-{container}-{tag}-{test}-run' - parameters: - - cntt-slave: - slave: '{slave}' - - cntt-build_tag: - build_tag: '' - - cntt-DEBUG: - DEBUG: 'false' - - cntt-EXTERNAL_NETWORK: - EXTERNAL_NETWORK: public - builders: - - cntt-run-containers: - <<: *cntt-run-containers - -- project: - name: 'cntt-opnfv-functest-healthcheck' - <<: *cntt-params - container: 'functest-healthcheck' - test: - - connection_check - - tenantnetwork1 - - tenantnetwork2 - - vmready1 - - vmready2 - - singlevm1 - - singlevm2 - - vping_ssh - - vping_userdata - - cinder_test - - odl - - tempest_smoke - - tempest_horizon - jobs: - - 'cntt-{repo}-{container}-{tag}-{test}-run' - -- project: - name: 'cntt-opnfv-functest-smoke' - <<: *cntt-params - container: 'functest-smoke' - test: - - tempest_neutron - - tempest_cinder - - tempest_keystone - - tempest_heat - - tempest_telemetry - - rally_sanity - - refstack_compute - - refstack_object - - refstack_platform - - tempest_full - - tempest_scenario - - tempest_slow - - patrole - - networking-bgpvpn - - networking-sfc - - tempest_barbican - - tempest_octavia - jobs: - - 'cntt-{repo}-{container}-{tag}-{test}-run' - -- project: - name: 'cntt-opnfv-functest-smoke-cntt' - <<: *cntt-params - container: 'functest-smoke-cntt' - test: - - tempest_neutron_cntt - - tempest_cinder_cntt - - tempest_keystone_cntt - - tempest_heat_cntt - - rally_sanity_cntt - - tempest_full_cntt - - tempest_scenario_cntt - - tempest_slow_cntt - jobs: - - 'cntt-{repo}-{container}-{tag}-{test}-run' - -- project: - name: 'cntt-opnfv-functest-benchmarking' - <<: *cntt-params - container: 'functest-benchmarking' - test: - - rally_full - - rally_jobs - - vmtp - - shaker - jobs: - - 'cntt-{repo}-{container}-{tag}-{test}-run' - -- project: - name: 'cntt-opnfv-functest-benchmarking-cntt' - <<: *cntt-params - container: 'functest-benchmarking-cntt' - test: - - rally_full_cntt - - rally_jobs_cntt - jobs: - - 'cntt-{repo}-{container}-{tag}-{test}-run' - -- project: - name: 'cntt-opnfv-functest-vnf' - <<: *cntt-params - container: 'functest-vnf' - test: - - cloudify - - cloudify_ims - - heat_ims - - vyos_vrouter - - juju_epc - jobs: - - 'cntt-{repo}-{container}-{tag}-{test}-run' - -- builder: - name: cntt-zip - builders: - - shell: | - set +x - [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true - if [ "{repo}" = "_" ]; then - image={container}:{functest_tag} - elif [ "{port}" = "None" ]; then - image={repo}/{container}:{functest_tag} - else - image={repo}:{port}/{container}:{functest_tag} - fi - sudo docker run --rm \ - -e S3_ENDPOINT_URL=https://storage.googleapis.com \ - -e S3_DST_URL=s3://artifacts.opnfv.org/cntt \ - -e HTTP_DST_URL=http://artifacts.opnfv.org/cntt/ \ - -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ - -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \ - -e BUILD_TAG=$BUILD_TAG \ - -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ - -v /home/opnfv/functest/.boto:/root/.boto \ - $image zip_campaign - -- job-template: - name: 'cntt-{tag}-zip' - parameters: - - cntt-build_tag: - build_tag: '' - builders: - - cntt-zip: - <<: *cntt-containers - -- project: - name: 'cntt-{tag}-zip' - <<: *cntt-params - container: 'functest-healthcheck' - jobs: - - 'cntt-{tag}-zip' - -- job-template: - name: 'cntt-{tag}-daily' - disabled: true - project-type: multijob - triggers: - - timed: '@daily' - parameters: - - cntt-slave: - slave: '{slave}' - - cntt-build_tag: - build_tag: '' - - cntt-branch: - branch: 'master' - - cntt-DEBUG: - DEBUG: 'false' - - cntt-EXTERNAL_NETWORK: - EXTERNAL_NETWORK: public - properties: - - build-blocker: - use-build-blocker: true - blocking-level: 'NODE' - blocking-jobs: - - '^cntt-{tag}-(daily|gate)$' - builders: - - multijob: - name: deploy - projects: - - name: 'cntt-deploy-daily-{tag}' - <<: *cntt-jobs - - multijob: - name: remove former images - projects: - - name: 'cntt-opnfv-functest-healthcheck-{tag}-rmi' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-{tag}-rmi' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-cntt-{tag}-rmi' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-benchmarking-{tag}-rmi' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-benchmarking-cntt-{tag}-rmi' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-vnf-{tag}-rmi' - <<: *cntt-jobs - - multijob: - name: pull containers - projects: - - name: 'cntt-opnfv-functest-healthcheck-{tag}-pull' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-{tag}-pull' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-cntt-{tag}-pull' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-benchmarking-{tag}-pull' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-benchmarking-cntt-{tag}-pull' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-vnf-{tag}-pull' - <<: *cntt-jobs - - multijob: - name: opnfv/functest-healthcheck:{functest_tag} - condition: ALWAYS - projects: - - name: 'cntt-opnfv-functest-healthcheck-{tag}-connection_check-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-healthcheck-{tag}-vmready1-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-healthcheck-{tag}-vmready2-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-healthcheck-{tag}-singlevm1-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-healthcheck-{tag}-singlevm2-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-healthcheck-{tag}-vping_ssh-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-healthcheck-{tag}-vping_userdata-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-healthcheck-{tag}-cinder_test-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-healthcheck-{tag}-odl-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-healthcheck-{tag}-tempest_smoke-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-healthcheck-{tag}-tempest_horizon-run' - <<: *cntt-jobs - - multijob: - name: opnfv/functest-smoke:{functest_tag} - condition: ALWAYS - projects: - - name: 'cntt-opnfv-functest-smoke-{tag}-tempest_neutron-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-{tag}-tempest_cinder-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-{tag}-tempest_keystone-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-{tag}-tempest_heat-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-{tag}-tempest_telemetry-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-{tag}-rally_sanity-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-{tag}-refstack_compute-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-{tag}-refstack_object-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-{tag}-refstack_platform-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-{tag}-tempest_full-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-{tag}-tempest_scenario-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-{tag}-tempest_slow-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-{tag}-patrole-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-{tag}-networking-bgpvpn-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-{tag}-networking-sfc-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-{tag}-tempest_barbican-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-{tag}-tempest_octavia-run' - <<: *cntt-jobs - - multijob: - name: opnfv/functest-smoke-cntt:{tag} - condition: ALWAYS - projects: - - name: 'cntt-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run' - <<: *cntt-jobs - - multijob: - name: opnfv/functest-benchmarking:{functest_tag} - condition: ALWAYS - projects: - - name: 'cntt-opnfv-functest-benchmarking-{tag}-rally_full-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-benchmarking-{tag}-rally_jobs-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-benchmarking-{tag}-vmtp-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-benchmarking-{tag}-shaker-run' - <<: *cntt-jobs - - multijob: - name: opnfv/functest-benchmarking-cntt:{functest_tag} - condition: ALWAYS - projects: - - name: 'cntt-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run' - <<: *cntt-jobs - - multijob: - name: opnfv/functest-vnf:{functest_tag} - condition: ALWAYS - execution-type: SEQUENTIALLY - projects: - - name: 'cntt-opnfv-functest-vnf-{tag}-cloudify-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-vnf-{tag}-cloudify_ims-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-vnf-{tag}-heat_ims-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-vnf-{tag}-vyos_vrouter-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-vnf-{tag}-juju_epc-run' - <<: *cntt-jobs - - multijob: - name: dump all campaign data - projects: - - name: 'cntt-{tag}-zip' - <<: *cntt-jobs - -- trigger: - name: cntt-patchset-created - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: 'airship' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - skip-vote: - successful: false - failed: false - unstable: false - notbuilt: false - -- job-template: - name: 'cntt-{tag}-gate' - disabled: true - project-type: multijob - triggers: - - cntt-patchset-created: - branch: '{branch}' - parameters: - - cntt-slave: - slave: '{slave}' - - cntt-build_tag: - build_tag: '' - - cntt-DEBUG: - DEBUG: 'false' - - cntt-EXTERNAL_NETWORK: - EXTERNAL_NETWORK: public - properties: - - build-blocker: - use-build-blocker: true - blocking-level: 'NODE' - blocking-jobs: - - '^cntt-{tag}-(daily|gate)$' - builders: - - multijob: - name: deploy - projects: - - name: 'cntt-deploy-gate-{tag}' - <<: *cntt-jobs - - multijob: - name: remove former images - projects: - - name: 'cntt-opnfv-functest-healthcheck-{tag}-rmi' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-{tag}-rmi' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-cntt-{tag}-rmi' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-benchmarking-{tag}-rmi' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-benchmarking-cntt-{tag}-rmi' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-vnf-{tag}-rmi' - <<: *cntt-jobs - - multijob: - name: pull containers - projects: - - name: 'cntt-opnfv-functest-healthcheck-{tag}-pull' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-{tag}-pull' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-cntt-{tag}-pull' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-benchmarking-{tag}-pull' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-benchmarking-cntt-{tag}-pull' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-vnf-{tag}-pull' - <<: *cntt-jobs - - multijob: - name: opnfv/functest-healthcheck:{functest_tag} - projects: - - name: 'cntt-opnfv-functest-healthcheck-{tag}-connection_check-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-healthcheck-{tag}-vmready1-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-healthcheck-{tag}-vmready2-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-healthcheck-{tag}-singlevm1-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-healthcheck-{tag}-singlevm2-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-healthcheck-{tag}-vping_ssh-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-healthcheck-{tag}-vping_userdata-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-healthcheck-{tag}-cinder_test-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-healthcheck-{tag}-odl-run' - <<: *cntt-jobs - - multijob: - name: opnfv/functest-smoke:{functest_tag} - projects: - - name: 'cntt-opnfv-functest-smoke-{tag}-tempest_scenario-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-{tag}-networking-bgpvpn-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-{tag}-networking-sfc-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-smoke-{tag}-tempest_barbican-run' - <<: *cntt-jobs - - multijob: - name: opnfv/functest-benchmarking:{functest_tag} - projects: - - name: 'cntt-opnfv-functest-benchmarking-{tag}-vmtp-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-benchmarking-{tag}-shaker-run' - <<: *cntt-jobs - - multijob: - name: opnfv/functest-vnf:{functest_tag} - condition: ALWAYS - execution-type: SEQUENTIALLY - projects: - - name: 'cntt-opnfv-functest-vnf-{tag}-cloudify-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-vnf-{tag}-cloudify_ims-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-vnf-{tag}-heat_ims-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-vnf-{tag}-vyos_vrouter-run' - <<: *cntt-jobs - - name: 'cntt-opnfv-functest-vnf-{tag}-juju_epc-run' - <<: *cntt-jobs - -- project: - name: 'cntt' - <<: *cntt-params - jobs: - - 'cntt-{tag}-daily' - - 'cntt-{tag}-gate' - -- view: - name: cntt - view-type: list - columns: - - status - - weather - - job - - last-success - - last-failure - - last-duration - regex: ^cntt-[a-z]+-(daily|check|gate)$ diff --git a/jjb/armband/armband-ci-jobs.yaml b/jjb/armband/armband-ci-jobs.yaml deleted file mode 100644 index 4f2dc5eb3..000000000 --- a/jjb/armband/armband-ci-jobs.yaml +++ /dev/null @@ -1,128 +0,0 @@ ---- -# jenkins job templates for Armband -- project: - name: 'armband-ci' - project: 'armband' - installer: 'fuel' - - # ------------------------------- - # BRANCH ANCHORS - # ------------------------------- - master: &master - stream: master - branch: '{stream}' - gs-pathname: '' - disabled: true - functest_docker_tag: hunter - hunter: &hunter - stream: hunter - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: true - functest_docker_tag: '{stream}' - # ------------------------------- - # POD, INSTALLER, AND BRANCH MAPPING - # ------------------------------- - # CI POD's - # ------------------------------- - pod: - # ------------------------------- - # hunter - # ------------------------------- - - armband-baremetal: - deploy-type: 'baremetal' - slave-label: 'armband-{deploy-type}' - <<: *hunter - # ------------------------------- - # master - # ------------------------------- - - armband-baremetal: - deploy-type: 'baremetal' - slave-label: 'armband-{deploy-type}' - <<: *master - # ------------------------------- - # scenarios - # ------------------------------- - scenario: - # HA scenarios - - 'os-nosdn-nofeature-ha': - auto-trigger-name: 'fuel-{scenario}-{pod}-{stream}-trigger' - - 'os-odl-nofeature-ha': - auto-trigger-name: 'fuel-{scenario}-{pod}-{stream}-trigger' - - 'os-ovn-nofeature-ha': - auto-trigger-name: 'fuel-{scenario}-{pod}-{stream}-trigger' - - 'os-nosdn-ovs-ha': - auto-trigger-name: 'fuel-{scenario}-{pod}-{stream}-trigger' - - # NOHA scenarios - - 'os-nosdn-nofeature-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-{stream}-trigger' - - 'os-nosdn-fdio-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-{stream}-trigger' - - jobs: - - 'fuel-{scenario}-{pod}-daily-{stream}' - - 'fuel-deploy-{pod}-daily-{stream}' - -######################## -# job templates: Armband uses Fuel's job templates, no need to duplicate -######################## - -######################## -# trigger macros -######################## -# CI PODs -# ---------------------------------------------------------------- -# Enea Armband CI Baremetal Triggers running against master branch -# ---------------------------------------------------------------- -- trigger: - name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-master-trigger' - triggers: - - timed: '0 1 * * 7' -- trigger: - name: 'fuel-os-odl-nofeature-ha-armband-baremetal-master-trigger' - triggers: - - timed: '0 1 * * 4,6' -- trigger: - name: 'fuel-os-ovn-nofeature-ha-armband-baremetal-master-trigger' - triggers: - - timed: '0 1 * * 2' -- trigger: - name: 'fuel-os-nosdn-ovs-ha-armband-baremetal-master-trigger' - triggers: - - timed: '0 1 * * 1' -- trigger: - name: 'fuel-os-nosdn-nofeature-noha-armband-baremetal-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-fdio-noha-armband-baremetal-master-trigger' - triggers: - - timed: '0 1 * * 3,5' -# --------------------------------------------------------------------- -# Enea Armband CI Baremetal Triggers running against hunter branch -# --------------------------------------------------------------------- -- trigger: - name: 'fuel-os-nosdn-nofeature-ha-armband-baremetal-hunter-trigger' - triggers: - - timed: '10 1 * * 1' -- trigger: - name: 'fuel-os-odl-nofeature-ha-armband-baremetal-hunter-trigger' - triggers: - - timed: '10 1 * * 7' -- trigger: - name: 'fuel-os-ovn-nofeature-ha-armband-baremetal-hunter-trigger' - triggers: - - timed: '10 1 * * 2' -- trigger: - name: 'fuel-os-nosdn-ovs-ha-armband-baremetal-hunter-trigger' - triggers: - - timed: '10 1 * * 4,6' -- trigger: - name: 'fuel-os-nosdn-nofeature-noha-armband-baremetal-hunter-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-fdio-noha-armband-baremetal-hunter-trigger' - triggers: - - timed: '10 1 * * 3,5' diff --git a/jjb/armband/armband-rtd-jobs.yaml b/jjb/armband/armband-rtd-jobs.yaml deleted file mode 100644 index 70d2f1171..000000000 --- a/jjb/armband/armband-rtd-jobs.yaml +++ /dev/null @@ -1,20 +0,0 @@ ---- -- project: - name: armband-rtd - project: armband - project-name: armband - - project-pattern: 'armband' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-armband/47349/' - rtd-token: 'b8f7de9a1f2baf063ccc6afb52dbc8e6308b6ab5' - - stream: - - master: - branch: '{stream}' - disabled: false - - gambia: - branch: 'stable/{stream}' - disabled: true - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/armband/armband-verify-jobs.yaml b/jjb/armband/armband-verify-jobs.yaml deleted file mode 100644 index d7a646ad0..000000000 --- a/jjb/armband/armband-verify-jobs.yaml +++ /dev/null @@ -1,100 +0,0 @@ ---- -- project: - name: 'armband-verify-jobs' - - project: 'armband' - - ##################################### - # branch definitions - ##################################### - stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - - gambia: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: true - ##################################### - # jobs - ##################################### - jobs: - - 'armband-verify-{stream}' - -##################################### -# job templates -##################################### -- job-template: - name: 'armband-verify-{stream}' - - disabled: true - - concurrent: true - - properties: - - logrotate-default - - throttle: - enabled: true - max-total: 2 - option: 'project' - - scm: - - git-scm-gerrit - - wrappers: - - ssh-agent-wrapper - - timeout: - timeout: 360 - fail: true - - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event: - exclude-drafts: 'false' - exclude-trivial-rebase: 'false' - exclude-no-code-change: 'false' - - draft-published-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: 'ci/**' - - compare-type: ANT - pattern: 'patches/**' - disable-strict-forbidden-file-verification: 'true' - forbidden-file-paths: - - compare-type: ANT - pattern: 'docs/**' - readable-message: true - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-ubuntu-arm-defaults' - - builders: - - description-setter: - description: "Built on $NODE_NAME" - - 'armband-verify-builder-macro' - -##################################### -# builder macros -##################################### -- builder: - name: 'armband-verify-builder-macro' - builders: - - shell: | - #!/bin/bash - make fuel-patches-import diff --git a/jjb/barometer/barometer-build.sh b/jjb/barometer/barometer-build.sh deleted file mode 100644 index 5f78aae7a..000000000 --- a/jjb/barometer/barometer-build.sh +++ /dev/null @@ -1,22 +0,0 @@ -set -x - -OPNFV_ARTIFACT_VERSION=$(date -u +"%Y-%m-%d_%H-%M-%S") -OPNFV_ARTIFACT_URL="$GS_URL/$OPNFV_ARTIFACT_VERSION/" - -# log info to console -echo "Starting the build of Barometer RPMs" -echo "------------------------------------" -echo - -cd ci -./install_dependencies.sh -./build_rpm.sh -cp utility/rpms_list $WORKSPACE -cd $WORKSPACE - -# save information regarding artifact into file -( - echo "OPNFV_ARTIFACT_VERSION=$OPNFV_ARTIFACT_VERSION" - echo "OPNFV_ARTIFACT_URL=$OPNFV_ARTIFACT_URL" -) > $WORKSPACE/opnfv.properties - diff --git a/jjb/barometer/barometer-rtd-jobs.yaml b/jjb/barometer/barometer-rtd-jobs.yaml deleted file mode 100644 index 4f56829ef..000000000 --- a/jjb/barometer/barometer-rtd-jobs.yaml +++ /dev/null @@ -1,32 +0,0 @@ ---- -- project: - name: barometer-rtd - project: barometer - project-name: barometer - - project-pattern: 'barometer' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-barometer/47353/' - rtd-token: 'aef70b8a0148b295e25dd92474110bcd622bacb0' - - stream: - - master: - branch: '{stream}' - disabled: false - - jerma: &jerma - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - - iruya: &iruya - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - - hunter: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - - gambia: - branch: 'stable/{stream}' - disabled: false - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/barometer/barometer-upload-artifact.sh b/jjb/barometer/barometer-upload-artifact.sh deleted file mode 100644 index f05dc2af8..000000000 --- a/jjb/barometer/barometer-upload-artifact.sh +++ /dev/null @@ -1,74 +0,0 @@ -#!/bin/bash -set -o nounset -set -o pipefail - -RPM_LIST=$WORKSPACE/rpms_list -RPM_WORKDIR=$WORKSPACE/rpmbuild -RPM_DIR=$RPM_WORKDIR/RPMS/x86_64/ -cd $WORKSPACE/ - -# source the opnfv.properties to get ARTIFACT_VERSION -source $WORKSPACE/opnfv.properties - -# Check if all the appropriate RPMs were generated -echo "Checking if all the Barometer RPMs were created" -echo "-----------------------------------------------" -echo - -if [ -d $RPM_DIR ] -then - ls $RPM_DIR > list_of_gen_pack -else - echo "Can't access folder $RPM_DIR with rpm packages" - echo "Barometer nightly build FAILED" - exit 1 -fi - -for PACKAGENAME in `cat $RPM_LIST` -do - if ! grep -q $PACKAGENAME list_of_gen_pack - then - echo "$PACKAGENAME is missing" - echo "Barometer nightly build FAILED" - exit 2 - fi -done - -#remove the file you no longer need. -rm list_of_gen_pack - -echo "Uploading the barometer RPMs to artifacts.opnfv.org" -echo "---------------------------------------------------" -echo - -gsutil -m cp -r $RPM_DIR/* gs://$OPNFV_ARTIFACT_URL > $WORKSPACE/gsutil.log 2>&1 - -# Check if the RPMs were pushed -gsutil ls gs://$OPNFV_ARTIFACT_URL > /dev/null 2>&1 -if [[ $? -ne 0 ]]; then - echo "Problem while uploading barometer RPMs to gs://$OPNFV_ARTIFACT_URL!" - echo "Check log $WORKSPACE/gsutil.log on the appropriate build server" - exit 1 -else - # upload property files only if build is successful - gsutil cp $WORKSPACE/opnfv.properties gs://$OPNFV_ARTIFACT_URL/opnfv.properties > gsutil.properties.log 2>&1 - gsutil cp $WORKSPACE/opnfv.properties gs://$GS_URL/latest.properties > gsutil.latest.log 2>&1 -fi - -gsutil -m setmeta \ - -h "Cache-Control:private, max-age=0, no-transform" \ - gs://$OPNFV_ARTIFACT_URL/*.rpm > /dev/null 2>&1 - -gsutil -m setmeta \ - -h "Content-Type:text/html" \ - -h "Cache-Control:private, max-age=0, no-transform" \ - gs://$GS_URL/latest.properties \ - gs://$OPNFV_ARTIFACT_URL/opnfv.properties > /dev/null 2>&1 - -echo -echo "--------------------------------------------------------" -echo "Done!" -echo "Artifact is available at $OPNFV_ARTIFACT_URL" - -#cleanup the RPM repo from the build machine. -rm -rf $RPM_WORKDIR diff --git a/jjb/barometer/barometer.yaml b/jjb/barometer/barometer.yaml deleted file mode 100644 index b01a89051..000000000 --- a/jjb/barometer/barometer.yaml +++ /dev/null @@ -1,198 +0,0 @@ ---- -################################################### -# All the jobs except verify have been removed! -# They will only be enabled on request by projects! -################################################### -- project: - name: barometer - - project: '{name}' - - jobs: - - 'barometer-verify-{stream}' - - 'barometer-merge-{stream}' - - 'barometer-daily-{stream}' - - 'barometer-plugins-tests' - - stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - - jerma: &jerma - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - - iruya: &iruya - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - -- job-template: - name: 'barometer-verify-{stream}' - - disabled: '{obj:disabled}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'lf-build2-defaults' - - scm: - - git-scm-gerrit - - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event: - exclude-drafts: 'false' - exclude-trivial-rebase: 'false' - exclude-no-code-change: 'false' - - draft-published-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - disable-strict-forbidden-file-verification: 'true' - forbidden-file-paths: - - compare-type: ANT - pattern: 'docs/**|.gitignore' - - builders: - - shell: | - pwd - cd src - make clobber - make - -- job-template: - name: 'barometer-merge-{stream}' - - project-type: freestyle - - disabled: '{obj:disabled}' - - concurrent: true - - properties: - - logrotate-default - - throttle: - enabled: true - max-total: 3 - max-per-node: 2 - option: 'project' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'lf-build2-defaults' - - scm: - - git-scm - - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - change-merged-event - - comment-added-contains-event: - comment-contains-value: 'remerge' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - disable-strict-forbidden-file-verification: 'true' - forbidden-file-paths: - - compare-type: ANT - pattern: 'docs/**' - - builders: - - shell: | - pwd - cd src - make clobber - make - -- job-template: - name: 'barometer-daily-{stream}' - - project-type: freestyle - - disabled: '{obj:disabled}' - - concurrent: false - - properties: - - logrotate-default - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - barometer-project-parameter: - gs-pathname: '{gs-pathname}' - - 'opnfv-build-centos-defaults' - - scm: - - git-scm - - triggers: - - timed: '@midnight' - - builders: - - shell: !include-raw-escape: ./barometer-build.sh - - shell: !include-raw-escape: ./barometer-upload-artifact.sh - -- job-template: - name: 'barometer-plugins-tests' - - branch: master - - disabled: '{obj:disabled}' - - parameters: - - string: - name: BRANCH - default: '{branch}' - - triggers: - - timed: '@midnight' - - builders: - - shell: | - rm -rf barometer - git clone "https://gerrit.opnfv.org/gerrit/barometer" - cd barometer - sudo docker build -t opnfv/barometer-collectd-tests-base --network=host \ - -f docker/barometer-collectd-plugin-tests/Dockerfile.base . - docker build -t opnfv/barometer-collectd-tests --network=host \ - -f docker/barometer-collectd-plugin-tests/Dockerfile . - docker run -t --net=host - -v `pwd`/src/collectd/collectd_sample_configs-master:/opt/collectd/etc/collectd.conf.d \ - -v /var/run:/var/run -v /tmp:/tmp -v `pwd`/plugin_test:/tests \ - --privileged opnfv/barometer-collectd-tests:latest - docker container rm $(sudo docker container ls -aq) - docker rmi opnfv/barometer-collectd-tests:latest - docker rmi opnfv/barometer-collectd-tests-base:latest - -######################## -# parameter macros -######################## -- parameter: - name: barometer-project-parameter - parameters: - - string: - name: GS_URL - default: '$GS_BASE{gs-pathname}' - description: "URL to Google Storage." diff --git a/jjb/calipso/calipso-rtd-jobs.yaml b/jjb/calipso/calipso-rtd-jobs.yaml deleted file mode 100644 index e6b61d768..000000000 --- a/jjb/calipso/calipso-rtd-jobs.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -- project: - name: calipso-rtd - project: calipso - project-name: calipso - - gerrit-skip-vote: true - project-pattern: 'calipso' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-calipso/47356/' - rtd-token: '9b88e25a769998fc316b25efe15eca2b7c1474f4' - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/calipso/calipso.yaml b/jjb/calipso/calipso.yaml deleted file mode 100644 index 7ecabdf29..000000000 --- a/jjb/calipso/calipso.yaml +++ /dev/null @@ -1,65 +0,0 @@ ---- -- project: - name: calipso - - project: '{name}' - - jobs: - - 'calipso-verify-{stream}' - - stream: - - master: - branch: '{stream}' - disabled: false - - fraser: &fraser - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - -- job-template: - name: 'calipso-verify-{stream}' - - disabled: '{obj:disabled}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-centos-defaults' - - scm: - - git-scm-gerrit - - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event: - exclude-drafts: 'false' - exclude-trivial-rebase: 'false' - exclude-no-code-change: 'false' - - draft-published-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - - builders: - - verify-unit-tests - -- builder: - name: verify-unit-tests - builders: - - shell: | - #!/bin/bash - set -o errexit - set -o nounset - set -o pipefail - cd $WORKSPACE - PYTHONPATH=$PWD api/test/verify.sh diff --git a/jjb/cirv/cirv-hdv-rtd-jobs.yaml b/jjb/cirv/cirv-hdv-rtd-jobs.yaml deleted file mode 100644 index 54c007730..000000000 --- a/jjb/cirv/cirv-hdv-rtd-jobs.yaml +++ /dev/null @@ -1,22 +0,0 @@ ---- -- project: - name: cirv-hdv-rtd - project: cirv-hdv - project-name: cirv-hdv - - project-pattern: 'cirv-hdv' - # yamllint disable-line rule:line-length - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-cirv-hdv/140801/' - rtd-token: 'f29ff450f15f5c01f89f238320aa33763256bc7c' - - stream: - - master: - branch: '{stream}' - disabled: false - - jerma: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/cirv/cirv-rtd-jobs.yaml b/jjb/cirv/cirv-rtd-jobs.yaml deleted file mode 100644 index 2812d9e87..000000000 --- a/jjb/cirv/cirv-rtd-jobs.yaml +++ /dev/null @@ -1,21 +0,0 @@ ---- -- project: - name: cirv-rtd - project: cirv - project-name: cirv - - project-pattern: 'cirv' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-cirv/140765/' - rtd-token: 'cec79ce42917b10adb33f0af8aaa9be33eee63d9' - - stream: - - master: - branch: '{stream}' - disabled: false - - jerma: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/cirv/cirv-sdv-rtd-jobs.yaml b/jjb/cirv/cirv-sdv-rtd-jobs.yaml deleted file mode 100644 index 2a5cf96c0..000000000 --- a/jjb/cirv/cirv-sdv-rtd-jobs.yaml +++ /dev/null @@ -1,22 +0,0 @@ ---- -- project: - name: cirv-sdv-rtd - project: cirv-sdv - project-name: cirv-sdv - - project-pattern: 'cirv-sdv' - # yamllint disable-line rule:line-length - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-cirv-sdv/140800/' - rtd-token: '5ce62cc08e799ac377397d654b62bde0d1dec22d' - - stream: - - master: - branch: '{stream}' - disabled: false - - jerma: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/cirv/cirv-views.yaml b/jjb/cirv/cirv-views.yaml deleted file mode 100644 index 17d4e875a..000000000 --- a/jjb/cirv/cirv-views.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- project: - name: cirv-view - views: - - project-view - project-name: cirv diff --git a/jjb/cirv/cirv.yaml b/jjb/cirv/cirv.yaml deleted file mode 100644 index e628f43bd..000000000 --- a/jjb/cirv/cirv.yaml +++ /dev/null @@ -1,71 +0,0 @@ ---- -- cirv-project-params: &cirv-project-params - name: 'cirv-project-params' - tag: - - latest: - branch: master - slave: lf-build2 - -- builder: - name: cirv-run-tox - builders: - - shell: tox - -- trigger: - name: cirv-project-patchset-created - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: 'cirv' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - skip-vote: - successful: false - failed: false - unstable: false - notbuilt: false - -- parameter: - name: cirv-project-slave - parameters: - - label: - name: slave - default: '{slave}' - -- scm: - name: cirv-project-scm - scm: - - git: - url: https://gerrit.opnfv.org/gerrit/cirv - refspec: '+refs/changes/*:refs/changes/*' - branches: - - '{ref}' - -- job-template: - name: 'cirv-run-tox-{tag}' - triggers: - - cirv-project-patchset-created: - branch: '{branch}' - scm: - - cirv-project-scm: - ref: $GERRIT_REFSPEC - parameters: - - cirv-project-slave: - slave: '{slave}' - builders: - - cirv-run-tox - -- project: - name: 'cirv-run-tox' - <<: *cirv-project-params - jobs: - - 'cirv-run-tox-{tag}' diff --git a/jjb/clover/clover-project.yaml b/jjb/clover/clover-project.yaml deleted file mode 100644 index f75a59e80..000000000 --- a/jjb/clover/clover-project.yaml +++ /dev/null @@ -1,172 +0,0 @@ ---- -################################################### -# All the jobs except verify have been removed! -# They will only be enabled on request by projects! -################################################### -- project: - name: clover - - project: '{name}' - - jobs: - - 'clover-verify-{stream}' - - 'clover-daily-upload-{stream}' - - 'clover-daily-deploy-{stream}' - - stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - - hunter: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - -- job-template: - name: 'clover-verify-{stream}' - - disabled: '{obj:disabled}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - # yamllint disable rule:line-length - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: "Used for overriding the GIT URL coming from Global Jenkins\ - \ configuration in case if the stuff is done on none-LF HW." - # yamllint enable rule:line-length - - 'opnfv-build-ubuntu-defaults' - - scm: - - git-scm-gerrit - - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event: - exclude-drafts: 'false' - exclude-trivial-rebase: 'false' - exclude-no-code-change: 'false' - - draft-published-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - disable-strict-forbidden-file-verification: 'true' - forbidden-file-paths: - - compare-type: ANT - pattern: 'docs/**|.gitignore' - - builders: - - shell: | - cd $WORKSPACE/ci - ./verify.sh - -- job-template: - name: 'clover-daily-upload-{stream}' - - disabled: '{obj:disabled}' - - concurrent: false - - scm: - - git-scm - - triggers: - - timed: '0 8 * * *' - - wrappers: - - fix-workspace-permissions - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-ubuntu-defaults' - - 'clover-defaults': - gs-pathname: '{gs-pathname}' - - builders: - - shell: | - cd $WORKSPACE/ci - ./upload.sh - -- job-template: - name: 'clover-daily-deploy-{stream}' - - project-type: freestyle - - disabled: '{obj:disabled}' - - concurrent: false - - properties: - - logrotate-default - - throttle: - enabled: true - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'clover-daily-deploy-.*?' - - 'container4nfv-daily-deploy-.*?' - blocking-level: 'NODE' - - wrappers: - - timeout: - timeout: 180 - abort: true - - fix-workspace-permissions - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - # yamllint disable rule:line-length - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: "Used for overriding the GIT URL coming from Global Jenkins\ - \ configuration in case if the stuff is done on none-LF HW." - # yamllint enable rule:line-length - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - huawei-virtual6 - default-slaves: - - huawei-virtual6 - - scm: - - git-scm - - triggers: - - timed: '0 9 * * *' - - builders: - - shell: | - cd $WORKSPACE/ci - ./deploy.sh - -################### -# parameter macros -################### -- parameter: - name: 'clover-defaults' - parameters: - - string: - name: GS_URL - default: artifacts.opnfv.org/$PROJECT{gs-pathname} - description: "URL to Google Storage." diff --git a/jjb/clover/clover-rtd-jobs.yaml b/jjb/clover/clover-rtd-jobs.yaml deleted file mode 100644 index d768c7cd7..000000000 --- a/jjb/clover/clover-rtd-jobs.yaml +++ /dev/null @@ -1,21 +0,0 @@ ---- -- project: - name: clover-rtd - project: clover - project-name: clover - - gerrit-skip-vote: true - project-pattern: 'clover' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-clover/47357/' - rtd-token: '8b47c0a3c1cfe7de885bf217628b58dd91f14f2e' - - stream: - - master: - branch: '{stream}' - disabled: false - - hunter: - branch: 'stable/{stream}' - disabled: false - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/clover/clover-views.yaml b/jjb/clover/clover-views.yaml deleted file mode 100644 index 15a05e60a..000000000 --- a/jjb/clover/clover-views.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- project: - name: clover-view - views: - - project-view - project-name: clover diff --git a/jjb/cntt/cntt.yaml b/jjb/cntt/cntt.yaml new file mode 100644 index 000000000..9a60cf1f3 --- /dev/null +++ b/jjb/cntt/cntt.yaml @@ -0,0 +1,97 @@ +--- +- builder: + name: cntt-tox + builders: + - shell: | + set +x + if [ -d {dir} ] && [ -f {dir}/tox.ini ]; then + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 dist-upgrade -y + sudo DEBIAN_FRONTEND=noninteractive \ + apt-get -o DPkg::Lock::Timeout=300 install tox texlive \ + texlive-latex-extra latexmk pandoc -y + (cd {dir} && tox + wget -q -N https://dl.min.io/client/mc/release/linux-amd64/mc && chmod a+x mc + ./mc cp -r -q build/ opnfv/artifacts.opnfv.org/{stream}/$BUILD_TAG + echo "\nhttps://artifacts.opnfv.org/{stream}/$BUILD_TAG/index.html\n") + fi + if [ -d {dir}/build ] && [ -f {dir}/build/Makefile ]; then + (cd {dir}/build && make + wget -q -N https://dl.min.io/client/mc/release/linux-amd64/mc && chmod a+x mc + for i in *.pdf; do + ./mc cp -r -q $i opnfv/artifacts.opnfv.org/{stream}/$BUILD_TAG + echo "\nhttps://artifacts.opnfv.org/{stream}/$BUILD_TAG/$i\n" + done) + fi + if [ -d {dir}/gsma ]; then + (cd {dir}/gsma + wget -q -N https://dl.min.io/client/mc/release/linux-amd64/mc && chmod a+x mc + for i in *.docx *.rst; do + ./mc cp -r -q $i opnfv/artifacts.opnfv.org/{stream}/$BUILD_TAG/gsma + echo "\nhttps://artifacts.opnfv.org/{stream}/$BUILD_TAG/gsma/$i\n" + done) + fi + +- scm: + name: cntt-scm + scm: + - git: + url: https://github.com/cntt-n/CNTT + refspec: '+refs/heads/*:refs/remotes/origin/* +refs/pull/*/head:refs/remotes/origin/pr/*' + +- parameter: + name: cntt-parameter + parameters: + - label: + name: node + default: 'opnfv-build' + +- job-template: + name: cntt-tox-{stream} + scm: + - cntt-scm + triggers: + - github + parameters: + - cntt-parameter + builders: + - cntt-tox: + stream: '{stream}' + dir: '{dir}' + publishers: + - github-notifier + +- project: + name: cntt + stream: + - rm: + dir: doc/ref_model + - ra1: + dir: doc/ref_arch/openstack + - ra2: + dir: doc/ref_arch/kubernetes + - rc: + dir: doc/ref_cert + - rc1: + dir: doc/ref_cert/RC1 + - rc2: + dir: doc/ref_cert/RC2 + - ri1: + dir: doc/ref_impl/cntt-ri + - ri2: + dir: doc/ref_impl/cntt-ri2 + jobs: + - cntt-tox-{stream} + +- view: + name: cntt + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: ^cntt.*$ diff --git a/jjb/container4nfv/arm64/deploy-cni.sh b/jjb/container4nfv/arm64/deploy-cni.sh deleted file mode 100755 index 9afb98048..000000000 --- a/jjb/container4nfv/arm64/deploy-cni.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash -e - -cd container4nfv/src/arm/cni-deploy - -DEPLOY_SCENARIO={scenario} - -virtualenv .venv -source .venv/bin/activate -pip install ansible==2.6.1 - -ansible-playbook -i inventory/inventory.cfg deploy.yml --tags flannel,multus - -if [ "$DEPLOY_SCENARIO" == "k8-sriov-nofeature-noha" ]; then - ansible-playbook -i inventory/inventory.cfg deploy.yml --tags sriov -elif [ "$DEPLOY_SCENARIO" == "k8-vpp-nofeature-noha" ]; then - ansible-playbook -i inventory/inventory.cfg deploy.yml --tags vhost-vpp -fi diff --git a/jjb/container4nfv/arm64/yardstick-arm64.sh b/jjb/container4nfv/arm64/yardstick-arm64.sh deleted file mode 100755 index 26c6fdcfe..000000000 --- a/jjb/container4nfv/arm64/yardstick-arm64.sh +++ /dev/null @@ -1,93 +0,0 @@ -#!/bin/bash -set -e - -sshpass -p root ssh root@10.1.0.50 \ - "mkdir -p /etc/yardstick; rm -rf /etc/yardstick/admin.conf" - - -sshpass -p root ssh root@10.1.0.50 \ - kubectl config set-cluster yardstick --server=127.0.0.1:8080 --insecure-skip-tls-verify=true --kubeconfig=/etc/yardstick/admin.conf -sshpass -p root ssh root@10.1.0.50 \ - kubectl config set-context yardstick --cluster=yardstick --kubeconfig=/etc/yardstick/admin.conf -sshpass -p root ssh root@10.1.0.50 \ - kubectl config use-context yardstick --kubeconfig=/etc/yardstick/admin.conf - - - -if [ ! -n "$redirect" ]; then - redirect="/dev/stdout" -fi - -if [ ! -n "$DOCKER_TAG" ]; then - DOCKER_TAG='latest' -fi - -if [ ! -n "$NODE_NAME" ]; then - NODE_NAME='arm-virutal03' -fi - -if [ ! -n "$DEPLOY_SCENARIO" ]; then - DEPLOY_SCENARIO='k8-nosdn-lb-noha_daily' -fi - -if [ ! -n "$YARDSTICK_DB_BACKEND" ]; then - YARDSTICK_DB_BACKEND='-i 104.197.68.199:8086' -fi - -# Pull the image with correct tag -DOCKER_REPO='opnfv/yardstick' -if [ "$(uname -m)" = 'aarch64' ]; then - DOCKER_REPO="${DOCKER_REPO}_$(uname -m)" -fi -echo "Yardstick: Pulling image ${DOCKER_REPO}:${DOCKER_TAG}" -sshpass -p root ssh root@10.1.0.50 \ - docker pull ${DOCKER_REPO}:$DOCKER_TAG >$redirect - -if [ ! -n "$BRANCH" ]; then - BRANCH=master -fi - -opts="--name=yardstick --privileged=true --net=host -d -it " -envs="-e YARDSTICK_BRANCH=${BRANCH} -e BRANCH=${BRANCH} \ - -e NODE_NAME=${NODE_NAME} \ - -e DEPLOY_SCENARIO=${DEPLOY_SCENARIO}" -rc_file_vol="-v /etc/yardstick/admin.conf:/etc/yardstick/admin.conf" -cacert_file_vol="" -map_log_dir="" -sshkey="" -YARDSTICK_SCENARIO_SUITE_NAME="opnfv_k8-nosdn-lb-noha_daily.yaml" - -# map log directory -branch=${BRANCH##*/} -#branch="master" -dir_result="${HOME}/opnfv/yardstick/results/${branch}" -mkdir -p ${dir_result} -sudo rm -rf ${dir_result}/* -map_log_dir="-v ${dir_result}:/tmp/yardstick" - -# Run docker -cmd="docker rm -f yardstick || true" -sshpass -p root ssh root@10.1.0.50 \ - ${cmd} - -cmd="sudo docker run ${opts} ${envs} ${rc_file_vol} ${cacert_file_vol} ${map_log_dir} ${sshkey} ${DOCKER_REPO}:${DOCKER_TAG} /bin/bash" -echo "Yardstick: Running docker cmd: ${cmd}" -sshpass -p root ssh root@10.1.0.50 \ - ${cmd} - - -cmd='sudo docker exec yardstick sed -i.bak "/# execute tests/i\sed -i.bak \"s/openretriever\\\/yardstick/openretriever\\\/yardstick_aarch64/g\" \ - $\{YARDSTICK_REPO_DIR\}/tests/opnfv/test_cases/opnfv_yardstick_tc080.yaml" /usr/local/bin/exec_tests.sh' -sshpass -p root ssh root@10.1.0.50 \ - ${cmd} - -echo "Yardstick: run tests: ${YARDSTICK_SCENARIO_SUITE_NAME}" -cmd="sudo docker exec yardstick exec_tests.sh ${YARDSTICK_DB_BACKEND} ${YARDSTICK_SCENARIO_SUITE_NAME}" -sshpass -p root ssh root@10.1.0.50 \ - ${cmd} - -cmd="docker rm -f yardstick" -sshpass -p root ssh root@10.1.0.50 \ - ${cmd} - -echo "Yardstick: done!" diff --git a/jjb/container4nfv/container4nfv-arm64.yaml b/jjb/container4nfv/container4nfv-arm64.yaml deleted file mode 100644 index b72c09547..000000000 --- a/jjb/container4nfv/container4nfv-arm64.yaml +++ /dev/null @@ -1,35 +0,0 @@ ---- - -- job-template: - name: 'container4nfv-{scenario}-{pod}-daily-{stream}' - disabled: '{obj:disabled}' - node: '{slave-label}' - - scm: - - git: - url: https://gerrit.opnfv.org/gerrit/container4nfv - branches: - - master - basedir: container4nfv - wipe-workspace: true - - builders: - - shell: !include-raw: arm64/deploy-cni.sh - - -- trigger: - name: 'trigger-deploy-virtual-master' - triggers: - - timed: '0 12 * * *' -- trigger: - name: 'trigger-deploy-virtual-hunter' - triggers: - - timed: '0 18 * * *' -- trigger: - name: 'trigger-deploy-baremetal-master' - triggers: - - timed: '0 12 * * *' -- trigger: - name: 'trigger-deploy-baremetal-hunter' - triggers: - - timed: '0 18 * * *' diff --git a/jjb/container4nfv/container4nfv-project.yaml b/jjb/container4nfv/container4nfv-project.yaml deleted file mode 100644 index ca286bff7..000000000 --- a/jjb/container4nfv/container4nfv-project.yaml +++ /dev/null @@ -1,169 +0,0 @@ ---- -################################################### -# All the jobs except verify have been removed! -# They will only be enabled on request by projects! -################################################### -- project: - name: container4nfv - - project: '{name}' - - jobs: - - 'container4nfv-verify-{stream}' - - 'container4nfv-daily-upload-{stream}' - - 'container4nfv-daily-deploy-{stream}' - - stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - - hunter: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - -- job-template: - name: 'container4nfv-verify-{stream}' - - disabled: '{obj:disabled}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - # yamllint disable rule:line-length - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: "Used for overriding the GIT URL coming from Global Jenkins\ - \ configuration in case if the stuff is done on none-LF HW." - # yamllint enable rule:line-length - - 'opnfv-build-ubuntu-defaults' - - scm: - - git-scm-gerrit - - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event: - exclude-drafts: 'false' - exclude-trivial-rebase: 'false' - exclude-no-code-change: 'false' - - draft-published-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - disable-strict-forbidden-file-verification: 'true' - forbidden-file-paths: - - compare-type: ANT - pattern: 'docs/**|.gitignore' - - builders: - - shell: | - cd $WORKSPACE/ci - ./build.sh - -- job-template: - name: 'container4nfv-daily-upload-{stream}' - - disabled: '{obj:disabled}' - - concurrent: false - - scm: - - git-scm - - wrappers: - - fix-workspace-permissions - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-ubuntu-defaults' - - 'container4nfv-defaults': - gs-pathname: '{gs-pathname}' - - builders: - - shell: | - cd $WORKSPACE/ci - ./upload.sh - -- job-template: - name: 'container4nfv-daily-deploy-{stream}' - - project-type: freestyle - - disabled: '{obj:disabled}' - - concurrent: false - - properties: - - logrotate-default - - throttle: - enabled: true - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'clover-daily-deploy-.*?' - - 'container4nfv-daily-deploy-.*?' - blocking-level: 'NODE' - - wrappers: - - timeout: - timeout: 240 - abort: true - - fix-workspace-permissions - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - # yamllint disable rule:line-length - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: "Used for overriding the GIT URL coming from Global Jenkins\ - \ configuration in case if the stuff is done on none-LF HW." - # yamllint enable rule:line-length - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - huawei-virtual6 - default-slaves: - - huawei-virtual6 - - scm: - - git-scm - - triggers: - - timed: '@midnight' - - builders: - - shell: | - cd $WORKSPACE/ci - ./deploy.sh - -################### -# parameter macros -################### -- parameter: - name: 'container4nfv-defaults' - parameters: - - string: - name: GS_URL - default: artifacts.opnfv.org/$PROJECT{gs-pathname} - description: "URL to Google Storage." diff --git a/jjb/container4nfv/container4nfv-rtd-jobs.yaml b/jjb/container4nfv/container4nfv-rtd-jobs.yaml deleted file mode 100644 index 70512a985..000000000 --- a/jjb/container4nfv/container4nfv-rtd-jobs.yaml +++ /dev/null @@ -1,21 +0,0 @@ ---- -- project: - name: container4nfv-rtd - project: container4nfv - project-name: container4nfv - - gerrit-skip-vote: true - project-pattern: 'container4nfv' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-container4nfv/47359/' - rtd-token: '82f917a788d006dc15df14ecd3c991115490bf8a' - - stream: - - master: - branch: '{stream}' - disabled: false - - hunter: - branch: 'stable/{stream}' - disabled: false - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/container4nfv/container4nfv-views.yaml b/jjb/container4nfv/container4nfv-views.yaml deleted file mode 100644 index f57e7f0da..000000000 --- a/jjb/container4nfv/container4nfv-views.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -- project: - name: container4nfv-view - views: - - common-view - view-name: container4nfv - view-regex: (^container.*|^yardstick-arm64.*) diff --git a/jjb/doctor/doctor-env-presetup.sh b/jjb/doctor/doctor-env-presetup.sh deleted file mode 100755 index ebbf32c01..000000000 --- a/jjb/doctor/doctor-env-presetup.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/usr/bin/env bash -set -o errexit -set -o pipefail - -# set vars from env if not provided by user as options -installer_key_file=${installer_key_file:-$HOME/installer_key_file} -opnfv_installer=${opnfv_installer:-$HOME/opnfv-installer.sh} - -# Fetch INSTALLER_IP for APEX deployments -if [[ ${INSTALLER_TYPE} == 'apex' ]]; then - - echo "Gathering IP information for Apex installer VM" - ssh_options="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" - if sudo virsh list | grep undercloud; then - echo "Installer VM detected" - undercloud_mac=$(sudo virsh domiflist undercloud | grep default | \ - grep -Eo "[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+") - export INSTALLER_IP=$(/usr/sbin/arp -e | grep ${undercloud_mac} | awk {'print $1'}) - echo "Installer ip is ${INSTALLER_IP}" - else - echo "No available installer VM exists and no credentials provided...exiting" - exit 1 - fi - - sudo cp /root/.ssh/id_rsa ${installer_key_file} - sudo chown `whoami`:`whoami` ${installer_key_file} - -elif [[ ${INSTALLER_TYPE} == 'daisy' ]]; then - echo "Gathering IP information for Daisy installer VM" - if sudo virsh list | grep daisy; then - echo "Installer VM detected" - - bridge_name=$(sudo virsh domiflist daisy | grep vnet | awk '{print $3}') - echo "Bridge is $bridge_name" - - installer_mac=$(sudo virsh domiflist daisy | grep vnet | \ - grep -Eo "[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+") - export INSTALLER_IP=$(/usr/sbin/arp -e -i $bridge_name | grep ${installer_mac} | head -n 1 | awk {'print $1'}) - - echo "Installer ip is ${INSTALLER_IP}" - else - echo "No available installer VM exists...exiting" - exit 1 - fi - -elif [[ ${INSTALLER_TYPE} == 'fuel' ]]; then - if [[ ! "${BRANCH}" =~ "danube" ]]; then - export SSH_KEY=${SSH_KEY:-/var/lib/opnfv/mcp.rsa} - sudo cp ${SSH_KEY} ${installer_key_file} - sudo chown `whoami`:`whoami` ${installer_key_file} - fi -fi - - -# Checking if destination path is valid -if [ -d $opnfv_installer ]; then - error "Please provide the full destination path for the installer ip file including the filename" -else - # Check if we can create the file (e.g. path is correct) - touch $opnfv_installer || error "Cannot create the file specified. Check that the path is correct and run the script again." -fi - - -# Write the installer info to the file -echo export INSTALLER_TYPE=${INSTALLER_TYPE} > $opnfv_installer -echo export INSTALLER_IP=${INSTALLER_IP} >> $opnfv_installer -if [ -e ${installer_key_file} ]; then - echo export SSH_KEY=${installer_key_file} >> $opnfv_installer -fi diff --git a/jjb/doctor/doctor-rtd-jobs.yaml b/jjb/doctor/doctor-rtd-jobs.yaml deleted file mode 100644 index 52a311389..000000000 --- a/jjb/doctor/doctor-rtd-jobs.yaml +++ /dev/null @@ -1,21 +0,0 @@ ---- -- project: - name: doctor-rtd - project: doctor - project-name: doctor - - gerrit-skip-vote: true - project-pattern: 'doctor' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-doctor/47362/' - rtd-token: 'bf8640556a3ba3151e4e5602facc5ed982dd88c8' - - stream: - - master: - branch: '{stream}' - disabled: false - - jerma: &jerma - branch: 'stable/{stream}' - disabled: false - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/doctor/doctor.yaml b/jjb/doctor/doctor.yaml deleted file mode 100644 index bdeecdb17..000000000 --- a/jjb/doctor/doctor.yaml +++ /dev/null @@ -1,260 +0,0 @@ ---- -- project: - name: doctor - - project: '{name}' - project-name: '{name}' - project-pattern: '{project}' - - stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - - jerma: &jerma - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - - installer: - - 'fuel': - scenario: 'os-nosdn-nofeature-noha' - - arch: - - 'x86_64' - - 'aarch64' - - inspector: - - 'sample' - - 'congress' - - jobs: - - 'doctor-verify-{stream}' - - 'doctor-verify-fault_management-{installer}-{inspector}-{arch}-{stream}' - - 'doctor-verify-maintenance-{installer}-{inspector}-{arch}-{stream}' - - 'doctor-verify-all-{installer}-{inspector}-{arch}-{stream}' - -- job-template: - name: 'doctor-verify-{stream}' - disabled: '{obj:disabled}' - project-type: 'multijob' - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'doctor-slave-parameter' - scm: - - git-scm-gerrit - triggers: - - 'doctor-verify': - project: '{project}' - branch: '{branch}' - files: 'doctor_tests/**' - - builders: - - shell: | - #!/bin/bash - # we do nothing here as the main stuff will be done - # in phase jobs - echo "Triggering phase jobs!" - - multijob: - name: 'doctor-verify-fuel' - execution-type: PARALLEL - projects: - - name: 'doctor-verify-fault_management-fuel-sample-x86_64-{stream}' - predefined-parameters: | - PROJECT=$PROJECT - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - kill-phase-on: FAILURE - git-revision: true - - name: 'doctor-verify-maintenance-fuel-sample-x86_64-{stream}' - predefined-parameters: | - PROJECT=$PROJECT - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - kill-phase-on: FAILURE - git-revision: true - -- job-template: - name: 'doctor-verify-fault_management-{installer}-{inspector}-{arch}-{stream}' - disabled: '{obj:disabled}' - node: 'zte-virtual4' - wrappers: - - ssh-agent-wrapper - - build-timeout: - timeout: 30 - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{installer}-defaults' - - 'doctor-slave-parameter' - - 'doctor-parameter': - inspector: '{inspector}' - scenario: '{scenario}' - test_case: 'fault_management' - admin_tool_type: 'fenix' - app_manager_type: 'vnfm' - scm: - - git-scm-gerrit - builders: - - 'doctor-verify-installer-inspector-builders-macro' - publishers: - - 'doctor-verify-publishers-macro' - -- job-template: - name: 'doctor-verify-maintenance-{installer}-{inspector}-{arch}-{stream}' - disabled: '{obj:disabled}' - node: 'nokia-pod1' - wrappers: - - ssh-agent-wrapper - - build-timeout: - timeout: 40 - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{installer}-defaults' - - 'doctor-slave-parameter' - - 'doctor-parameter': - inspector: '{inspector}' - scenario: '{scenario}' - test_case: 'maintenance' - admin_tool_type: 'fenix' - app_manager_type: 'vnfm' - scm: - - git-scm-gerrit - builders: - - 'doctor-verify-installer-inspector-builders-macro' - publishers: - - 'doctor-verify-publishers-macro' - -- job-template: - name: 'doctor-verify-all-{installer}-{inspector}-{arch}-{stream}' - disabled: '{obj:disabled}' - node: 'doctor-{installer}-{arch}' - wrappers: - - ssh-agent-wrapper - - build-timeout: - timeout: 50 - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{installer}-defaults' - - 'doctor-slave-parameter' - - 'doctor-parameter': - inspector: '{inspector}' - scenario: '{scenario}' - test_case: 'all' - admin_tool_type: 'fenix' - app_manager_type: 'vnfm' - scm: - - git-scm-gerrit - builders: - - 'doctor-verify-installer-inspector-builders-macro' - publishers: - - 'doctor-verify-publishers-macro' - - -# ------------------------------- -# parameter macros -# ------------------------------- -- parameter: - name: 'doctor-parameter' - parameters: - - string: - name: INSPECTOR_TYPE - default: '{inspector}' - description: 'inspector component' - - string: - name: TEST_CASE - default: '{test_case}' - description: 'test case: all, fault_management or maintenance' - - string: - name: DEPLOY_SCENARIO - default: '{scenario}' - description: 'Scenario to deploy and test' - - string: - name: ADMIN_TOOL_TYPE - default: '{admin_tool_type}' - description: 'admin_tool_type: sample, fenix' - - string: - name: APP_MANAGER_TYPE - default: '{app_manager_type}' - description: 'app_manager_type: sample, vnfm' - -# ------------------------------- -# builder macros -# ------------------------------- - -- builder: - name: 'doctor-verify-installer-inspector-builders-macro' - builders: - # yamllint disable rule:indentation - - shell: !include-raw: - - ./doctor-env-presetup.sh - - ../../utils/fetch_os_creds.sh - - shell: | - #!/bin/bash - - # prepare the env for test - . $HOME/opnfv-openrc.sh - if [ -f $HOME/os_cacert ]; then - export OS_CACERT=$HOME/os_cacert - fi - . $HOME/opnfv-installer.sh - - # run tox to trigger the test - # As Jenkins user, it has no permission to send ICMP package - sudo -E tox -e py36 - - -# ------------------------------- -# publisher macros -# ------------------------------- -- publisher: - name: 'doctor-verify-publishers-macro' - publishers: - - archive: - artifacts: 'doctor_tests/*.log' - - email-jenkins-admins-on-failure - - workspace-cleanup - -##################################### -# trigger macros -##################################### -- trigger: - name: 'doctor-verify' - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event: - exclude-drafts: 'false' - exclude-trivial-rebase: 'false' - exclude-no-code-change: 'false' - - draft-published-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: '{files}' - skip-vote: - successful: true - failed: true - unstable: true - notbuilt: true diff --git a/jjb/dovetail-webportal/dovetail-webportal-project-jobs.yaml b/jjb/dovetail-webportal/dovetail-webportal-project-jobs.yaml deleted file mode 100644 index a579af6d6..000000000 --- a/jjb/dovetail-webportal/dovetail-webportal-project-jobs.yaml +++ /dev/null @@ -1,102 +0,0 @@ ---- -################################################### -# Non-ci jobs for Dovetail project -# They will only be enabled on request by projects! -################################################### -- project: - name: dovetail-webportal-project-jobs - - project: 'dovetail-webportal' - - jobs: - - 'dovetail-webportal-verify-{stream}' - - 'dovetail-webportal-merge-{stream}' - - stream: - - master: - branch: '{stream}' - disabled: false - -################################ -# job templates -################################ - -- job-template: - name: 'dovetail-webportal-verify-{stream}' - - disabled: '{obj:disabled}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-ubuntu-defaults' - - scm: - - git-scm-gerrit - - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event: - exclude-drafts: 'false' - exclude-trivial-rebase: 'false' - exclude-no-code-change: 'false' - - draft-published-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - builders: - - dovetail-webportal-unit-tests - -- job-template: - name: 'dovetail-webportal-merge-{stream}' - - disabled: '{obj:disabled}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-ubuntu-defaults' - - scm: - - git-scm - - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - change-merged-event - - comment-added-contains-event: - comment-contains-value: 'remerge' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - - builders: - - dovetail-webportal-unit-tests - -################################ -# builders for dovetail project -############################### -- builder: - name: dovetail-webportal-unit-tests - builders: - - shell: | - #!/bin/bash - set -o errexit - set -o pipefail - - tox diff --git a/jjb/dovetail/dovetail-artifacts-upload.sh b/jjb/dovetail/dovetail-artifacts-upload.sh deleted file mode 100755 index f1a9e7222..000000000 --- a/jjb/dovetail/dovetail-artifacts-upload.sh +++ /dev/null @@ -1,94 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others. -# 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 -############################################################################## -set -o pipefail - -echo "dovetail: pull and save the images" - -[[ -d ${CACHE_DIR} ]] || mkdir -p ${CACHE_DIR} - -cd ${CACHE_DIR} -sudo docker pull ${DOCKER_REPO_NAME}:${DOCKER_TAG} -sudo docker save -o ${STORE_FILE_NAME} ${DOCKER_REPO_NAME}:${DOCKER_TAG} -sudo chmod og+rw ${STORE_FILE_NAME} - -OPNFV_ARTIFACT_VERSION=$(date -u +"%Y-%m-%d_%H-%M-%S") -GS_UPLOAD_LOCATION="${STORE_URL}/${OPNFV_ARTIFACT_VERSION}" -( - echo "OPNFV_ARTIFACT_VERSION=$OPNFV_ARTIFACT_VERSION" - echo "OPNFV_GIT_URL=$(git config --get remote.origin.url)" - echo "OPNFV_GIT_SHA1=$(git rev-parse HEAD)" - echo "OPNFV_ARTIFACT_URL=$GS_UPLOAD_LOCATION" - echo "OPNFV_BUILD_URL=$BUILD_URL" -) > $WORKSPACE/opnfv.properties -source $WORKSPACE/opnfv.properties - -importkey () { -# clone releng repository -echo "Cloning releng repository..." -[ -d releng ] && rm -rf releng -git clone https://gerrit.opnfv.org/gerrit/releng $WORKSPACE/releng/ &> /dev/null -#this is where we import the siging key -if [ -f $WORKSPACE/releng/utils/gpg_import_key.sh ]; then - source $WORKSPACE/releng/utils/gpg_import_key.sh -fi -} - -sign () { -gpg2 -vvv --batch --yes --no-tty \ - --default-key opnfv-helpdesk@rt.linuxfoundation.org \ - --passphrase besteffort \ - --detach-sig ${CACHE_DIR}/${STORE_FILE_NAME} - -gsutil cp ${CACHE_DIR}/${STORE_FILE_NAME}.sig ${STORE_URL}/${STORE_FILE_NAME}.sig -echo "signature Upload Complete!" -} - -upload () { -# log info to console -echo "Uploading ${STORE_FILE_NAME} to artifact. This could take some time..." -echo - -cd $WORKSPACE -# upload artifact and additional files to google storage -gsutil cp ${CACHE_DIR}/${STORE_FILE_NAME} \ -${STORE_URL}/${STORE_FILE_NAME} > gsutil.dockerfile.log 2>&1 -gsutil cp $WORKSPACE/opnfv.properties \ -${STORE_URL}/opnfv-$OPNFV_ARTIFACT_VERSION.properties > gsutil.properties.log 2>&1 -gsutil cp $WORKSPACE/opnfv.properties \ - ${STORE_URL}/latest.properties > gsutil.latest.log 2>&1 - -gsutil -m setmeta \ - -h "Content-Type:text/html" \ - -h "Cache-Control:private, max-age=0, no-transform" \ - ${STORE_URL}/latest.properties \ - ${STORE_URL}/opnfv-$OPNFV_ARTIFACT_VERSION.properties > /dev/null 2>&1 - -gsutil -m setmeta \ - -h "Cache-Control:private, max-age=0, no-transform" \ - ${STORE_URL}/${STORE_FILE_NAME} > /dev/null 2>&1 - -# disabled errexit due to gsutil setmeta complaints -# BadRequestException: 400 Invalid argument -# check if we uploaded the file successfully to see if things are fine -gsutil ls ${STORE_URL}/${STORE_FILE_NAME} > /dev/null 2>&1 -if [[ $? -ne 0 ]]; then - echo "Problem while uploading artifact!" - exit 1 -fi - -echo "dovetail: uploading Done!" -echo -echo "--------------------------------------------------------" -echo -} - -#importkey -#sign -upload diff --git a/jjb/dovetail/dovetail-ci-jobs.yaml b/jjb/dovetail/dovetail-ci-jobs.yaml deleted file mode 100644 index 3e5c052f6..000000000 --- a/jjb/dovetail/dovetail-ci-jobs.yaml +++ /dev/null @@ -1,300 +0,0 @@ ---- -################################### -# job configuration for dovetail -################################### -- project: - name: dovetail - - project: '{name}' - - # -------------------------------------- - # BRANCH ANCHORS - # -------------------------------------- - # 1)the stream/branch here represents the SUT(System Under Test) stream/branch - # 2)docker-tag is the docker tag of dovetail(only master by now, then all latest used) - # the dovetail stream is one-to-one mapping with dovetail docker-tag - # the dovetail is not sync with A/B/C release - master: &master - stream: master - branch: '{stream}' - dovetail-branch: '{stream}' - gs-pathname: '' - docker-tag: 'latest' - disabled: true - hunter: &hunter - stream: hunter - branch: 'stable/{stream}' - dovetail-branch: 'master' - gs-pathname: '/{stream}' - docker-tag: 'latest' - - # ---------------------------------- - # POD, PLATFORM, AND BRANCH MAPPING - # ---------------------------------- - # CI PODs - # This section should only contain the SUTs - # that have been switched using labels for slaves - # ----------------------------------------------- - # the pods, SUTs listed here are just examples to - # let the dovetail tool run, there can be more ways beside CI to - # run the dovetail tool. - # pods, SUTs will be added/adjusted when needed - pod: - # fuel CI PODs - - baremetal: - slave-label: fuel-baremetal - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - virtual: - slave-label: fuel-virtual - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - baremetal: - slave-label: fuel-baremetal - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *hunter - - virtual: - slave-label: fuel-virtual - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *hunter - # ------------------------------- - # Installers not using labels - # CI PODs - # This section should only contain the installers - # that have not been switched using labels for slaves - # ------------------------------- - # apex PODs - - virtual: - slave-label: apex-virtual-master - SUT: apex - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - baremetal: - slave-label: apex-baremetal-master - SUT: apex - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - virtual: - slave-label: apex-virtual-master - SUT: apex - auto-trigger-name: 'daily-trigger-disabled' - <<: *hunter - - baremetal: - slave-label: apex-baremetal-master - SUT: apex - auto-trigger-name: 'daily-trigger-disabled' - <<: *hunter - # armband CI PODs - - armband-baremetal: - slave-label: armband-baremetal - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - armband-virtual: - slave-label: armband-virtual - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - # ------------------------------- - # None-CI PODs - # ------------------------------- - - zte-pod1: - slave-label: zte-pod1 - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - zte-pod2: - slave-label: zte-pod2 - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - zte-pod3: - slave-label: zte-pod3 - SUT: fuel - auto-trigger-name: 'daily-trigger-disabled' - <<: *master - - # ------------------------------- - testsuite: - - 'default' - - 'proposed_tests' - - testarea: - - 'mandatory' - - 'optional' - - jobs: - - 'dovetail-{SUT}-{pod}-{testsuite}-{stream}' - - 'dovetail-{SUT}-{pod}-{testsuite}-{testarea}-{stream}' - -################################ -# job templates -################################ -- job-template: - name: 'dovetail-{SUT}-{pod}-{testsuite}-{stream}' - - disabled: false - - concurrent: true - - properties: - - logrotate-default - - throttle: - enabled: true - max-per-node: 1 - option: 'project' - - wrappers: - - build-name: - name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' - - timeout: - timeout: 300 - abort: true - - fix-workspace-permissions - - triggers: - - '{auto-trigger-name}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{dovetail-branch}' - - '{SUT}-defaults' - - '{slave-label}-defaults' - - string: - name: DEPLOY_SCENARIO - default: 'os-nosdn-nofeature-ha' - - string: - name: DOCKER_TAG - default: '{docker-tag}' - description: 'Tag to pull dovetail docker image' - - string: - name: CI_DEBUG - default: 'true' - description: "Show debug output information" - - string: - name: TESTSUITE - default: '{testsuite}' - description: "dovetail testsuite to run" - - string: - name: TESTAREA - default: 'all' - description: "dovetail testarea to run" - - string: - name: DOVETAIL_REPO_DIR - default: "/home/opnfv/dovetail" - description: "Directory where the dovetail repository is cloned" - - string: - name: SUT_BRANCH - default: '{branch}' - description: "SUT branch" - - scm: - - git-scm - - builders: - - description-setter: - description: "POD: $NODE_NAME" - - 'dovetail-cleanup' - - 'dovetail-run' - - publishers: - - archive: - artifacts: 'results/**/*' - allow-empty: true - fingerprint: true - - email-jenkins-admins-on-failure - -- job-template: - name: 'dovetail-{SUT}-{pod}-{testsuite}-{testarea}-{stream}' - - disabled: false - - concurrent: true - - properties: - - logrotate-default - - throttle: - enabled: true - max-per-node: 1 - option: 'project' - - wrappers: - - build-name: - name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' - - timeout: - timeout: 300 - abort: true - - fix-workspace-permissions - - triggers: - - '{auto-trigger-name}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{dovetail-branch}' - - '{SUT}-defaults' - - '{slave-label}-defaults' - - string: - name: DEPLOY_SCENARIO - default: 'os-nosdn-nofeature-ha' - - string: - name: DOCKER_TAG - default: '{docker-tag}' - description: 'Tag to pull dovetail docker image' - - string: - name: CI_DEBUG - default: 'true' - description: "Show debug output information" - - string: - name: TESTSUITE - default: '{testsuite}' - description: "dovetail testsuite to run" - - string: - name: TESTAREA - default: '{testarea}' - description: "dovetail testarea to run" - - string: - name: DOVETAIL_REPO_DIR - default: "/home/opnfv/dovetail" - description: "Directory where the dovetail repository is cloned" - - string: - name: SUT_BRANCH - default: '{branch}' - description: "SUT branch" - - scm: - - git-scm - - builders: - - description-setter: - description: "POD: $NODE_NAME" - - 'dovetail-cleanup' - - 'dovetail-run' - - publishers: - - archive: - artifacts: 'results/**/*' - allow-empty: true - fingerprint: true - - email-jenkins-admins-on-failure - -# ------------------------- -# builder macros -# ------------------------- -- builder: - name: dovetail-run - builders: - - shell: - !include-raw: ./dovetail-run.sh - -- builder: - name: dovetail-cleanup - builders: - - shell: - !include-raw: ./dovetail-cleanup.sh diff --git a/jjb/dovetail/dovetail-cleanup.sh b/jjb/dovetail/dovetail-cleanup.sh deleted file mode 100755 index 2d66fe022..000000000 --- a/jjb/dovetail/dovetail-cleanup.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/bash -############################################################################## -# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others. -# 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 -############################################################################## - -[[ $CI_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null" - -# clean up dependent project docker images, which has no containers and image tag None -clean_images=(opnfv/functest opnfv/yardstick opnfv/testapi mongo) -for clean_image in "${clean_images[@]}"; do - dangling_images=($(docker images -f "dangling=true" | grep ${clean_image} | awk '{print $3}')) - if [[ -n ${dangling_images} ]]; then - for image_id in "${dangling_images[@]}"; do - echo "Removing image $image_id, which has no containers and image tag is None" - docker rmi $image_id >${redirect} - done - fi -done - -echo "Remove dovetail images with tag None and containers with these images ..." -dangling_images=($(docker images -f "dangling=true" | grep opnfv/dovetail | awk '{print $3}')) -if [[ -n ${dangling_images} ]]; then - for image_id in "${dangling_images[@]}"; do - echo "Removing image $image_id with tag None and its related containers" - docker ps -a | grep $image_id | awk '{print $1}'| xargs docker rm -f >${redirect} - docker rmi $image_id >${redirect} - done -fi - -echo "Cleaning up dovetail docker containers..." -if [[ ! -z $(docker ps -a | grep opnfv/dovetail) ]]; then - echo "Removing existing opnfv/dovetail containers..." - docker ps -a | grep opnfv/dovetail | awk '{print $1}' | xargs docker rm -f >${redirect} -fi - -#echo "Remove dovetail existing images if exist..." -#if [[ ! -z $(docker images | grep opnfv/dovetail) ]]; then -# echo "Docker images to remove:" -# docker images | head -1 && docker images | grep opnfv/dovetail >${redirect} -# image_tags=($(docker images | grep opnfv/dovetail | awk '{print $2}')) -# for tag in "${image_tags[@]}"; do -# echo "Removing docker image opnfv/dovetail:$tag..." -# docker rmi opnfv/dovetail:$tag >${redirect} -# done -#fi diff --git a/jjb/dovetail/dovetail-project-jobs.yaml b/jjb/dovetail/dovetail-project-jobs.yaml deleted file mode 100644 index 3a3b1e9b4..000000000 --- a/jjb/dovetail/dovetail-project-jobs.yaml +++ /dev/null @@ -1,118 +0,0 @@ ---- -################################################### -# Non-ci jobs for Dovetail project -# They will only be enabled on request by projects! -################################################### -- project: - name: dovetail-project-jobs - - project: 'dovetail' - - jobs: - - 'dovetail-verify-{stream}' - - 'dovetail-merge-{stream}' - - stream: - - master: - branch: '{stream}' - disabled: false - - hunter: - branch: 'stable/{stream}' - disabled: false - - jerma: - branch: 'stable/{stream}' - disabled: false - -################################ -# job templates -################################ - -- job-template: - name: 'dovetail-verify-{stream}' - - disabled: '{obj:disabled}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-ubuntu-defaults' - - scm: - - git-scm-gerrit - - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event: - exclude-drafts: 'false' - exclude-trivial-rebase: 'false' - exclude-no-code-change: 'false' - - draft-published-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - builders: - - dovetail-unit-tests - -- job-template: - name: 'dovetail-merge-{stream}' - - disabled: '{obj:disabled}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-ubuntu-defaults' - - scm: - - git-scm - - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - change-merged-event - - comment-added-contains-event: - comment-contains-value: 'remerge' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - - builders: - - dovetail-unit-tests - -################################ -# builders for dovetail project -############################### -- builder: - name: dovetail-hello-world - builders: - - shell: | - #!/bin/bash - set -o errexit - - echo "hello world" - - -- builder: - name: dovetail-unit-tests - builders: - - shell: | - #!/bin/bash - set -o errexit - set -o pipefail - - tox diff --git a/jjb/dovetail/dovetail-rtd-jobs.yaml b/jjb/dovetail/dovetail-rtd-jobs.yaml deleted file mode 100644 index 1190f65a7..000000000 --- a/jjb/dovetail/dovetail-rtd-jobs.yaml +++ /dev/null @@ -1,23 +0,0 @@ ---- -- project: - name: dovetail-rtd - project: dovetail - project-name: dovetail - - project-pattern: 'dovetail' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-dovetail/47364/' - rtd-token: '47df9d7358b153666c2cf5cc139cd3a65d135688' - - stream: - - master: - branch: '{stream}' - disabled: false - - hunter: - branch: 'stable/{stream}' - disabled: false - - jerma: - branch: 'stable/{stream}' - disabled: false - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/dovetail/dovetail-run.sh b/jjb/dovetail/dovetail-run.sh deleted file mode 100755 index a52019e41..000000000 --- a/jjb/dovetail/dovetail-run.sh +++ /dev/null @@ -1,451 +0,0 @@ -#!/bin/bash -############################################################################## -# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others. -# 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 -############################################################################## - -#the noun INSTALLER is used in community, here is just the example to run. -#multi-platforms are supported. - -set -e -[[ $CI_DEBUG == true ]] && redirect="/dev/stdout" || redirect="/dev/null" - -DEPLOY_TYPE=baremetal -[[ $BUILD_TAG =~ "virtual" ]] && DEPLOY_TYPE=virt - -DOVETAIL_HOME=${WORKSPACE}/ovp -[ -d ${DOVETAIL_HOME} ] && sudo rm -rf ${DOVETAIL_HOME} - -mkdir -p ${DOVETAIL_HOME} - -DOVETAIL_CONFIG=${DOVETAIL_HOME}/pre_config -mkdir -p ${DOVETAIL_CONFIG} - -DOVETAIL_IMAGES=${DOVETAIL_HOME}/images -mkdir -p ${DOVETAIL_IMAGES} - -OPENRC=${DOVETAIL_CONFIG}/env_config.sh -CACERT=${DOVETAIL_CONFIG}/os_cacert -POD=${DOVETAIL_CONFIG}/pod.yaml - -ssh_options="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" - -sshkey="" - -TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results - -check_file_exists() { - if [[ -f $1 ]]; then - echo 0 - else - echo 1 - fi -} - -get_cred_file_with_scripts() { - echo "INFO: clone releng repo..." - releng_repo=${WORKSPACE}/releng - [ -d ${releng_repo} ] && sudo rm -rf ${releng_repo} - git clone https://gerrit.opnfv.org/gerrit/releng ${releng_repo} >/dev/null - - echo "INFO: clone pharos repo..." - pharos_repo=${WORKSPACE}/pharos - [ -d ${pharos_repo} ] && sudo rm -rf ${pharos_repo} - git clone https://git.opnfv.org/pharos ${pharos_repo} >/dev/null - - echo "INFO: SUT branch is $SUT_BRANCH" - echo "INFO: dovetail branch is $BRANCH" - BRANCH_BACKUP=$BRANCH - export BRANCH=$SUT_BRANCH - cmd="${releng_repo}/utils/fetch_os_creds.sh -d ${OPENRC} -i ${INSTALLER_TYPE} -a ${INSTALLER_IP} -o ${CACERT} >${redirect}" - echo "INFO: cmd is ${cmd}" - ${cmd} - export BRANCH=$BRANCH_BACKUP -} - -get_apex_cred_file() { - instack_mac=$(sudo virsh domiflist undercloud | grep default | \ - grep -Eo "[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+:[0-9a-f]+") - INSTALLER_IP=$(/usr/sbin/arp -e | grep ${instack_mac} | awk {'print $1'}) - sshkey="-v /root/.ssh/id_rsa:/root/.ssh/id_rsa" - if [[ -n $(sudo iptables -L FORWARD |grep "REJECT"|grep "reject-with icmp-port-unreachable") ]]; then - #note: this happens only in opnfv-lf-pod1 - sudo iptables -D FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable - sudo iptables -D FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable - fi - get_cred_file_with_scripts -} - -get_fuel_cred_file() { - get_cred_file_with_scripts -} - -get_joid_cred_file() { - # If production lab then creds may be retrieved dynamically - # creds are on the jumphost, always in the same folder - sudo cp $LAB_CONFIG/admin-openrc $OPENRC -} - -change_cred_file_cacert_path() { - if [[ ${INSTALLER_TYPE} == "apex" ]]; then - echo "INFO: apex doesn't need to set OS_CACERT." - return 0 - fi - exists=`check_file_exists ${CACERT}` - if [[ $exists == 0 ]]; then - echo "INFO: set ${INSTALLER_TYPE} openstack cacert file to be ${CACERT}" - if [[ ${INSTALLER_TYPE} == "fuel" ]]; then - sed -i "s#/etc/ssl/certs/mcp_os_cacert#${CACERT}#g" ${OPENRC} - fi - else - echo "ERROR: cannot find file ${CACERT}. Please check if it exists." - sudo ls -al ${DOVETAIL_CONFIG} - exit 1 - fi -} - -change_cred_file_ext_net() { - exists=`check_file_exists ${OPENRC}` - if [[ $exists == 0 ]]; then - echo "export EXTERNAL_NETWORK=${EXTERNAL_NETWORK}" >> ${OPENRC} - else - echo "ERROR: cannot find file $OPENRC. Please check if it exists." - sudo ls -al ${DOVETAIL_CONFIG} - exit 1 - fi -} - -get_cred_file() { - if [[ ${INSTALLER_TYPE} == 'apex' ]]; then - get_apex_cred_file - elif [[ ${INSTALLER_TYPE} == 'fuel' ]]; then - get_fuel_cred_file - elif [[ ${INSTALLER_TYPE} == 'joid' ]]; then - get_joid_cred_file - fi - - exists=`check_file_exists ${OPENRC}` - if [[ $exists == 0 ]]; then - echo "INFO: original openstack credentials file is:" - cat $OPENRC - echo "INFO: change cacert file path in credentials file" - change_cred_file_cacert_path - #echo "INFO: set external network in credentials file" - #change_cred_file_ext_net - echo "INFO: final openstack credentials file is:" - cat $OPENRC - else - echo "ERROR: cannot find file $OPENRC. Please check if it exists." - sudo ls -al ${DOVETAIL_CONFIG} - exit 1 - fi -} - -get_fuel_baremetal_pod_file() { - fuel_ctl_ssh_options="${ssh_options} -i ${SSH_KEY}" - ssh_user="ubuntu" - fuel_ctl_ip=$(ssh 2>/dev/null ${fuel_ctl_ssh_options} "${ssh_user}@${INSTALLER_IP}" \ - "sudo salt 'cfg*' pillar.get _param:openstack_control_address --out text| \ - cut -f2 -d' '") - fuel_cmp_ip=$(ssh 2>/dev/null ${fuel_ctl_ssh_options} "${ssh_user}@${INSTALLER_IP}" \ - "sudo salt 'cmp001*' pillar.get _param:openstack_control_address --out text| \ - cut -f2 -d' '") - fuel_dbs_ip=$(ssh 2>/dev/null ${fuel_ctl_ssh_options} "${ssh_user}@${INSTALLER_IP}" \ - "sudo salt 'dbs01*' pillar.get _param:openstack_database_node01_address --out text| \ - cut -f2 -d' '") - fuel_msg_ip=$(ssh 2>/dev/null ${fuel_ctl_ssh_options} "${ssh_user}@${INSTALLER_IP}" \ - "sudo salt 'msg01*' pillar.get _param:openstack_message_queue_node01_address --out text| \ - cut -f2 -d' '") - ipmi_index=$(ssh 2>/dev/null ${fuel_ctl_ssh_options} "${ssh_user}@${INSTALLER_IP}" \ - "sudo salt 'ctl*' network.ip_addrs cidr=${fuel_ctl_ip} --out text | grep ${fuel_ctl_ip} | cut -c 5") - - organization="$(cut -d'-' -f1 <<< "${NODE_NAME}")" - pod_name="$(cut -d'-' -f2 <<< "${NODE_NAME}")" - pdf_file=${pharos_repo}/labs/${organization}/${pod_name}.yaml - ipmiIp=$(cat ${pdf_file} | shyaml get-value nodes.$[ipmi_index-1].remote_management.address) - ipmiIp="$(cut -d'/' -f1 <<< "${ipmiIp}")" - ipmiPass=$(cat ${pdf_file} | shyaml get-value nodes.$[ipmi_index-1].remote_management.pass) - ipmiUser=$(cat ${pdf_file} | shyaml get-value nodes.$[ipmi_index-1].remote_management.user) - [[ $ipmiUser == ENC* ]] && ipmiUser=$(eyaml decrypt -s ${ipmiUser//[[:blank:]]/}) - [[ $ipmiPass == ENC* ]] && ipmiPass=$(eyaml decrypt -s ${ipmiPass//[[:blank:]]/}) - - cat << EOF >${POD} -nodes: -- {ip: ${INSTALLER_IP}, name: node0, key_filename: ${DOVETAIL_CONFIG}/id_rsa, - role: Jumpserver, user: ${ssh_user}} -- {ip: ${fuel_ctl_ip}, name: node1, key_filename: ${DOVETAIL_CONFIG}/id_rsa, - role: controller, user: ${ssh_user}, ipmi_ip: ${ipmiIp}, ipmi_user: ${ipmiUser}, ipmi_password: ${ipmiPass}} -- {ip: ${fuel_msg_ip}, name: msg01, key_filename: ${DOVETAIL_CONFIG}/id_rsa, role: controller, user: ${ssh_user}} -- {ip: ${fuel_cmp_ip}, name: cmp01, key_filename: ${DOVETAIL_CONFIG}/id_rsa, role: controller, user: ${ssh_user}} -- {ip: ${fuel_dbs_ip}, name: dbs01, key_filename: ${DOVETAIL_CONFIG}/id_rsa, role: controller, user: ${ssh_user}} -EOF -} - -get_pod_file_with_scripts() { - set +e - sudo pip install virtualenv - - cd ${releng_repo}/modules - sudo virtualenv venv - source venv/bin/activate - sudo pip install -e ./ >/dev/null - sudo pip install netaddr - - if [[ ${INSTALLER_TYPE} == fuel ]]; then - options="-u ubuntu -k /root/.ssh/id_rsa" - elif [[ ${INSTALLER_TYPE} == apex ]]; then - options="-u stack -k /root/.ssh/id_rsa" - elif [[ ${INSTALLER_TYPE} == daisy ]]; then - options="-u root -p r00tme" - else - echo "WARNING: Don't support to generate ${POD} on ${INSTALLER_TYPE} currently." - echo "WARNING: HA test cases may not run properly." - fi - - cmd="sudo python ${releng_repo}/utils/create_pod_file.py -t ${INSTALLER_TYPE} \ - -i ${INSTALLER_IP} ${options} -f ${POD} \ - -s ${DOVETAIL_CONFIG}/id_rsa" - echo "INFO: cmd is ${cmd}" - ${cmd} - - deactivate - set -e - cd ${WORKSPACE} -} - -change_apex_pod_file_process_info() { - cat << EOF >> ${POD} -process_info: -- {testcase_name: yardstick.ha.rabbitmq, attack_process: rabbitmq_server} -- {testcase_name: yardstick.ha.cinder_api, attack_process: cinder_wsgi} -EOF -} - -change_fuel_pod_file_process_info() { - cat << EOF >> ${POD} -process_info: -- {testcase_name: yardstick.ha.cinder_api, attack_process: cinder-wsgi} -- {testcase_name: yardstick.ha.rabbitmq, attack_process: rabbitmq_server, attack_host: msg01} -- {testcase_name: yardstick.ha.neutron_l3_agent, attack_process: neutron-l3-agent, attack_host: cmp01} -- {testcase_name: yardstick.ha.database, attack_process: mysqld, attack_host: dbs01} -EOF -} - -change_pod_file_process_info() { - sudo chmod 666 ${POD} - echo "INFO: adapt process info for $INSTALLER_TYPE ..." - if [ "$INSTALLER_TYPE" == "apex" ]; then - change_apex_pod_file_process_info - elif [ "$INSTALLER_TYPE" == "fuel" ]; then - change_fuel_pod_file_process_info - fi -} - -get_pod_file() { - # These packages are used for parsing yaml files and decrypting ipmi user and password. - sudo pip install shyaml - sudo yum install -y rubygems || sudo apt-get install -y ruby - sudo gem install hiera-eyaml - if [[ ${INSTALLER_TYPE} == 'fuel' && ${DEPLOY_TYPE} == 'baremetal' ]]; then - get_fuel_baremetal_pod_file - fi - - exists=`check_file_exists ${POD}` - if [[ $exists == 1 ]]; then - get_pod_file_with_scripts - fi - - exists=`check_file_exists ${POD}` - if [[ $exists == 0 ]]; then - change_pod_file_process_info - else - echo "ERROR: cannot find file ${POD}. Please check if it exists." - sudo ls -al ${DOVETAIL_CONFIG} - exit 1 - fi - - echo "INFO: file ${POD} is:" - cat ${POD} -} - -get_cred_file -get_pod_file - -if [ "$INSTALLER_TYPE" == "fuel" ]; then - if [[ "${SUT_BRANCH}" =~ "danube" ]]; then - echo "Fetching id_rsa file from jump_server $INSTALLER_IP..." - sshpass -p r00tme sudo scp $ssh_options root@${INSTALLER_IP}:~/.ssh/id_rsa ${DOVETAIL_CONFIG}/id_rsa - else - cp ${SSH_KEY} ${DOVETAIL_CONFIG}/id_rsa - fi -fi - -if [ "$INSTALLER_TYPE" == "apex" ]; then - echo "Fetching id_rsa file from jump_server $INSTALLER_IP..." - sudo scp $ssh_options stack@${INSTALLER_IP}:~/.ssh/id_rsa ${DOVETAIL_CONFIG}/id_rsa -fi - -if [ "$INSTALLER_TYPE" == "daisy" ]; then - echo "Fetching id_dsa file from jump_server $INSTALLER_IP..." - sshpass -p r00tme sudo scp $ssh_options root@${INSTALLER_IP}:~/.ssh/id_dsa ${DOVETAIL_CONFIG}/id_rsa -fi - - -image_path=${HOME}/opnfv/dovetail/images -if [[ ! -d ${image_path} ]]; then - mkdir -p ${image_path} -fi -# sdnvpn test case needs to download this image first before running -ubuntu_image=${image_path}/ubuntu-16.04-server-cloudimg-amd64-disk1.img -if [[ ! -f ${ubuntu_image} ]]; then - echo "Download image ubuntu-16.04-server-cloudimg-amd64-disk1.img ..." - wget -q -nc https://artifacts.opnfv.org/sdnvpn/ubuntu-16.04-server-cloudimg-amd64-disk1.img -P ${image_path} -fi -sudo cp ${ubuntu_image} ${DOVETAIL_IMAGES} - -# yardstick and bottlenecks need to download this image first before running -cirros_image=${image_path}/cirros-0.3.5-x86_64-disk.img -if [[ ! -f ${cirros_image} ]]; then - echo "Download image cirros-0.3.5-x86_64-disk.img ..." - wget -q -nc http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img -P ${image_path} -fi -sudo cp ${cirros_image} ${DOVETAIL_IMAGES} - -# functest needs to download this image first before running -cirros_image=${image_path}/cirros-0.4.0-x86_64-disk.img -if [[ ! -f ${cirros_image} ]]; then - echo "Download image cirros-0.4.0-x86_64-disk.img ..." - wget -q -nc http://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img -P ${image_path} -fi -sudo cp ${cirros_image} ${DOVETAIL_IMAGES} - -# snaps_smoke test case needs to download this image first before running -ubuntu14_image=${image_path}/ubuntu-14.04-server-cloudimg-amd64-disk1.img -if [[ ! -f ${ubuntu14_image} ]]; then - echo "Download image ubuntu-14.04-server-cloudimg-amd64-disk1.img ..." - wget -q -nc https://cloud-images.ubuntu.com/releases/14.04/release/ubuntu-14.04-server-cloudimg-amd64-disk1.img -P ${image_path} -fi -sudo cp ${ubuntu14_image} ${DOVETAIL_IMAGES} - -# cloudify_ims test case needs to download these 2 images first before running -cloudify_image=${image_path}/cloudify-manager-premium-4.0.1.qcow2 -if [[ ! -f ${cloudify_image} ]]; then - echo "Download image cloudify-manager-premium-4.0.1.qcow2 ..." - wget -q -nc http://repository.cloudifysource.org/cloudify/4.0.1/sp-release/cloudify-manager-premium-4.0.1.qcow2 -P ${image_path} -fi -sudo cp ${cloudify_image} ${DOVETAIL_IMAGES} -trusty_image=${image_path}/trusty-server-cloudimg-amd64-disk1.img -if [[ ! -f ${trusty_image} ]]; then - echo "Download image trusty-server-cloudimg-amd64-disk1.img ..." - wget -q -nc http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img -P ${image_path} -fi -sudo cp ${trusty_image} ${DOVETAIL_IMAGES} - -opts="--privileged=true -id" - -docker_volume="-v /var/run/docker.sock:/var/run/docker.sock" -dovetail_home_volume="-v ${DOVETAIL_HOME}:${DOVETAIL_HOME}" - -# Pull the image with correct tag -DOCKER_REPO='opnfv/dovetail' -if [ "$(uname -m)" = 'aarch64' ]; then - DOCKER_REPO="${DOCKER_REPO}_$(uname -m)" - DOCKER_TAG="latest" -fi - -echo "Dovetail: Pulling image ${DOCKER_REPO}:${DOCKER_TAG}" -docker pull ${DOCKER_REPO}:$DOCKER_TAG >$redirect - -cmd="docker run ${opts} -e DOVETAIL_HOME=${DOVETAIL_HOME} -e INSTALLER_TYPE=${INSTALLER_TYPE} \ - -e DEPLOY_SCENARIO=${DEPLOY_SCENARIO} -e NODE_NAME=${NODE_NAME} -e BUILD_TAG=${BUILD_TAG} \ - -e TEST_DB_URL=${TEST_DB_URL} -e VERSION=${SUT_BRANCH} \ - ${docker_volume} ${dovetail_home_volume} \ - ${sshkey} ${DOCKER_REPO}:${DOCKER_TAG} /bin/bash" -echo "Dovetail: running docker run command: ${cmd}" -${cmd} >${redirect} -sleep 5 -container_id=$(docker ps | grep "${DOCKER_REPO}:${DOCKER_TAG}" | awk '{print $1}' | head -1) -echo "Container ID=${container_id}" -if [ -z ${container_id} ]; then - echo "Cannot find ${DOCKER_REPO} container ID ${container_id}. Please check if it exists." - docker ps -a - exit 1 -fi -echo "Container Start: docker start ${container_id}" -docker start ${container_id} -sleep 5 -docker ps >${redirect} -if [ $(docker ps | grep "${DOCKER_REPO}:${DOCKER_TAG}" | wc -l) == 0 ]; then - echo "The container ${DOCKER_REPO} with ID=${container_id} has not been properly started. Exiting..." - exit 1 -fi - -# Modify tempest_conf.yaml file -tempest_conf_file=${DOVETAIL_CONFIG}/tempest_conf.yaml -if [[ ${INSTALLER_TYPE} == 'apex' ]]; then - volume_device='vdb' -else - volume_device='vdc' -fi - -cat << EOF >$tempest_conf_file - -compute: - min_compute_nodes: 2 - volume_device_name: ${volume_device} - max_microversion: 2.65 - -EOF - -echo "${tempest_conf_file}..." -cat ${tempest_conf_file} - -cp_tempest_cmd="docker cp ${DOVETAIL_CONFIG}/tempest_conf.yaml $container_id:/home/opnfv/dovetail/dovetail/userconfig" -echo "exec command: ${cp_tempest_cmd}" -$cp_tempest_cmd - -if [[ ${TESTSUITE} == 'default' ]]; then - testsuite='' -else - testsuite="--testsuite ${TESTSUITE}" -fi - -if [[ ${TESTAREA} == 'mandatory' ]]; then - testarea='--mandatory' -elif [[ ${TESTAREA} == 'optional' ]]; then - testarea="--optional" -elif [[ ${TESTAREA} == 'all' ]]; then - testarea="" -else - testarea="--testarea ${TESTAREA}" -fi - -run_cmd="dovetail run ${testsuite} ${testarea} --deploy-scenario ${DEPLOY_SCENARIO} -d -r --opnfv-ci" -echo "Container exec command: ${run_cmd}" -docker exec $container_id ${run_cmd} - -sudo cp -r ${DOVETAIL_HOME}/results ./ -result_package=$(find ${DOVETAIL_HOME} -name 'logs_*') -echo "Results package is ${result_package}" -for item in ${result_package}; -do - sudo mv ${item} ./results -done - -# To make sure the file owner is the current user, for the copied results files in the above line -echo "Change owner of result files ..." -CURRENT_USER=${SUDO_USER:-$USER} -PRIMARY_GROUP=$(id -gn $CURRENT_USER) -echo "Current user is ${CURRENT_USER}, group is ${PRIMARY_GROUP}" -sudo chown -R ${CURRENT_USER}:${PRIMARY_GROUP} ./results - -#remove useless files to save disk space -sudo rm -rf ./results/workspace -sudo rm -f ./results/yardstick.img -sudo rm -f ./results/bottlenecks/tmp* - -echo "Dovetail: done!" - diff --git a/jjb/edgecloud/edgecloud-rtd-jobs.yaml b/jjb/edgecloud/edgecloud-rtd-jobs.yaml deleted file mode 100644 index 41b013716..000000000 --- a/jjb/edgecloud/edgecloud-rtd-jobs.yaml +++ /dev/null @@ -1,24 +0,0 @@ ---- -- project: - name: edgecloud-rtd - project: edgecloud - project-name: edgecloud - - project-pattern: 'edgecloud' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-edgecloud/52895/' - rtd-token: '47989bec8e8da44ab2f33491cd6031f0411d319b' - - stream: - - master: - branch: '{stream}' - disabled: false - - hunter: &hunter - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - - gambia: - branch: 'stable/{stream}' - disabled: false - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/edgecloud/edgecloud-views.yaml b/jjb/edgecloud/edgecloud-views.yaml deleted file mode 100644 index 2e865ddd0..000000000 --- a/jjb/edgecloud/edgecloud-views.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- project: - name: edgecloud-rtd-view - views: - - project-view - project-name: edgecloud diff --git a/jjb/fds/fds-rtd-jobs.yaml b/jjb/fds/fds-rtd-jobs.yaml deleted file mode 100644 index 9bf47b956..000000000 --- a/jjb/fds/fds-rtd-jobs.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -- project: - name: fds-rtd - project: fds - project-name: fds - - project-pattern: 'fds' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-fds/47367/' - rtd-token: '756989c50a7c8f3350c4943f3d39a73762a4cd85' - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/fds/fds-views.yaml b/jjb/fds/fds-views.yaml deleted file mode 100644 index d06b1af0b..000000000 --- a/jjb/fds/fds-views.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- project: - name: fds-view - views: - - project-view - project-name: fds diff --git a/jjb/fuel/fuel-daily-jobs.yaml b/jjb/fuel/fuel-daily-jobs.yaml deleted file mode 100644 index ceb86c995..000000000 --- a/jjb/fuel/fuel-daily-jobs.yaml +++ /dev/null @@ -1,704 +0,0 @@ ---- -# jenkins job templates for Fuel -- project: - - name: 'fuel' - - project: '{name}' - - installer: '{name}' - - # ------------------------------- - # BRANCH ANCHORS - # ------------------------------- - master: &master - stream: master - branch: '{stream}' - disabled: true - gs-pathname: '' - functest_docker_tag: iruya - iruya: &iruya - stream: iruya - branch: 'stable/{stream}' - disabled: true - gs-pathname: '/{stream}' - functest_docker_tag: '{stream}' - # ------------------------------- - # POD, INSTALLER, AND BRANCH MAPPING - # ------------------------------- - # CI PODs - # ------------------------------- - pod: - - baremetal: - slave-label: fuel-baremetal - <<: *master - - virtual: - slave-label: fuel-virtual - <<: *master - - baremetal: - slave-label: fuel-baremetal - <<: *iruya - - virtual: - slave-label: fuel-virtual - <<: *iruya - # ------------------------------- - # None-CI PODs - # ------------------------------- - - zte-pod1: - slave-label: zte-pod1 - <<: *master - - itri-pod1: - slave-label: itri-pod1 - <<: *master - disabled: true - # ------------------------------- - # scenarios - # ------------------------------- - scenario: - # HA scenarios - - 'os-nosdn-nofeature-ha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-odl-nofeature-ha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-ovn-nofeature-ha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-nosdn-ovs-ha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-nosdn-fdio-ha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - # NOHA scenarios - - 'os-nosdn-nofeature-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-odl-nofeature-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-odl-sfc-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-odl-bgpvpn-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-ovn-nofeature-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-odl-ovs-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-nosdn-ovs-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'os-nosdn-fdio-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - 'k8-calico-nofeature-noha': - auto-trigger-name: 'fuel-{scenario}-{pod}-daily-{stream}-trigger' - - jobs: - - 'fuel-{scenario}-{pod}-daily-{stream}' - - 'fuel-deploy-{pod}-daily-{stream}' - - 'fuel-collect-logs-{pod}-daily-{stream}' - -######################## -# job templates -######################## -- job-template: - name: 'fuel-{scenario}-{pod}-daily-{stream}' - - disabled: '{obj:disabled}' - - concurrent: false - - properties: - - logrotate-default - - throttle: - enabled: true - max-total: 4 - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'fuel-(os|k8)-.*?-{pod}-daily-.*' - - 'fuel-verify-.*' - blocking-level: 'NODE' - - wrappers: - - build-name: - name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' - - triggers: - - '{auto-trigger-name}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{installer}-defaults': - gs-pathname: '{gs-pathname}' - - '{slave-label}-defaults': - installer: '{installer}' - - string: - name: DEPLOY_SCENARIO - default: '{scenario}' - - builders: - - description-setter: - description: "Built on $NODE_NAME" - - trigger-builds: - - project: 'fuel-deploy-{pod}-daily-{stream}' - current-parameters: false - predefined-parameters: | - DEPLOY_SCENARIO={scenario} - INSTALLER_VERSION={stream} - same-node: true - block: true - - trigger-builds: - - project: 'functest-fuel-{pod}-daily-{stream}' - current-parameters: false - predefined-parameters: | - DEPLOY_SCENARIO={scenario} - INSTALLER_VERSION={stream} - DOCKER_TAG={functest_docker_tag} - same-node: true - block: true - block-thresholds: - build-step-failure-threshold: 'never' - failure-threshold: 'never' - unstable-threshold: 'FAILURE' - - trigger-builds: - - project: 'yardstick-fuel-{pod}-daily-{stream}' - current-parameters: false - predefined-parameters: | - DEPLOY_SCENARIO={scenario} - INSTALLER_VERSION={stream} - block: true - same-node: true - block-thresholds: - build-step-failure-threshold: 'never' - failure-threshold: 'never' - unstable-threshold: 'FAILURE' - # 1.here the stream means the SUT stream, dovetail stream is defined in its own job - # 2.testsuite default here is for the test cases already added into OVP - # 3.run default testsuite mandatory test cases against ha scenario - # 4.run default testsuite optional test cases against ha scenario twice one week - # 5.run proposed_tests testsuite optional test cases against ha scenario - # 6.not used for release criteria or compliance, only to debug the dovetail tool bugs - - conditional-step: - condition-kind: and - condition-operands: - - condition-kind: regex-match - regex: '.*-ha' - label: '{scenario}' - steps: - - trigger-builds: - - project: 'dovetail-fuel-{pod}-default-mandatory-{stream}' - current-parameters: false - predefined-parameters: | - DEPLOY_SCENARIO={scenario} - INSTALLER_VERSION={stream} - block: true - same-node: true - block-thresholds: - build-step-failure-threshold: 'never' - failure-threshold: 'never' - unstable-threshold: 'FAILURE' - - project: 'dovetail-fuel-{pod}-proposed_tests-optional-{stream}' - current-parameters: false - predefined-parameters: | - DEPLOY_SCENARIO={scenario} - INSTALLER_VERSION={stream} - block: true - same-node: true - block-thresholds: - build-step-failure-threshold: 'never' - failure-threshold: 'never' - unstable-threshold: 'FAILURE' - - conditional-step: - condition-kind: and - condition-operands: - - condition-kind: regex-match - regex: '.*-ha' - label: '{scenario}' - - condition-kind: day-of-week - day-selector: select-days - days: - MON: true - WED: true - use-build-time: true - steps: - - trigger-builds: - - project: 'dovetail-fuel-{pod}-default-optional-{stream}' - current-parameters: false - predefined-parameters: | - DEPLOY_SCENARIO={scenario} - INSTALLER_VERSION={stream} - block: true - same-node: true - block-thresholds: - build-step-failure-threshold: 'never' - failure-threshold: 'never' - unstable-threshold: 'FAILURE' - - trigger-builds: - - project: 'fuel-collect-logs-{pod}-daily-{stream}' - current-parameters: false - predefined-parameters: | - DEPLOY_SCENARIO={scenario} - INSTALLER_VERSION={stream} - block: true - same-node: true - block-thresholds: - build-step-failure-threshold: 'never' - failure-threshold: 'never' - unstable-threshold: 'FAILURE' - - publishers: - - email-jenkins-admins-on-failure - -- job-template: - name: 'fuel-deploy-{pod}-daily-{stream}' - - disabled: '{obj:disabled}' - - concurrent: true - - properties: - - logrotate-default - - throttle: - enabled: true - max-total: 4 - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'fuel-deploy-{pod}-daily-.*' - blocking-level: 'NODE' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{installer}-defaults': - gs-pathname: '{gs-pathname}' - - '{slave-label}-defaults': - installer: '{installer}' - - testapi-parameter - - string: - name: DEPLOY_SCENARIO - default: 'os-odl-nofeature-ha' - - scm: - - git-scm - - wrappers: - - build-name: - name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' - - builders: - - description-setter: - description: "Built on $NODE_NAME" - - track-begin-timestamp - - shell: - !include-raw-escape: ./fuel-deploy.sh - - publishers: - - email-jenkins-admins-on-failure - - report-provision-result - -- job-template: - name: 'fuel-collect-logs-{pod}-daily-{stream}' - - disabled: '{obj:disabled}' - - concurrent: true - - properties: - - logrotate-default - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{installer}-defaults': - gs-pathname: '{gs-pathname}' - - '{slave-label}-defaults': - installer: '{installer}' - - string: - name: DEPLOY_SCENARIO - default: 'os-odl-nofeature-ha' - - scm: - - git-scm - - wrappers: - - build-name: - name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' - - builders: - - description-setter: - description: "Built on $NODE_NAME" - - shell: - !include-raw-escape: ./fuel-logs.sh - - publishers: - - email-jenkins-admins-on-failure - -######################## -# trigger macros -######################## -# ---------------------------------------------- -# Triggers for job running on fuel-baremetal against master branch -# ---------------------------------------------- -# HA Scenarios -- trigger: - name: 'fuel-os-nosdn-nofeature-ha-baremetal-daily-master-trigger' - triggers: - - timed: '5 20 * * 1,2,4,6,7' -- trigger: - name: 'fuel-os-odl-nofeature-ha-baremetal-daily-master-trigger' - triggers: - - timed: '5 2 * * *' -- trigger: - name: 'fuel-os-nosdn-ovs-ha-baremetal-daily-master-trigger' - triggers: - - timed: '5 5 * * *' -- trigger: - name: 'fuel-os-ovn-nofeature-ha-baremetal-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-fdio-ha-baremetal-daily-master-trigger' - triggers: - - timed: '' - -# NOHA Scenarios -- trigger: - name: 'fuel-os-nosdn-nofeature-noha-baremetal-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl-nofeature-noha-baremetal-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl-sfc-noha-baremetal-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl-bgpvpn-noha-baremetal-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-ovn-nofeature-noha-baremetal-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl-ovs-noha-baremetal-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-ovs-noha-baremetal-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-fdio-noha-baremetal-daily-master-trigger' - triggers: - - timed: '5 20 * * 3,5' -- trigger: - name: 'fuel-k8-calico-nofeature-noha-baremetal-daily-master-trigger' - triggers: - - timed: '' -# ---------------------------------------------- -# Triggers for job running on fuel-baremetal against iruya branch -# ---------------------------------------------- -# HA Scenarios -- trigger: - name: 'fuel-os-nosdn-nofeature-ha-baremetal-daily-iruya-trigger' - triggers: - - timed: '0 20 * * 1,4,7' -- trigger: - name: 'fuel-os-odl-nofeature-ha-baremetal-daily-iruya-trigger' - triggers: - - timed: '0 2 * * *' -- trigger: - name: 'fuel-os-ovn-nofeature-ha-baremetal-daily-iruya-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-ovs-ha-baremetal-daily-iruya-trigger' - triggers: - - timed: '0 5 * * *' -- trigger: - name: 'fuel-os-nosdn-fdio-ha-baremetal-daily-iruya-trigger' - triggers: - - timed: '' -# NOHA Scenarios -- trigger: - name: 'fuel-os-nosdn-nofeature-noha-baremetal-daily-iruya-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl-nofeature-noha-baremetal-daily-iruya-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl-sfc-noha-baremetal-daily-iruya-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl-bgpvpn-noha-baremetal-daily-iruya-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-ovn-nofeature-noha-baremetal-daily-iruya-trigger' - triggers: - - timed: '0 20 * * 6' -- trigger: - name: 'fuel-os-odl-ovs-noha-baremetal-daily-iruya-trigger' - triggers: - - timed: '0 20 * * 2' -- trigger: - name: 'fuel-os-nosdn-ovs-noha-baremetal-daily-iruya-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-fdio-noha-baremetal-daily-iruya-trigger' - triggers: - - timed: '0 20 * * 3,5' -- trigger: - name: 'fuel-k8-calico-nofeature-noha-baremetal-daily-iruya-trigger' - triggers: - - timed: '' -# ---------------------------------------------- -# Triggers for job running on fuel-virtual against master branch -# ---------------------------------------------- -- trigger: - name: 'fuel-os-nosdn-nofeature-ha-virtual-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl-nofeature-ha-virtual-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-ovn-nofeature-ha-virtual-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-ovs-ha-virtual-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-fdio-ha-virtual-daily-master-trigger' - triggers: - - timed: '' -# NOHA Scenarios -- trigger: - name: 'fuel-os-nosdn-nofeature-noha-virtual-daily-master-trigger' - triggers: - - timed: '5 13 * * *' -- trigger: - name: 'fuel-os-odl-nofeature-noha-virtual-daily-master-trigger' - triggers: - - timed: '5 18 * * *' -- trigger: - name: 'fuel-os-odl-sfc-noha-virtual-daily-master-trigger' - triggers: - - timed: '5 4 * * 1,4' -- trigger: - name: 'fuel-os-odl-bgpvpn-noha-virtual-daily-master-trigger' - triggers: - - timed: '5 6 * * 2,5' -- trigger: - name: 'fuel-os-ovn-nofeature-noha-virtual-daily-master-trigger' - triggers: - - timed: '5 23 * * *' -- trigger: - name: 'fuel-os-odl-ovs-noha-virtual-daily-master-trigger' - triggers: - - timed: '5 2 * * *' -- trigger: - name: 'fuel-os-nosdn-ovs-noha-virtual-daily-master-trigger' - triggers: - - timed: '5 9 * * *' -- trigger: - name: 'fuel-os-nosdn-fdio-noha-virtual-daily-master-trigger' - triggers: - - timed: '5 20 * * *' -- trigger: - name: 'fuel-k8-calico-nofeature-noha-virtual-daily-master-trigger' - triggers: - - timed: '5 16 * * *' -# ---------------------------------------------- -# Triggers for job running on fuel-virtual against iruya branch -# ---------------------------------------------- -- trigger: - name: 'fuel-os-nosdn-nofeature-ha-virtual-daily-iruya-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl-nofeature-ha-virtual-daily-iruya-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-ovn-nofeature-ha-virtual-daily-iruya-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-ovs-ha-virtual-daily-iruya-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-fdio-ha-virtual-daily-iruya-trigger' - triggers: - - timed: '' -# NOHA Scenarios -- trigger: - name: 'fuel-os-nosdn-nofeature-noha-virtual-daily-iruya-trigger' - triggers: - - timed: '0 13 * * *' -- trigger: - name: 'fuel-os-odl-nofeature-noha-virtual-daily-iruya-trigger' - triggers: - - timed: '0 18 * * *' -- trigger: - name: 'fuel-os-odl-sfc-noha-virtual-daily-iruya-trigger' - triggers: - - timed: '0 4 * * 1,4' -- trigger: - name: 'fuel-os-odl-bgpvpn-noha-virtual-daily-iruya-trigger' - triggers: - - timed: '0 7 * * 2,5' -- trigger: - name: 'fuel-os-ovn-nofeature-noha-virtual-daily-iruya-trigger' - triggers: - - timed: '0 23 * * *' -- trigger: - name: 'fuel-os-odl-ovs-noha-virtual-daily-iruya-trigger' - triggers: - - timed: '0 2 * * *' -- trigger: - name: 'fuel-os-nosdn-ovs-noha-virtual-daily-iruya-trigger' - triggers: - - timed: '0 9 * * *' -- trigger: - name: 'fuel-os-nosdn-fdio-noha-virtual-daily-iruya-trigger' - triggers: - - timed: '0 13 * * 6,7' -- trigger: - name: 'fuel-k8-calico-nofeature-noha-virtual-daily-iruya-trigger' - triggers: - - timed: '5 13 * * 6,7' -# ---------------------------------------------- -# ZTE POD1 Triggers running against master branch -# ---------------------------------------------- -- trigger: - name: 'fuel-os-nosdn-nofeature-ha-zte-pod1-daily-master-trigger' - triggers: - - timed: '0 10 * * *' -- trigger: - name: 'fuel-os-odl-nofeature-ha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-ovn-nofeature-ha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-ovs-ha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-fdio-ha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -# NOHA Scenarios -- trigger: - name: 'fuel-os-nosdn-nofeature-noha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl-nofeature-noha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl-sfc-noha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl-bgpvpn-noha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-ovn-nofeature-noha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-odl-ovs-noha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-ovs-noha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-nosdn-fdio-noha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-k8-calico-nofeature-noha-zte-pod1-daily-master-trigger' - triggers: - - timed: '' -# ---------------------------------------------- -# ITRI POD1 Triggers running against master branch -# ---------------------------------------------- -- trigger: - name: 'fuel-os-nosdn-nofeature-ha-itri-pod1-daily-master-trigger' - triggers: - - timed: '0 13 * * 1' -- trigger: - name: 'fuel-os-odl-nofeature-ha-itri-pod1-daily-master-trigger' - triggers: - - timed: '0 17 * * 1' -- trigger: - name: 'fuel-os-ovn-nofeature-ha-itri-pod1-daily-master-trigger' - triggers: - - timed: '0 13 * * 2' -- trigger: - name: 'fuel-os-nosdn-ovs-ha-itri-pod1-daily-master-trigger' - triggers: - - timed: '0 17 * * 2' -- trigger: - name: 'fuel-os-nosdn-fdio-ha-itri-pod1-daily-master-trigger' - triggers: - - timed: '' -# NOHA Scenarios -- trigger: - name: 'fuel-os-nosdn-nofeature-noha-itri-pod1-daily-master-trigger' - triggers: - - timed: '0 13 * * 3' -- trigger: - name: 'fuel-os-odl-nofeature-noha-itri-pod1-daily-master-trigger' - triggers: - - timed: '0 17 * * 3' -- trigger: - name: 'fuel-os-odl-sfc-noha-itri-pod1-daily-master-trigger' - triggers: - - timed: '0 13 * * 4' -- trigger: - name: 'fuel-os-odl-bgpvpn-noha-itri-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-os-ovn-nofeature-noha-itri-pod1-daily-master-trigger' - triggers: - - timed: '0 17 * * 4' -- trigger: - name: 'fuel-os-odl-ovs-noha-itri-pod1-daily-master-trigger' - triggers: - - timed: '0 13 * * 5' -- trigger: - name: 'fuel-os-nosdn-ovs-noha-itri-pod1-daily-master-trigger' - triggers: - - timed: '0 17 * * 5' -- trigger: - name: 'fuel-os-nosdn-fdio-noha-itri-pod1-daily-master-trigger' - triggers: - - timed: '' -- trigger: - name: 'fuel-k8-calico-nofeature-noha-itri-pod1-daily-master-trigger' - triggers: - - timed: '0 13 * * 6' diff --git a/jjb/fuel/fuel-deploy.sh b/jjb/fuel/fuel-deploy.sh deleted file mode 100755 index dd89447e6..000000000 --- a/jjb/fuel/fuel-deploy.sh +++ /dev/null @@ -1,89 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2018 Ericsson AB, Mirantis Inc., Enea Software AB and others. -# 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 -############################################################################## -set -o nounset -set -o pipefail - -export TERM="vt220" - -# set deployment parameters -export TMPDIR=${HOME}/tmpdir -# shellcheck disable=SC2153 -LAB_NAME=${NODE_NAME/-*} -# shellcheck disable=SC2153 -POD_NAME=${NODE_NAME/*-} - -# Fuel currently supports arm, enea, ericsson, intel, lf, unh, zte and itri labs -if [[ ! "${LAB_NAME}" =~ (arm|enea|ericsson|intel|lf|unh|zte|itri) ]]; then - echo "Unsupported/unidentified lab ${LAB_NAME}. Cannot continue!" - exit 1 -fi - -echo "Using configuration for ${LAB_NAME}" - -# create TMPDIR if it doesn't exist, change permissions -mkdir -p "${TMPDIR}" -sudo chmod a+x "${HOME}" "${TMPDIR}" - -cd "${WORKSPACE}" || exit 1 - -# log file name -FUEL_LOG_FILENAME="${JOB_NAME}_${BUILD_NUMBER}.log.tar.gz" - -# Limited scope for vPOD verify jobs running on armband-virtual -[[ ! "${JOB_NAME}" =~ verify-deploy-virtual-arm64 ]] || EXTRA_ARGS='-e' - -# turn on DEBUG mode -[[ ${CI_DEBUG,,} == true ]] && EXTRA_ARGS="-D ${EXTRA_ARGS:-}" - -# construct the command -DEPLOY_COMMAND="${WORKSPACE}/ci/deploy.sh \ - -l ${LAB_NAME} -p ${POD_NAME} -s ${DEPLOY_SCENARIO} \ - -S ${TMPDIR} ${EXTRA_ARGS:-} \ - -L ${WORKSPACE}/${FUEL_LOG_FILENAME}" - -# log info to console -echo "Deployment parameters" -echo "--------------------------------------------------------" -echo "Scenario: ${DEPLOY_SCENARIO}" -echo "Lab: ${LAB_NAME}" -echo "POD: ${POD_NAME}" -echo -echo "Starting the deployment using ${INSTALLER_TYPE}. This could take some time..." -echo "--------------------------------------------------------" -echo - -# start the deployment -echo "Issuing command" -echo "${DEPLOY_COMMAND}" -echo - -${DEPLOY_COMMAND} -exit_code=$? - -echo -echo "--------------------------------------------------------" -echo "Deployment is done!" - -# upload logs for baremetal deployments -# work with virtual deployments is still going on, so skip that for now -if [[ "${JOB_NAME}" =~ baremetal-daily ]]; then - echo "Uploading deployment logs" - gsutil cp "${WORKSPACE}/${FUEL_LOG_FILENAME}" \ - "gs://${GS_URL}/logs/${FUEL_LOG_FILENAME}" > /dev/null 2>&1 - echo "Logs are available at http://${GS_URL}/logs/${FUEL_LOG_FILENAME}" -fi - -if [[ "${exit_code}" -ne 0 ]]; then - echo "Deployment failed!" - exit "${exit_code}" -fi - -echo "Deployment is successful!" -exit 0 diff --git a/jjb/fuel/fuel-docker-jobs.yaml b/jjb/fuel/fuel-docker-jobs.yaml deleted file mode 100644 index 922ff5c53..000000000 --- a/jjb/fuel/fuel-docker-jobs.yaml +++ /dev/null @@ -1,221 +0,0 @@ ---- -############################################## -# job configuration for docker build and push -############################################## -- project: - - name: fuel-docker - - project: fuel - - stream: - - master: - branch: '{stream}' - disabled: true - - iruya: - branch: 'stable/{stream}' - disabled: true - - arch_tag: - - 'amd64': - slave_label: 'opnfv-build-ubuntu' - - 'arm64': - slave_label: 'opnfv-build-ubuntu-arm' - - # settings for jobs run in multijob phases - build-job-settings: &build-job-settings - current-parameters: false - git-revision: true - node-parameters: false - predefined-parameters: | - PUSH_IMAGE=$PUSH_IMAGE - CACHE_INVALIDATE=$CACHE_INVALIDATE - COMMIT_ID=$COMMIT_ID - GERRIT_REFNAME=$GERRIT_REFNAME - kill-phase-on: FAILURE - abort-all-jobs: false - - manifest-job-settings: &manifest-job-settings - current-parameters: false - git-revision: true - node-parameters: false - predefined-parameters: - GERRIT_REFNAME=$GERRIT_REFNAME - kill-phase-on: FAILURE - abort-all-jobs: false - - jobs: - - "fuel-docker-{stream}" - - "fuel-docker-build-{arch_tag}-{stream}" - - "fuel-docker-manifest-{stream}" - -######################## -# job templates -######################## -- job-template: - name: 'fuel-docker-{stream}' - - project-type: multijob - - disabled: '{obj:disabled}' - - parameters: - - fuel-job-parameters: - project: '{project}' - branch: '{branch}' - slave_label: 'opnfv-build-ubuntu' - arch_tag: 'amd64' - - properties: - - throttle: - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'fuel-docker-.*' - blocking-level: 'NODE' - - scm: - - git-scm - - triggers: - - pollscm: - cron: "*/25 * * * *" - - gerrit-trigger-tag-created: - project: '{project}' - - builders: - - multijob: - name: 'build fuel images' - execution-type: PARALLEL - projects: - - name: 'fuel-docker-build-amd64-{stream}' - <<: *build-job-settings - - name: 'fuel-docker-build-arm64-{stream}' - <<: *build-job-settings - - multijob: - name: 'publish fuel manifests' - condition: SUCCESSFUL - execution-type: PARALLEL - projects: - - name: 'fuel-docker-manifest-{stream}' - <<: *manifest-job-settings - -- job-template: - name: 'fuel-docker-build-{arch_tag}-{stream}' - disabled: '{obj:disabled}' - parameters: - - fuel-job-parameters: - project: '{project}' - branch: '{branch}' - slave_label: '{slave_label}' - arch_tag: '{arch_tag}' - properties: - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'fuel-docker-build-.*' - blocking-level: 'NODE' - scm: - - git-scm - builders: - - shell: | - #!/bin/bash -ex - case "{stream}" in - "master") - tag="latest" ;; - *) - tag="{stream}" ;; - esac - ./ci/build.sh $tag - -- job-template: - name: 'fuel-docker-manifest-{stream}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - label: - name: SLAVE_LABEL - default: 'opnfv-build-ubuntu' - description: 'Slave label on Jenkins' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: PROJECT - default: "{project}" - description: "Project name used to enable job conditions" - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: REPO - default: "opnfv" - description: "Repository name for fuel-docker images" - - - disabled: '{obj:disabled}' - - builders: - - shell: | - #!/bin/bash -ex - case "{stream}" in - "master") - tag="latest" ;; - *) - tag="{stream}" ;; - esac - sudo manifest-tool push from-args \ - --platforms linux/amd64,linux/arm64 \ - --template $REPO/fuel:saltmaster-reclass-ARCH-$tag \ - --target $REPO/fuel:saltmaster-reclass-$tag - sudo manifest-tool push from-args \ - --platforms linux/amd64,linux/arm64 \ - --template $REPO/fuel:saltminion-maas-ARCH-$tag \ - --target $REPO/fuel:saltminion-maas-$tag - exit $? - -# parameter macro -- parameter: - name: fuel-job-parameters - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - label: - name: SLAVE_LABEL - default: '{slave_label}' - description: 'Slave label on Jenkins' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: PUSH_IMAGE - default: "true" - description: "To enable/disable pushing the image to Dockerhub." - - string: - name: CACHE_INVALIDATE - default: "0" - description: "Set to any non-zero value to force a Docker cache cleanup" - - string: - name: COMMIT_ID - default: "" - description: "commit id to make a snapshot docker image" - - string: - name: GERRIT_REFNAME - default: "" - description: "Docker tag to be built, e.g. refs/tags/5.0.0, refs/tags/opnfv-5.0.0, refs/tags/5.0.RC1" - - string: - name: PROJECT - default: "{project}" - description: "Project name used to enable job conditions" - - string: - name: REPO - default: "opnfv" - description: "Repository name for fuel-docker images" diff --git a/jjb/fuel/fuel-logs.sh b/jjb/fuel/fuel-logs.sh deleted file mode 100755 index a7d852685..000000000 --- a/jjb/fuel/fuel-logs.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2017 Ericsson AB, Mirantis Inc., Enea Software AB and others. -# 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 -############################################################################## -set -o nounset -set -o pipefail - -# Fuel requires deploy script to be ran with sudo, Armband does not -SUDO='sudo -E' -[ "${PROJECT}" = 'fuel' ] || SUDO= - -# Log file name -FUEL_PM_LOG_FILENAME="${JOB_NAME}_${BUILD_NUMBER}_pm.log.tar.gz" - -# Construct the command -LOG_COMMAND="${SUDO} ${WORKSPACE}/mcp/scripts/log.sh \ - ${WORKSPACE}/${FUEL_PM_LOG_FILENAME}" - -# Log info to console -echo "Collecting post mortem logs ..." -echo "--------------------------------------------------------" -echo "${LOG_COMMAND}" - -${LOG_COMMAND} - -# Upload logs for both baremetal and virtual deployments -echo "Uploading deployment logs" -echo "--------------------------------------------------------" -gsutil cp "${WORKSPACE}/${FUEL_PM_LOG_FILENAME}" \ - "gs://${GS_URL}/logs/${FUEL_PM_LOG_FILENAME}" > /dev/null 2>&1 -echo "Logs are available at http://${GS_URL}/logs/${FUEL_PM_LOG_FILENAME}" diff --git a/jjb/fuel/fuel-rtd-jobs.yaml b/jjb/fuel/fuel-rtd-jobs.yaml deleted file mode 100644 index b93eeddf7..000000000 --- a/jjb/fuel/fuel-rtd-jobs.yaml +++ /dev/null @@ -1,20 +0,0 @@ ---- -- project: - name: fuel-rtd - project: fuel - project-name: fuel - - project-pattern: 'fuel' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-fuel/47205/' - rtd-token: '38f40bf6c08fd4bccb930871bc29b08404cf98b0' - - stream: - - master: - branch: '{stream}' - disabled: true - - iruya: - branch: 'stable/{stream}' - disabled: true - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/fuel/fuel-set-scenario.sh b/jjb/fuel/fuel-set-scenario.sh deleted file mode 100755 index 4c8ed7334..000000000 --- a/jjb/fuel/fuel-set-scenario.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2018 SUSE, Mirantis Inc., Enea Software AB and others. -# 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 -############################################################################## -set -o pipefail -set -x - -#---------------------------------------------------------------------- -# This script is used by CI and executed by Jenkins jobs. -# You are not supposed to use this script manually if you don't know -# what you are doing. -#---------------------------------------------------------------------- - -# This function allows developers to specify the impacted scenario by -# requesting a RE-check via a gerrit change comment under a specific format. -# -# Patterns to be searched in change comment: -# recheck: <scenario-name> -# reverify: <scenario-name> -# Examples: -# recheck: os-odl-ovs-noha -# reverify: os-nosdn-nofeature-ha - -function set_scenario() { - # process gerrit event comment text (if present) - DEPLOY_SCENARIO=$(echo "${GERRIT_EVENT_COMMENT_TEXT}" | \ - grep -Po '(?!:(recheck|reverify):\s*)([-\w]+ha)') - if [ -z "${DEPLOY_SCENARIO}" ]; then - if [[ "$JOB_NAME" =~ baremetal ]]; then - DEPLOY_SCENARIO='os-nosdn-nofeature-ha' - else - DEPLOY_SCENARIO='os-nosdn-nofeature-noha' - fi - fi - # save the scenario names into java properties file - # so they can be injected to downstream jobs via envInject - echo "Recording the scenario '${DEPLOY_SCENARIO}' for downstream jobs" - echo "DEPLOY_SCENARIO=${DEPLOY_SCENARIO}" > "$WORK_DIRECTORY/scenario.properties" -} - -# ensure GERRIT vars are set -[ -n "${GERRIT_CHANGE_NUMBER}" ] || exit 1 -GERRIT_EVENT_COMMENT_TEXT="${GERRIT_EVENT_COMMENT_TEXT:-''}" - -# this directory is where the temporary properties file will be stored -WORK_DIRECTORY=/tmp/$GERRIT_CHANGE_NUMBER -/bin/rm -rf "$WORK_DIRECTORY" && mkdir -p "$WORK_DIRECTORY" - -set_scenario diff --git a/jjb/fuel/fuel-verify-jobs.yaml b/jjb/fuel/fuel-verify-jobs.yaml deleted file mode 100644 index 7fd7317ba..000000000 --- a/jjb/fuel/fuel-verify-jobs.yaml +++ /dev/null @@ -1,271 +0,0 @@ ---- -- project: - name: 'fuel-verify-jobs' - - project: 'fuel' - - installer: 'fuel' - ##################################### - # branch definitions - ##################################### - stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: true - functest_docker_tag: iruya - - iruya: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: true - functest_docker_tag: '{stream}' - ##################################### - # cluster architectures - ##################################### - # Note: arm64 was removed since it was basically a no-op - arch_tag: - - 'amd64': - slave-label: 'fuel' - functest-suite-label: 'fuel' - ##################################### - # cluster types - ##################################### - type: - - 'virtual' - - 'baremetal' - ##################################### - # patch verification phases - ##################################### - phase: - - 'docker-build' - - 'deploy' - ##################################### - # jobs - ##################################### - jobs: - - 'fuel-verify-{type}-{arch_tag}-{stream}' - - 'fuel-verify-{phase}-{type}-{arch_tag}-{stream}' -##################################### -# job templates -##################################### -- job-template: - name: 'fuel-verify-{type}-{arch_tag}-{stream}' - - project-type: multijob - - disabled: '{obj:disabled}' - - concurrent: true - - properties: - - logrotate-default - - throttle: - enabled: true - max-total: 4 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'fuel-(os|k8)-.*?-daily-.*' - - 'fuel-verify-.*' - blocking-level: 'NODE' - - scm: - - git-scm-gerrit - - wrappers: - - ssh-agent-wrapper - - timeout: - timeout: 360 - fail: true - - triggers: - - 'fuel-verify-{type}-{arch_tag}-trigger': - project: '{project}' - branch: '{branch}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{slave-label}-{type}-defaults': - installer: '{installer}' - - '{installer}-defaults': - gs-pathname: '{gs-pathname}' - - builders: - - 'fuel-verify-set-scenario-macro' - - inject: - properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/scenario.properties" - - description-setter: - description: "Scenario: $DEPLOY_SCENARIO | Node: $NODE_NAME" - - multijob: - name: docker-build - condition: SUCCESSFUL - projects: - - name: 'fuel-verify-docker-build-{type}-{arch_tag}-{stream}' - current-parameters: false - predefined-parameters: | - BRANCH=$BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - - - multijob: - name: deploy - condition: SUCCESSFUL - projects: - - name: 'fuel-verify-deploy-{type}-{arch_tag}-{stream}' - current-parameters: false - predefined-parameters: | - MCP_DOCKER_TAG={arch_tag}-verify - DEPLOY_SCENARIO=$DEPLOY_SCENARIO - BRANCH=$BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - - - multijob: - name: smoke-test - condition: SUCCESSFUL - projects: - # Use Functest job definition from jjb/functest/functest-daily-jobs - - name: 'functest-{functest-suite-label}-{type}-suite-{stream}' - current-parameters: false - predefined-parameters: | - FUNCTEST_MODE=tier - FUNCTEST_TIER=healthcheck - DEPLOY_SCENARIO=$DEPLOY_SCENARIO - BRANCH=$BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - DOCKER_TAG={functest_docker_tag} - node-parameters: true - enable-condition: "def m = ! ('$NODE_LABELS' =~ /armband-virtual/)" - kill-phase-on: NEVER - abort-all-job: true - -- job-template: - name: 'fuel-verify-{phase}-{type}-{arch_tag}-{stream}' - - disabled: '{obj:disabled}' - - concurrent: true - - properties: - - logrotate-default - - throttle: - enabled: true - max-total: 2 - max-per-node: 1 - option: 'project' - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'fuel-verify-docker-build-.*' - - 'fuel-verify-deploy-.*' - blocking-level: 'NODE' - - scm: - - git-scm-gerrit - - wrappers: - - ssh-agent-wrapper - - timeout: - timeout: 360 - fail: true - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{slave-label}-{type}-defaults': - installer: '{installer}' - - '{installer}-defaults': - gs-pathname: '{gs-pathname}' - - builders: - - description-setter: - description: "Built on $NODE_NAME" - - '{project}-verify-{phase}-macro' -######################## -# trigger macros -######################## -- trigger: - name: 'fuel-verify-virtual-amd64-trigger' - triggers: - - gerrit: &fuel_verify_virtual_amd64_trigger - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event: - exclude-drafts: 'false' - exclude-trivial-rebase: 'false' - exclude-no-code-change: 'false' - - draft-published-event - - comment-added-contains-event: - comment-contains-value: '(recheck|reverify)(\s|$|:\s*[-\w]+-noha)' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: 'ci/**' - - compare-type: ANT - pattern: 'mcp/**' - disable-strict-forbidden-file-verification: 'true' - forbidden-file-paths: - - compare-type: ANT - pattern: 'docs/**' - readable-message: true -- trigger: - name: 'fuel-verify-virtual-arm64-trigger' - triggers: - - gerrit: - <<: *fuel_verify_virtual_amd64_trigger -- trigger: - name: 'fuel-verify-baremetal-amd64-trigger' - triggers: - - gerrit: &fuel_verify_baremetal_amd64_trigger - <<: *fuel_verify_virtual_amd64_trigger - trigger-on: - - comment-added-contains-event: - comment-contains-value: '(recheck|reverify):\s*[-\w]+-ha' -- trigger: - name: 'fuel-verify-baremetal-arm64-trigger' - triggers: - - gerrit: - <<: *fuel_verify_baremetal_amd64_trigger - skip-vote: - successful: true - failed: true - unstable: true - notbuilt: true -##################################### -# builder macros -##################################### -- builder: - name: 'fuel-verify-set-scenario-macro' - builders: - - shell: - !include-raw: ./fuel-set-scenario.sh -- builder: - name: 'fuel-verify-deploy-macro' - builders: - - shell: - !include-raw: ./fuel-deploy.sh -- builder: - name: 'fuel-verify-docker-build-macro' - builders: - - shell: | - #!/bin/bash -ex - sudo -E ./ci/build.sh 'verify' '' diff --git a/jjb/functest/functest-docker.yaml b/jjb/functest/functest-docker.yaml deleted file mode 100644 index 6915ab4fd..000000000 --- a/jjb/functest/functest-docker.yaml +++ /dev/null @@ -1,319 +0,0 @@ ---- -############################################## -# job configuration for docker build and push -############################################## -- project: - - name: functest-docker - - project: functest - - stream: - - master: - branch: '{stream}' - disabled: false - - leguer: - branch: 'stable/{stream}' - disabled: false - - kali: - branch: 'stable/{stream}' - disabled: false - - jerma: - branch: 'stable/{stream}' - disabled: false - - iruya: - branch: 'stable/{stream}' - disabled: false - - hunter: - branch: 'stable/{stream}' - disabled: false - - arch_tag: - - 'amd64': - slave_label: 'lf-build2' - - # yamllint disable rule:key-duplicates - image: - - 'core' - - 'tempest' - - 'healthcheck' - - 'smoke' - - 'benchmarking' - - 'vnf' - - 'smoke-cntt' - - 'benchmarking-cntt' - - 'features' - - exclude: - - stream: 'master' - image: 'tempest' - - stream: 'leguer' - image: 'tempest' - - stream: 'kali' - image: 'tempest' - - stream: 'jerma' - image: 'tempest' - - stream: 'master' - image: 'features' - - stream: 'leguer' - image: 'features' - - stream: 'kali' - image: 'features' - - stream: 'jerma' - image: 'features' - - stream: 'iruya' - image: 'features' - - # settings for jobs run in multijob phases - build-job-settings: &build-job-settings - current-parameters: false - git-revision: true - node-parameters: false - predefined-parameters: | - PUSH_IMAGE=$PUSH_IMAGE - COMMIT_ID=$COMMIT_ID - GERRIT_REFNAME=$GERRIT_REFNAME - DOCKERFILE=$DOCKERFILE - kill-phase-on: FAILURE - abort-all-jobs: false - - manifest-job-settings: &manifest-job-settings - current-parameters: false - git-revision: true - node-parameters: false - predefined-parameters: - GERRIT_REFNAME=$GERRIT_REFNAME - kill-phase-on: FAILURE - abort-all-jobs: false - - # yamllint enable rule:key-duplicates - jobs: - - "functest-docker-{stream}" - - "functest-{image}-docker-build-{arch_tag}-{stream}" - - "functest-{image}-docker-manifest-{stream}" - -######################## -# job templates -######################## -- job-template: - name: 'functest-docker-{stream}' - - project-type: multijob - - disabled: '{obj:disabled}' - - parameters: - - functest-job-parameters: - project: '{project}' - branch: '{branch}' - slave_label: 'lf-build2' - arch_tag: 'amd64' - - properties: - - throttle: - max-per-node: 1 - option: 'project' - - scm: - - git-scm - - triggers: - - pollscm: - cron: "*/30 * * * *" - - gerrit-trigger-tag-created: - project: '{project}' - - builders: - - multijob: - name: 'build functest-core images' - execution-type: PARALLEL - projects: - - name: 'functest-core-docker-build-amd64-{stream}' - <<: *build-job-settings - - multijob: - name: 'publish functest-core manifests' - execution-type: PARALLEL - projects: - - name: 'functest-core-docker-manifest-{stream}' - <<: *manifest-job-settings - - multijob: - name: 'build functest-tempest images' - execution-type: PARALLEL - projects: - - name: 'functest-tempest-docker-build-amd64-{stream}' - <<: *build-job-settings - - multijob: - name: 'publish functest-tempest manifests' - execution-type: PARALLEL - projects: - - name: 'functest-tempest-docker-manifest-{stream}' - <<: *manifest-job-settings - - multijob: - name: 'build all functest images' - condition: SUCCESSFUL - execution-type: PARALLEL - projects: - - name: 'functest-healthcheck-docker-build-amd64-{stream}' - <<: *build-job-settings - - name: 'functest-smoke-docker-build-amd64-{stream}' - <<: *build-job-settings - - name: 'functest-benchmarking-docker-build-amd64-{stream}' - <<: *build-job-settings - - name: 'functest-vnf-docker-build-amd64-{stream}' - <<: *build-job-settings - - name: 'functest-features-docker-build-amd64-{stream}' - <<: *build-job-settings - - multijob: - name: 'publish all manifests' - condition: SUCCESSFUL - execution-type: PARALLEL - projects: - - name: 'functest-healthcheck-docker-manifest-{stream}' - <<: *manifest-job-settings - - name: 'functest-smoke-docker-manifest-{stream}' - <<: *manifest-job-settings - - name: 'functest-benchmarking-docker-manifest-{stream}' - <<: *manifest-job-settings - - name: 'functest-vnf-docker-manifest-{stream}' - <<: *manifest-job-settings - - name: 'functest-features-docker-manifest-{stream}' - <<: *manifest-job-settings - - multijob: - name: 'build all functest cntt images' - condition: SUCCESSFUL - execution-type: PARALLEL - projects: - - name: 'functest-smoke-cntt-docker-build-amd64-{stream}' - <<: *build-job-settings - - name: 'functest-benchmarking-cntt-docker-build-amd64-{stream}' - <<: *build-job-settings - - multijob: - name: 'publish all cntt manifests' - condition: SUCCESSFUL - execution-type: PARALLEL - projects: - - name: 'functest-smoke-cntt-docker-manifest-{stream}' - <<: *manifest-job-settings - - name: 'functest-benchmarking-cntt-docker-manifest-{stream}' - <<: *manifest-job-settings - - publishers: - - 'functest-amd64-recipients' - -- job-template: - name: 'functest-{image}-docker-build-{arch_tag}-{stream}' - disabled: '{obj:disabled}' - parameters: - - functest-job-parameters: - project: '{project}' - branch: '{branch}' - slave_label: '{slave_label}' - arch_tag: '{arch_tag}' - scm: - - git-scm - builders: - - shell: | - #!/bin/bash -ex - sudo amd64_dirs=docker/{image} arm64_dirs= arm_dirs= bash ./build.sh - exit $? - -- job-template: - name: 'functest-{image}-docker-manifest-{stream}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - label: - name: SLAVE_LABEL - default: 'lf-build2' - description: 'Slave label on Jenkins' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: PROJECT - default: "{project}" - description: "Project name used to enable job conditions" - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: REPO - default: "opnfv" - description: "Repository name for functest images" - - - disabled: '{obj:disabled}' - - builders: - - shell: | - #!/bin/bash -ex - case "{stream}" in - "master") - tag="latest" ;; - *) - tag="{stream}" ;; - esac - sudo manifest-tool push from-args \ - --platforms linux/amd64 \ - --template $REPO/functest-{image}:ARCH-$tag \ - --target $REPO/functest-{image}:$tag - exit $? - -# parameter macro -- parameter: - name: functest-job-parameters - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - label: - name: SLAVE_LABEL - default: '{slave_label}' - description: 'Slave label on Jenkins' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: PUSH_IMAGE - default: "true" - description: "To enable/disable pushing the image to Dockerhub." - - string: - name: COMMIT_ID - default: "" - description: "commit id to make a snapshot docker image" - - string: - name: GERRIT_REFNAME - default: "" - description: "Docker tag to be built, e.g. refs/tags/5.0.0, refs/tags/opnfv-5.0.0, refs/tags/5.0.RC1" - - string: - name: DOCKERFILE - default: "Dockerfile" - description: "Dockerfile to use for creating the image." - - string: - name: ARCH_TAG - default: "{arch_tag}" - description: "If set, this value will be added to the docker image tag as a prefix" - - string: - name: PROJECT - default: "{project}" - description: "Project name used to enable job conditions" - - string: - name: REPO - default: "opnfv" - description: "Repository name for functest images" - -# publisher macros -- publisher: - name: 'functest-amd64-recipients' - publishers: - - email: - recipients: > - jalausuch@suse.com morgan.richomme@orange.com - cedric.ollivier@orange.com feng.xiaowei@zte.com.cn - juha.kosonen@nokia.com wangwulin@huawei.com - valentin.boucher@kontron.com diff --git a/jjb/functest/functest-kubernetes-docker.yaml b/jjb/functest/functest-kubernetes-docker.yaml deleted file mode 100644 index 444d1b1c5..000000000 --- a/jjb/functest/functest-kubernetes-docker.yaml +++ /dev/null @@ -1,284 +0,0 @@ ---- -############################################## -# job configuration for docker build and push -############################################## -- project: - - name: functest-kubernetes-docker - - project: functest-kubernetes - - stream: - - master: - branch: '{stream}' - disabled: false - - leguer: - branch: 'stable/{stream}' - disabled: false - - kali: - branch: 'stable/{stream}' - disabled: false - - jerma: - branch: 'stable/{stream}' - disabled: false - - iruya: - branch: 'stable/{stream}' - disabled: false - - hunter: - branch: 'stable/{stream}' - disabled: false - - arch_tag: - - 'amd64': - slave_label: 'lf-build2' - - # yamllint disable rule:key-duplicates - image: - - 'core' - - 'healthcheck' - - 'smoke' - - 'cnf' - - 'security' - - 'benchmarking' - - # settings for jobs run in multijob phases - build-job-settings: &build-job-settings - current-parameters: false - git-revision: true - node-parameters: false - predefined-parameters: | - PUSH_IMAGE=$PUSH_IMAGE - COMMIT_ID=$COMMIT_ID - GERRIT_REFNAME=$GERRIT_REFNAME - DOCKERFILE=$DOCKERFILE - kill-phase-on: FAILURE - abort-all-jobs: false - - manifest-job-settings: &manifest-job-settings - current-parameters: false - git-revision: true - node-parameters: false - predefined-parameters: - GERRIT_REFNAME=$GERRIT_REFNAME - kill-phase-on: FAILURE - abort-all-jobs: false - - # yamllint enable rule:key-duplicates - jobs: - - "functest-kubernetes-docker-{stream}" - - "functest-kubernetes-{image}-docker-build-{arch_tag}-{stream}" - - "functest-kubernetes-{image}-docker-manifest-{stream}" - -######################## -# job templates -######################## -- job-template: - name: 'functest-kubernetes-docker-{stream}' - - project-type: multijob - - disabled: '{obj:disabled}' - - parameters: - - functest-kubernetes-job-parameters: - project: '{project}' - branch: '{branch}' - slave_label: 'lf-build2' - arch_tag: 'amd64' - - properties: - - throttle: - max-per-node: 1 - option: 'project' - - scm: - - git-scm - - triggers: - - pollscm: - cron: "*/30 * * * *" - - gerrit-trigger-tag-created: - project: '{project}' - - builders: - - multijob: - name: 'build functest-kubernetes-core images' - execution-type: PARALLEL - projects: - - name: 'functest-kubernetes-core-docker-build-amd64-{stream}' - <<: *build-job-settings - - multijob: - name: 'publish functest-kubernetes-core manifests' - execution-type: PARALLEL - projects: - - name: 'functest-kubernetes-core-docker-manifest-{stream}' - <<: *manifest-job-settings - - multijob: - name: 'build functest-kubernetes-[healthcheck,cnf,security] images' - execution-type: PARALLEL - projects: - - name: 'functest-kubernetes-healthcheck-docker-build-amd64-{stream}' - <<: *build-job-settings - - name: 'functest-kubernetes-cnf-docker-build-amd64-{stream}' - <<: *build-job-settings - - name: 'functest-kubernetes-security-docker-build-amd64-{stream}' - <<: *build-job-settings - - multijob: - name: 'publish functest-kubernetes-[healthcheck,cnf,security] manifests' - execution-type: PARALLEL - projects: - - name: 'functest-kubernetes-healthcheck-docker-manifest-{stream}' - <<: *manifest-job-settings - - name: 'functest-kubernetes-cnf-docker-manifest-{stream}' - <<: *manifest-job-settings - - name: 'functest-kubernetes-security-docker-manifest-{stream}' - <<: *manifest-job-settings - - multijob: - name: 'build functest-kubernetes-smoke image' - condition: SUCCESSFUL - execution-type: PARALLEL - projects: - - name: 'functest-kubernetes-smoke-docker-build-amd64-{stream}' - <<: *build-job-settings - - multijob: - name: 'publish functest-kubernetes-smoke manifests' - condition: SUCCESSFUL - execution-type: PARALLEL - 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 - - 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' - -- job-template: - name: 'functest-kubernetes-{image}-docker-build-{arch_tag}-{stream}' - disabled: '{obj:disabled}' - parameters: - - functest-kubernetes-job-parameters: - project: '{project}' - branch: '{branch}' - slave_label: '{slave_label}' - arch_tag: '{arch_tag}' - scm: - - git-scm - builders: - - shell: | - #!/bin/bash -ex - sudo amd64_dirs=docker/{image} arm_dirs= arm64_dirs= bash ./build.sh - exit $? - -- job-template: - name: 'functest-kubernetes-{image}-docker-manifest-{stream}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - label: - name: SLAVE_LABEL - default: 'lf-build2' - description: 'Slave label on Jenkins' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: PROJECT - default: "{project}" - description: "Project name used to enable job conditions" - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: REPO - default: "opnfv" - description: "Repository name for functest-kubernetes images" - - - disabled: '{obj:disabled}' - - builders: - - shell: | - #!/bin/bash -ex - case "{stream}" in - "master") - tag="latest" ;; - *) - tag="{stream}" ;; - esac - sudo manifest-tool push from-args \ - --platforms linux/amd64 \ - --template $REPO/functest-kubernetes-{image}:ARCH-$tag \ - --target $REPO/functest-kubernetes-{image}:$tag - exit $? - -# parameter macro -- parameter: - name: functest-kubernetes-job-parameters - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - label: - name: SLAVE_LABEL - default: '{slave_label}' - description: 'Slave label on Jenkins' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: PUSH_IMAGE - default: "true" - description: "To enable/disable pushing the image to Dockerhub." - - string: - name: COMMIT_ID - default: "" - description: "commit id to make a snapshot docker image" - - string: - name: GERRIT_REFNAME - default: "" - description: "Docker tag to be built, e.g. refs/tags/5.0.0, refs/tags/opnfv-5.0.0, refs/tags/5.0.RC1" - - string: - name: DOCKERFILE - default: "Dockerfile" - description: "Dockerfile to use for creating the image." - - string: - name: ARCH_TAG - default: "{arch_tag}" - description: "If set, this value will be added to the docker image tag as a prefix" - - string: - name: PROJECT - default: "{project}" - description: "Project name used to enable job conditions" - - string: - name: REPO - default: "opnfv" - description: "Repository name for functest-kubernetes images" - -# publisher macros -- publisher: - name: 'functest-kubernetes-amd64-recipients' - publishers: - - email: - recipients: > - jalausuch@suse.com morgan.richomme@orange.com - cedric.ollivier@orange.com feng.xiaowei@zte.com.cn - juha.kosonen@nokia.com wangwulin@huawei.com - valentin.boucher@kontron.com diff --git a/jjb/functest/functest-kubernetes-pi.yaml b/jjb/functest/functest-kubernetes-pi.yaml index 88603663d..efab56c05 100644 --- a/jjb/functest/functest-kubernetes-pi.yaml +++ b/jjb/functest/functest-kubernetes-pi.yaml @@ -1,74 +1,240 @@ --- -- functest-kubernetes-pi-jobs: &functest-kubernetes-pi-jobs - name: 'functest-kubernetes-pi-jobs' - current-parameters: true +- functest-kubernetes-pi-containers: &functest-kubernetes-pi-containers + name: 'functest-kubernetes-pi-containers' + repo: '{repo}' + port: '{port}' + container: '{container}' + tag: '{tag}' - functest-kubernetes-pi-params: &functest-kubernetes-pi-params name: 'functest-kubernetes-pi-params' + tag: + - latest: + node: v1.30 + - v1.29: + node: v1.29 + - v1.28: + node: v1.28 + - v1.27: + node: v1.27 + - v1.26: + node: v1.26 + - arm-latest: + node: v1.30 + - arm-v1.29: + node: v1.29 + - arm-v1.28: + node: v1.28 + - arm-v1.27: + node: v1.27 + - arm-v1.26: + node: v1.26 + - arm64-latest: + node: v1.30 + - arm64-v1.29: + node: v1.29 + - arm64-v1.28: + node: v1.28 + - arm64-v1.27: + node: v1.27 + - arm64-v1.26: + node: v1.26 + +- functest-kubernetes-pi-ollivier-functest-kubernetes-healthcheck-params: &functest-kubernetes-pi-ollivier-functest-kubernetes-healthcheck-params + name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-healthcheck-params' + repo: 'ollivier' + container: 'functest-kubernetes-healthcheck' + port: + tag: + - latest: + node: v1.30 + - v1.29: + node: v1.29 + - v1.28: + node: v1.28 + - v1.27: + node: v1.27 + - v1.26: + node: v1.26 + - arm-latest: + node: v1.30 + - arm-v1.29: + node: v1.29 + - arm-v1.28: + node: v1.28 + - arm-v1.27: + node: v1.27 + - arm-v1.26: + node: v1.26 + - arm64-latest: + node: v1.30 + - arm64-v1.29: + node: v1.29 + - arm64-v1.28: + node: v1.28 + - arm64-v1.27: + node: v1.27 + - arm64-v1.26: + node: v1.26 + +- functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-params: &functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-params + name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-params' + repo: 'ollivier' + container: 'functest-kubernetes-smoke' + port: + tag: + - latest: + node: v1.30 + - v1.29: + node: v1.29 + - v1.28: + node: v1.28 + - v1.27: + node: v1.27 + - v1.26: + node: v1.26 + - arm-latest: + node: v1.30 + - arm-v1.29: + node: v1.29 + - arm-v1.28: + node: v1.28 + - arm-v1.27: + node: v1.27 + - arm-v1.26: + node: v1.26 + - arm64-latest: + node: v1.30 + - arm64-v1.29: + node: v1.29 + - arm64-v1.28: + node: v1.28 + - arm64-v1.27: + node: v1.27 + - arm64-v1.26: + node: v1.26 + +- functest-kubernetes-pi-ollivier-functest-kubernetes-security-params: &functest-kubernetes-pi-ollivier-functest-kubernetes-security-params + name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-security-params' + repo: 'ollivier' + container: 'functest-kubernetes-security' + port: + tag: + - latest: + node: v1.30 + - v1.29: + node: v1.29 + - v1.28: + node: v1.28 + - v1.27: + node: v1.27 + - v1.26: + node: v1.26 + - arm-latest: + node: v1.30 + - arm-v1.29: + node: v1.29 + - arm-v1.28: + node: v1.28 + - arm-v1.27: + node: v1.27 + - arm-v1.26: + node: v1.26 + - arm64-latest: + node: v1.30 + - arm64-v1.29: + node: v1.29 + - arm64-v1.28: + node: v1.28 + - arm64-v1.27: + node: v1.27 + - arm64-v1.26: + node: v1.26 + +- functest-kubernetes-pi-ollivier-functest-kubernetes-benchmarking-params: &functest-kubernetes-pi-ollivier-functest-kubernetes-benchmarking-params + name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-benchmarking-params' + repo: 'ollivier' + container: 'functest-kubernetes-benchmarking' + port: + tag: + - latest: + node: v1.30 + - v1.29: + node: v1.29 + - v1.28: + node: v1.28 + - v1.27: + node: v1.27 + - v1.26: + node: v1.26 + - arm-latest: + node: v1.30 + - arm-v1.29: + node: v1.29 + - arm-v1.28: + node: v1.28 + - arm-v1.27: + node: v1.27 + - arm-v1.26: + node: v1.26 + - arm64-latest: + node: v1.30 + - arm64-v1.29: + node: v1.29 + - arm64-v1.28: + node: v1.28 + - arm64-v1.27: + node: v1.27 + - arm64-v1.26: + node: v1.26 + +- functest-kubernetes-pi-ollivier-functest-kubernetes-cnf-params: &functest-kubernetes-pi-ollivier-functest-kubernetes-cnf-params + name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-cnf-params' repo: 'ollivier' + container: 'functest-kubernetes-cnf' port: tag: - latest: - branch: master - slave: lf-virtual1-6 - - leguer: - branch: stable/leguer - slave: lf-virtual1-5 - - kali: - branch: stable/kali - slave: lf-virtual1-4 - - jerma: - branch: stable/jerma - slave: lf-virtual1-3 - - iruya: - branch: stable/iruya - slave: lf-virtual1-2 - - hunter: - branch: stable/hunter - slave: lf-virtual1-1 + node: v1.30 + - v1.29: + node: v1.29 + - v1.28: + node: v1.28 + - v1.27: + node: v1.27 + - v1.26: + node: v1.26 - arm-latest: - branch: master - slave: lf-virtual1-6 - - arm-leguer: - branch: stable/leguer - slave: lf-virtual1-5 - - arm-kali: - branch: stable/kali - slave: lf-virtual1-4 - - arm-jerma: - branch: stable/jerma - slave: lf-virtual1-3 - - arm-iruya: - branch: stable/iruya - slave: lf-virtual1-2 - - arm-hunter: - branch: stable/hunter - slave: lf-virtual1-1 + node: v1.30 + - arm-v1.29: + node: v1.29 + - arm-v1.28: + node: v1.28 + - arm-v1.27: + node: v1.27 + - arm-v1.26: + node: v1.26 - arm64-latest: - branch: master - slave: lf-virtual1-6 - - arm64-leguer: - branch: stable/leguer - slave: lf-virtual1-5 - - arm64-kali: - branch: stable/kali - slave: lf-virtual1-4 - - arm64-jerma: - branch: stable/jerma - slave: lf-virtual1-3 - - arm64-iruya: - branch: stable/iruya - slave: lf-virtual1-2 - - arm64-hunter: - branch: stable/hunter - slave: lf-virtual1-1 + node: v1.30 + - arm64-v1.29: + node: v1.29 + - arm64-v1.28: + node: v1.28 + - arm64-v1.27: + node: v1.27 + - arm64-v1.26: + node: v1.26 + +- functest-kubernetes-pi-jobs: &functest-kubernetes-pi-jobs + name: 'functest-kubernetes-pi-jobs' + current-parameters: true - parameter: - name: functest-kubernetes-pi-slave + name: functest-kubernetes-pi-node parameters: - label: - name: slave - default: '{slave}' + name: node + default: '{node}' - parameter: name: functest-kubernetes-pi-build_tag @@ -77,38 +243,22 @@ name: build_tag - parameter: - name: functest-kubernetes-pi-branch - parameters: - - string: - name: branch - default: '{branch}' - -- parameter: name: functest-kubernetes-pi-DEPLOY_SCENARIO parameters: - string: name: DEPLOY_SCENARIO default: k8-nosdn-nofeature-noha -- parameter: - name: functest-kubernetes-pi-DEBUG - parameters: - - string: - name: DEBUG - default: 'true' - -- functest-kubernetes-pi-containers: &functest-kubernetes-pi-containers - name: 'functest-kubernetes-pi-containers' - repo: '{repo}' - port: '{port}' - container: '{container}' - tag: '{tag}' - functest-kubernetes-pi-run-containers: &functest-kubernetes-pi-run-containers name: 'functest-kubernetes-pi-run-containers' <<: *functest-kubernetes-pi-containers - test: '{test}' privileged: '{privileged}' + volumes: '{volumes}' + env: '{env}' network: '{network}' + uid: '{uid}' + gid: '{gid}' + published_ports: '{published_ports}' - builder: name: functest-kubernetes-pi-pull-containers @@ -129,7 +279,22 @@ builders: - shell: | set +x - [ ! -z "$WORKSPACE" ] && rm -rf $WORKSPACE/* || true + volumes=; + if [ "{volumes}" != "None" ]; then + for i in $(echo {volumes} | tr -d '[]' |sed "s/, / /g" ); \ + do volumes="-v $i $volumes"; done + fi + env=; + if [ "{env}" != "None" ]; then + for i in $(eval echo {env} | tr -d '[]' |sed "s/, / /g" ); \ + do env="-e $i $env"; done + fi + published_ports=; + if [ "{published_ports}" != "None" ]; then + for i in $(echo {published_ports} | tr -d '[]' |sed "s/, / /g" ); \ + do published_ports="-p $i $published_ports"; done + fi + [ ! -z "$WORKSPACE" ] && rm -rf $WORKSPACE/results || true if [ "{repo}" = "_" ]; then image={container}:{tag} elif [ "{port}" = "None" ]; then @@ -137,21 +302,23 @@ else image={repo}:{port}/{container}:{tag} fi + mkdir -p $WORKSPACE/results + chown {uid}:{gid} $WORKSPACE/results docker run --rm \ --privileged={privileged} \ --network={network} \ + $volumes \ + $env \ + $published_ports \ -e S3_ENDPOINT_URL=https://storage.googleapis.com \ -e S3_DST_URL=s3://artifacts.opnfv.org/functest-kubernetes/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ -e HTTP_DST_URL=http://artifacts.opnfv.org/functest-kubernetes/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ + -v /home/opnfv/functest-kubernetes/.boto:/etc/boto.cfg \ -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \ - -e NODE_NAME=$slave \ + -e NODE_NAME=$node \ -e BUILD_TAG=$BUILD_TAG \ -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ - -e DEPLOY_SCENARIO=$DEPLOY_SCENARIO \ - -e DEBUG=$DEBUG \ - -v /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config \ - -v /home/opnfv/functest-kubernetes/.boto:/root/.boto \ $image run_tests -t {test} -p -r - builder: @@ -168,161 +335,260 @@ fi docker rmi $image || true - - job-template: - name: 'functest-kubernetes-pi-{repo}-{container}-{tag}-pull' + name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-healthcheck-{tag}-pull' parameters: - - functest-kubernetes-pi-slave: - slave: '{slave}' + - functest-kubernetes-pi-node: + node: '{node}' builders: - functest-kubernetes-pi-pull-containers: <<: *functest-kubernetes-pi-containers - project: name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-healthcheck-pull' - <<: *functest-kubernetes-pi-params - container: 'functest-kubernetes-healthcheck' - exclude: - - tag: arm-hunter - - tag: arm64-hunter + <<: *functest-kubernetes-pi-ollivier-functest-kubernetes-healthcheck-params jobs: - - 'functest-kubernetes-pi-{repo}-{container}-{tag}-pull' + - 'functest-kubernetes-pi-ollivier-functest-kubernetes-healthcheck-{tag}-pull' + +- job-template: + name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-healthcheck-{tag}-rmi' + parameters: + - functest-kubernetes-pi-node: + node: '{node}' + builders: + - functest-kubernetes-pi-remove-images: + <<: *functest-kubernetes-pi-containers - project: - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-pull' - <<: *functest-kubernetes-pi-params - container: 'functest-kubernetes-smoke' - exclude: - - tag: arm-hunter - - tag: arm64-hunter + name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-healthcheck-rmi' + <<: *functest-kubernetes-pi-ollivier-functest-kubernetes-healthcheck-params jobs: - - 'functest-kubernetes-pi-{repo}-{container}-{tag}-pull' + - 'functest-kubernetes-pi-ollivier-functest-kubernetes-healthcheck-{tag}-rmi' + +- job-template: + name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-pull' + parameters: + - functest-kubernetes-pi-node: + node: '{node}' + builders: + - functest-kubernetes-pi-pull-containers: + <<: *functest-kubernetes-pi-containers - project: - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-security-pull' - <<: *functest-kubernetes-pi-params - container: 'functest-kubernetes-security' + name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-pull' + <<: *functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-params jobs: - - 'functest-kubernetes-pi-{repo}-{container}-{tag}-pull' + - 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-pull' + +- job-template: + name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-rmi' + parameters: + - functest-kubernetes-pi-node: + node: '{node}' + builders: + - functest-kubernetes-pi-remove-images: + <<: *functest-kubernetes-pi-containers - 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 + name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-rmi' + <<: *functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-params jobs: - - 'functest-kubernetes-pi-{repo}-{container}-{tag}-pull' + - 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-rmi' + +- job-template: + name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-security-{tag}-pull' + parameters: + - functest-kubernetes-pi-node: + node: '{node}' + builders: + - functest-kubernetes-pi-pull-containers: + <<: *functest-kubernetes-pi-containers - project: - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-cnf-pull' - <<: *functest-kubernetes-pi-params - container: 'functest-kubernetes-cnf' + name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-security-pull' + <<: *functest-kubernetes-pi-ollivier-functest-kubernetes-security-params jobs: - - 'functest-kubernetes-pi-{repo}-{container}-{tag}-pull' + - 'functest-kubernetes-pi-ollivier-functest-kubernetes-security-{tag}-pull' - job-template: - name: 'functest-kubernetes-pi-{repo}-{container}-{tag}-rmi' + name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-security-{tag}-rmi' parameters: - - functest-kubernetes-pi-slave: - slave: '{slave}' + - functest-kubernetes-pi-node: + node: '{node}' builders: - functest-kubernetes-pi-remove-images: <<: *functest-kubernetes-pi-containers - project: - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-healthcheck-rmi' - <<: *functest-kubernetes-pi-params - container: 'functest-kubernetes-healthcheck' - exclude: - - tag: arm-hunter - - tag: arm64-hunter + name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-security-rmi' + <<: *functest-kubernetes-pi-ollivier-functest-kubernetes-security-params jobs: - - 'functest-kubernetes-pi-{repo}-{container}-{tag}-rmi' + - 'functest-kubernetes-pi-ollivier-functest-kubernetes-security-{tag}-rmi' + +- job-template: + name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-benchmarking-{tag}-pull' + parameters: + - functest-kubernetes-pi-node: + node: '{node}' + builders: + - functest-kubernetes-pi-pull-containers: + <<: *functest-kubernetes-pi-containers - project: - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-rmi' - <<: *functest-kubernetes-pi-params - container: 'functest-kubernetes-smoke' - exclude: - - tag: arm-hunter - - tag: arm64-hunter + name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-benchmarking-pull' + <<: *functest-kubernetes-pi-ollivier-functest-kubernetes-benchmarking-params jobs: - - 'functest-kubernetes-pi-{repo}-{container}-{tag}-rmi' + - 'functest-kubernetes-pi-ollivier-functest-kubernetes-benchmarking-{tag}-pull' + +- job-template: + name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-benchmarking-{tag}-rmi' + parameters: + - functest-kubernetes-pi-node: + node: '{node}' + builders: + - functest-kubernetes-pi-remove-images: + <<: *functest-kubernetes-pi-containers - project: - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-security-rmi' - <<: *functest-kubernetes-pi-params - container: 'functest-kubernetes-security' + name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-benchmarking-rmi' + <<: *functest-kubernetes-pi-ollivier-functest-kubernetes-benchmarking-params jobs: - - 'functest-kubernetes-pi-{repo}-{container}-{tag}-rmi' + - 'functest-kubernetes-pi-ollivier-functest-kubernetes-benchmarking-{tag}-rmi' + +- job-template: + name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-cnf-{tag}-pull' + parameters: + - functest-kubernetes-pi-node: + node: '{node}' + builders: + - functest-kubernetes-pi-pull-containers: + <<: *functest-kubernetes-pi-containers - 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 + name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-cnf-pull' + <<: *functest-kubernetes-pi-ollivier-functest-kubernetes-cnf-params jobs: - - 'functest-kubernetes-pi-{repo}-{container}-{tag}-rmi' + - 'functest-kubernetes-pi-ollivier-functest-kubernetes-cnf-{tag}-pull' + +- job-template: + name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-cnf-{tag}-rmi' + parameters: + - functest-kubernetes-pi-node: + node: '{node}' + builders: + - functest-kubernetes-pi-remove-images: + <<: *functest-kubernetes-pi-containers - project: name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-cnf-rmi' - <<: *functest-kubernetes-pi-params - container: 'functest-kubernetes-cnf' + <<: *functest-kubernetes-pi-ollivier-functest-kubernetes-cnf-params jobs: - - 'functest-kubernetes-pi-{repo}-{container}-{tag}-rmi' + - 'functest-kubernetes-pi-ollivier-functest-kubernetes-cnf-{tag}-rmi' - job-template: - name: 'functest-kubernetes-pi-{repo}-{container}-{tag}-{test}-run' + name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-healthcheck-{tag}-{test}-run' parameters: - - functest-kubernetes-pi-slave: - slave: '{slave}' + - functest-kubernetes-pi-node: + node: '{node}' - 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 + test: '{test}' - project: name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-healthcheck' - <<: *functest-kubernetes-pi-params + <<: *functest-kubernetes-pi-ollivier-functest-kubernetes-healthcheck-params + volumes: + - /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config + - /home/opnfv/functest-kubernetes/config.{tag}:/home/xtesting/.kube/config + env: + - DEPLOY_SCENARIO=$DEPLOY_SCENARIO + published_ports: container: 'functest-kubernetes-healthcheck' test: - k8s_quick - k8s_smoke - exclude: - - tag: arm-hunter - - tag: arm64-hunter privileged: 'false' network: bridge + uid: 1000 + gid: 1000 jobs: - - 'functest-kubernetes-pi-{repo}-{container}-{tag}-{test}-run' + - 'functest-kubernetes-pi-ollivier-functest-kubernetes-healthcheck-{tag}-{test}-run' + +- job-template: + name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-{test}-run' + parameters: + - functest-kubernetes-pi-node: + node: '{node}' + - functest-kubernetes-pi-build_tag: + build_tag: '' + - functest-kubernetes-pi-DEPLOY_SCENARIO: + DEPLOY_SCENARIO: k8-nosdn-nofeature-noha + builders: + - functest-kubernetes-pi-run-containers: + <<: *functest-kubernetes-pi-run-containers + test: '{test}' - project: name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke' - <<: *functest-kubernetes-pi-params + <<: *functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-params + volumes: + - /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config + - /home/opnfv/functest-kubernetes/config.{tag}:/home/xtesting/.kube/config + env: + - DEPLOY_SCENARIO=$DEPLOY_SCENARIO + published_ports: container: 'functest-kubernetes-smoke' test: - xrally_kubernetes - k8s_conformance - exclude: - - tag: arm-hunter - - tag: arm64-hunter + - k8s_conformance_serial + - sig_api_machinery + - sig_api_machinery_serial + - sig_apps + - sig_apps_serial + - sig_auth + - sig_cluster_lifecycle + - sig_instrumentation + - sig_network + - sig_node + - sig_scheduling_serial + - sig_storage + - sig_storage_serial privileged: 'false' network: bridge + uid: 1000 + gid: 1000 jobs: - - 'functest-kubernetes-pi-{repo}-{container}-{tag}-{test}-run' + - 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-{test}-run' + +- job-template: + name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-security-{tag}-{test}-run' + parameters: + - functest-kubernetes-pi-node: + node: '{node}' + - functest-kubernetes-pi-build_tag: + build_tag: '' + - functest-kubernetes-pi-DEPLOY_SCENARIO: + DEPLOY_SCENARIO: k8-nosdn-nofeature-noha + builders: + - functest-kubernetes-pi-run-containers: + <<: *functest-kubernetes-pi-run-containers + test: '{test}' - project: name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-security' - <<: *functest-kubernetes-pi-params + <<: *functest-kubernetes-pi-ollivier-functest-kubernetes-security-params + volumes: + - /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config + - /home/opnfv/functest-kubernetes/config.{tag}:/home/xtesting/.kube/config + env: + - DEPLOY_SCENARIO=$DEPLOY_SCENARIO + published_ports: container: 'functest-kubernetes-security' test: - kube_hunter @@ -330,56 +596,101 @@ - kube_bench_node privileged: 'false' network: bridge + uid: 1000 + gid: 1000 jobs: - - 'functest-kubernetes-pi-{repo}-{container}-{tag}-{test}-run' + - 'functest-kubernetes-pi-ollivier-functest-kubernetes-security-{tag}-{test}-run' + +- job-template: + name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-benchmarking-{tag}-{test}-run' + parameters: + - functest-kubernetes-pi-node: + node: '{node}' + - functest-kubernetes-pi-build_tag: + build_tag: '' + - functest-kubernetes-pi-DEPLOY_SCENARIO: + DEPLOY_SCENARIO: k8-nosdn-nofeature-noha + builders: + - functest-kubernetes-pi-run-containers: + <<: *functest-kubernetes-pi-run-containers + test: '{test}' - project: name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-benchmarking' - <<: *functest-kubernetes-pi-params + <<: *functest-kubernetes-pi-ollivier-functest-kubernetes-benchmarking-params + volumes: + - /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config + - /home/opnfv/functest-kubernetes/config.{tag}:/home/xtesting/.kube/config + env: + - DEPLOY_SCENARIO=$DEPLOY_SCENARIO + published_ports: container: 'functest-kubernetes-benchmarking' test: - xrally_kubernetes_full - exclude: - - tag: arm-hunter - - tag: arm64-hunter + - netperf privileged: 'false' network: bridge + uid: 1000 + gid: 1000 jobs: - - 'functest-kubernetes-pi-{repo}-{container}-{tag}-{test}-run' + - 'functest-kubernetes-pi-ollivier-functest-kubernetes-benchmarking-{tag}-{test}-run' + +- job-template: + name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-cnf-{tag}-{test}-run' + parameters: + - functest-kubernetes-pi-node: + node: '{node}' + - functest-kubernetes-pi-build_tag: + build_tag: '' + - functest-kubernetes-pi-DEPLOY_SCENARIO: + DEPLOY_SCENARIO: k8-nosdn-nofeature-noha + builders: + - functest-kubernetes-pi-run-containers: + <<: *functest-kubernetes-pi-run-containers + test: '{test}' - project: name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-cnf' - <<: *functest-kubernetes-pi-params + <<: *functest-kubernetes-pi-ollivier-functest-kubernetes-cnf-params + volumes: + - /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config + - /home/opnfv/functest-kubernetes/config.{tag}:/home/xtesting/.kube/config + env: + - DEPLOY_SCENARIO=$DEPLOY_SCENARIO + published_ports: container: 'functest-kubernetes-cnf' test: - k8s_vims - helm_vims - - cnf_conformance - exclude: - - tag: iruya - test: k8s_vims - - tag: iruya - test: helm_vims - - tag: arm-iruya - test: k8s_vims - - tag: arm-iruya - test: helm_vims - - tag: arm64-iruya - test: k8s_vims - - tag: arm64-iruya - test: helm_vims + - cnf_testsuite privileged: 'false' network: bridge + uid: 1000 + gid: 1000 jobs: - - 'functest-kubernetes-pi-{repo}-{container}-{tag}-{test}-run' - + - 'functest-kubernetes-pi-ollivier-functest-kubernetes-cnf-{tag}-{test}-run' - builder: name: functest-kubernetes-pi-zip builders: - shell: | set +x - [ ! -z "$WORKSPACE" ] && rm -rf $WORKSPACE/* || true + volumes=; + if [ "{volumes}" != "None" ]; then + for i in $(echo {volumes} | tr -d '[]' |sed "s/, / /g" ); \ + do volumes="-v $i $volumes"; done + fi + env=; + if [ "{env}" != "None" ]; then + for i in $(eval echo {env} | tr -d '[]' |sed "s/, / /g" ); \ + do env="-e $i $env"; done + fi + published_ports=; + if [ "{published_ports}" != "None" ]; then + for i in $(echo {published_ports} | tr -d '[]' |sed "s/, / /g" ); \ + do published_ports="-p $i $published_ports"; done + fi + [ ! -z "$WORKSPACE" ] && rm -rf $WORKSPACE/results || true if [ "{repo}" = "_" ]; then image={container}:{tag} elif [ "{port}" = "None" ]; then @@ -387,39 +698,52 @@ else image={repo}:{port}/{container}:{tag} fi + mkdir -p $WORKSPACE/results + chown {uid}:{gid} $WORKSPACE/results docker run --rm \ + --privileged={privileged} \ + --network={network} \ + $volumes \ + $env \ + $published_ports \ -e S3_ENDPOINT_URL=https://storage.googleapis.com \ -e S3_DST_URL=s3://artifacts.opnfv.org/functest-kubernetes \ -e HTTP_DST_URL=http://artifacts.opnfv.org/functest-kubernetes \ + -v /home/opnfv/functest-kubernetes/.boto:/etc/boto.cfg \ -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \ + -e NODE_NAME=$node \ -e BUILD_TAG=$BUILD_TAG \ -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ - -e DEPLOY_SCENARIO=$DEPLOY_SCENARIO \ - -e DEBUG=$DEBUG \ - -v /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config \ - -v /home/opnfv/functest-kubernetes/.boto:/root/.boto \ $image zip_campaign - job-template: name: 'functest-kubernetes-pi-{tag}-zip' parameters: - - functest-kubernetes-pi-slave: - slave: '{slave}' + - functest-kubernetes-pi-node: + node: '{node}' - 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-zip: - <<: *functest-kubernetes-pi-containers + <<: *functest-kubernetes-pi-run-containers - project: - name: 'functest-kubernetes-pi-{tag}-zip' - <<: *functest-kubernetes-pi-params - container: 'functest-kubernetes-security' + name: 'functest-kubernetes-pi-zip' + <<: *functest-kubernetes-pi-ollivier-functest-kubernetes-healthcheck-params + volumes: + - /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config + - /home/opnfv/functest-kubernetes/config.{tag}:/home/xtesting/.kube/config + env: + - DEPLOY_SCENARIO=$DEPLOY_SCENARIO + published_ports: + container: 'functest-kubernetes-healthcheck' + privileged: 'false' + network: bridge + uid: 1000 + gid: 1000 jobs: - 'functest-kubernetes-pi-{tag}-zip' @@ -429,20 +753,20 @@ triggers: - timed: '@weekly' parameters: - - functest-kubernetes-pi-slave: - slave: '{slave}' + - functest-kubernetes-pi-node: + node: '{node}' - functest-kubernetes-pi-build_tag: build_tag: '' - functest-kubernetes-pi-DEPLOY_SCENARIO: DEPLOY_SCENARIO: k8-nosdn-nofeature-noha - - functest-kubernetes-pi-DEBUG: - DEBUG: 'true' + # PyYAML and yamllint differ here + # see https://github.com/yaml/pyyaml/issues/234 + # yamllint disable rule:indentation properties: - build-blocker: - use-build-blocker: true - blocking-level: 'GLOBAL' blocking-jobs: - - '^functest-kubernetes(-pi)?-(arm.*-|amd64-)*[a-z]+-(daily|gate|check)$' + - ^functest-kubernetes-(pi-)*.*-(daily|docker|review)$ + # yamllint enable rule:indentation builders: - multijob: name: remove former images @@ -479,11 +803,38 @@ <<: *functest-kubernetes-pi-jobs - multijob: name: ollivier/functest-kubernetes-smoke:{tag} + execution-type: SEQUENTIALLY projects: - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-xrally_kubernetes-run' <<: *functest-kubernetes-pi-jobs - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-k8s_conformance-run' <<: *functest-kubernetes-pi-jobs + - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-k8s_conformance_serial-run' + <<: *functest-kubernetes-pi-jobs + - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-sig_api_machinery-run' + <<: *functest-kubernetes-pi-jobs + - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-sig_api_machinery_serial-run' + <<: *functest-kubernetes-pi-jobs + - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-sig_apps-run' + <<: *functest-kubernetes-pi-jobs + - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-sig_apps_serial-run' + <<: *functest-kubernetes-pi-jobs + - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-sig_auth-run' + <<: *functest-kubernetes-pi-jobs + - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-sig_cluster_lifecycle-run' + <<: *functest-kubernetes-pi-jobs + - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-sig_instrumentation-run' + <<: *functest-kubernetes-pi-jobs + - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-sig_network-run' + <<: *functest-kubernetes-pi-jobs + - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-sig_node-run' + <<: *functest-kubernetes-pi-jobs + - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-sig_scheduling_serial-run' + <<: *functest-kubernetes-pi-jobs + - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-sig_storage-run' + <<: *functest-kubernetes-pi-jobs + - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-smoke-{tag}-sig_storage_serial-run' + <<: *functest-kubernetes-pi-jobs - multijob: name: ollivier/functest-kubernetes-security:{tag} projects: @@ -498,6 +849,8 @@ projects: - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-benchmarking-{tag}-xrally_kubernetes_full-run' <<: *functest-kubernetes-pi-jobs + - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-benchmarking-{tag}-netperf-run' + <<: *functest-kubernetes-pi-jobs - multijob: name: ollivier/functest-kubernetes-cnf:{tag} projects: @@ -505,17 +858,22 @@ <<: *functest-kubernetes-pi-jobs - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-cnf-{tag}-helm_vims-run' <<: *functest-kubernetes-pi-jobs - - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-cnf-{tag}-cnf_conformance-run' + - name: 'functest-kubernetes-pi-ollivier-functest-kubernetes-cnf-{tag}-cnf_testsuite-run' <<: *functest-kubernetes-pi-jobs - multijob: name: dump all campaign data projects: - name: 'functest-kubernetes-pi-{tag}-zip' <<: *functest-kubernetes-pi-jobs - + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com - project: - name: 'functest-kubernetes-pi' + name: 'functest-kubernetes-pi-daily' <<: *functest-kubernetes-pi-params jobs: - 'functest-kubernetes-pi-{tag}-daily' @@ -530,4 +888,4 @@ - last-success - last-failure - last-duration - regex: ^functest-kubernetes-pi-(arm.*-|amd64-)*[a-z]+-daily$ + regex: ^functest-kubernetes-pi-[a-z-0-9.]+-daily$ diff --git a/jjb/functest/functest-kubernetes-project-jobs.yaml b/jjb/functest/functest-kubernetes-project-jobs.yaml deleted file mode 100644 index 956527656..000000000 --- a/jjb/functest/functest-kubernetes-project-jobs.yaml +++ /dev/null @@ -1,86 +0,0 @@ ---- -- functest-kubernetes-project-params: &functest-kubernetes-project-params - name: 'functest-kubernetes-project-params' - tag: - - latest: - branch: master - slave: lf-virtual1 - - leguer: - branch: stable/leguer - slave: lf-virtual1 - - kali: - branch: stable/kali - slave: lf-virtual1 - - jerma: - branch: stable/jerma - slave: lf-virtual1 - - iruya: - branch: stable/iruya - slave: lf-virtual1 - - hunter: - branch: stable/hunter - slave: lf-virtual1 - -- builder: - name: functest-kubernetes-run-tox - builders: - - shell: tox - -- trigger: - name: functest-kubernetes-project-patchset-created - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: 'functest-kubernetes' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - skip-vote: - successful: false - failed: false - unstable: false - notbuilt: false - -- parameter: - name: functest-kubernetes-project-slave - parameters: - - label: - name: slave - default: '{slave}' - -- scm: - name: functest-kubernetes-project-scm - scm: - - git: - url: https://gerrit.opnfv.org/gerrit/functest-kubernetes - refspec: '+refs/changes/*:refs/changes/*' - branches: - - '{ref}' - -- job-template: - name: 'functest-kubernetes-run-tox-{tag}' - triggers: - - functest-kubernetes-project-patchset-created: - branch: '{branch}' - scm: - - functest-kubernetes-project-scm: - ref: $GERRIT_REFSPEC - parameters: - - functest-kubernetes-project-slave: - slave: '{slave}' - builders: - - functest-kubernetes-run-tox - -- project: - name: 'functest-kubernetes-run-tox' - <<: *functest-kubernetes-project-params - jobs: - - 'functest-kubernetes-run-tox-{tag}' diff --git a/jjb/functest/functest-kubernetes.yaml b/jjb/functest/functest-kubernetes.yaml index 01022dfff..dcab411cd 100644 --- a/jjb/functest/functest-kubernetes.yaml +++ b/jjb/functest/functest-kubernetes.yaml @@ -1,38 +1,240 @@ --- -- functest-kubernetes-jobs: &functest-kubernetes-jobs - name: 'functest-kubernetes-jobs' - current-parameters: true +- functest-kubernetes-containers: &functest-kubernetes-containers + name: 'functest-kubernetes-containers' + repo: '{repo}' + port: '{port}' + container: '{container}' + tag: '{tag}' - functest-kubernetes-params: &functest-kubernetes-params name: 'functest-kubernetes-params' + tag: + - latest: + from: + build_args: + branch: master + node: v1.30 + dependency: 3.16 + - v1.29: + from: + build_args: + branch: stable/v1.29 + node: v1.29 + dependency: 3.16 + - v1.28: + from: + build_args: + branch: stable/v1.28 + node: v1.28 + dependency: 3.16 + - v1.27: + from: + build_args: + branch: stable/v1.27 + node: v1.27 + dependency: 3.16 + - v1.26: + from: + build_args: + branch: stable/v1.26 + node: v1.26 + dependency: 3.16 + +- functest-kubernetes-opnfv-functest-kubernetes-healthcheck-params: &functest-kubernetes-opnfv-functest-kubernetes-healthcheck-params + name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-params' + repo: 'opnfv' + container: 'functest-kubernetes-healthcheck' + port: + tag: + - latest: + from: + build_args: + branch: master + node: v1.30 + dependency: 3.16 + - v1.29: + from: + build_args: + branch: stable/v1.29 + node: v1.29 + dependency: 3.16 + - v1.28: + from: + build_args: + branch: stable/v1.28 + node: v1.28 + dependency: 3.16 + - v1.27: + from: + build_args: + branch: stable/v1.27 + node: v1.27 + dependency: 3.16 + - v1.26: + from: + build_args: + branch: stable/v1.26 + node: v1.26 + dependency: 3.16 + +- functest-kubernetes-opnfv-functest-kubernetes-smoke-params: &functest-kubernetes-opnfv-functest-kubernetes-smoke-params + name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-params' + repo: 'opnfv' + container: 'functest-kubernetes-smoke' + port: + tag: + - latest: + from: + build_args: + branch: master + node: v1.30 + dependency: 3.16 + - v1.29: + from: + build_args: + branch: stable/v1.29 + node: v1.29 + dependency: 3.16 + - v1.28: + from: + build_args: + branch: stable/v1.28 + node: v1.28 + dependency: 3.16 + - v1.27: + from: + build_args: + branch: stable/v1.27 + node: v1.27 + dependency: 3.16 + - v1.26: + from: + build_args: + branch: stable/v1.26 + node: v1.26 + dependency: 3.16 + +- functest-kubernetes-opnfv-functest-kubernetes-security-params: &functest-kubernetes-opnfv-functest-kubernetes-security-params + name: 'functest-kubernetes-opnfv-functest-kubernetes-security-params' + repo: 'opnfv' + container: 'functest-kubernetes-security' + port: + tag: + - latest: + from: + build_args: + branch: master + node: v1.30 + dependency: 3.16 + - v1.29: + from: + build_args: + branch: stable/v1.29 + node: v1.29 + dependency: 3.16 + - v1.28: + from: + build_args: + branch: stable/v1.28 + node: v1.28 + dependency: 3.16 + - v1.27: + from: + build_args: + branch: stable/v1.27 + node: v1.27 + dependency: 3.16 + - v1.26: + from: + build_args: + branch: stable/v1.26 + node: v1.26 + dependency: 3.16 + +- functest-kubernetes-opnfv-functest-kubernetes-benchmarking-params: &functest-kubernetes-opnfv-functest-kubernetes-benchmarking-params + name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-params' + repo: 'opnfv' + container: 'functest-kubernetes-benchmarking' + port: + tag: + - latest: + from: + build_args: + branch: master + node: v1.30 + dependency: 3.16 + - v1.29: + from: + build_args: + branch: stable/v1.29 + node: v1.29 + dependency: 3.16 + - v1.28: + from: + build_args: + branch: stable/v1.28 + node: v1.28 + dependency: 3.16 + - v1.27: + from: + build_args: + branch: stable/v1.27 + node: v1.27 + dependency: 3.16 + - v1.26: + from: + build_args: + branch: stable/v1.26 + node: v1.26 + dependency: 3.16 + +- functest-kubernetes-opnfv-functest-kubernetes-cnf-params: &functest-kubernetes-opnfv-functest-kubernetes-cnf-params + name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-params' repo: 'opnfv' + container: 'functest-kubernetes-cnf' port: tag: - latest: + from: + build_args: branch: master - slave: lf-virtual1-6 - - leguer: - branch: stable/leguer - slave: lf-virtual1-5 - - kali: - branch: stable/kali - slave: lf-virtual1-4 - - jerma: - branch: stable/jerma - slave: lf-virtual1-3 - - iruya: - branch: stable/iruya - slave: lf-virtual1-2 - - hunter: - branch: stable/hunter - slave: lf-virtual1-1 + node: v1.30 + dependency: 3.16 + - v1.29: + from: + build_args: + branch: stable/v1.29 + node: v1.29 + dependency: 3.16 + - v1.28: + from: + build_args: + branch: stable/v1.28 + node: v1.28 + dependency: 3.16 + - v1.27: + from: + build_args: + branch: stable/v1.27 + node: v1.27 + dependency: 3.16 + - v1.26: + from: + build_args: + branch: stable/v1.26 + node: v1.26 + dependency: 3.16 + +- functest-kubernetes-jobs: &functest-kubernetes-jobs + name: 'functest-kubernetes-jobs' + current-parameters: true - parameter: - name: functest-kubernetes-slave + name: functest-kubernetes-node parameters: - label: - name: slave - default: '{slave}' + name: node + default: '{node}' - parameter: name: functest-kubernetes-build_tag @@ -41,38 +243,22 @@ name: build_tag - parameter: - name: functest-kubernetes-branch - parameters: - - string: - name: branch - default: '{branch}' - -- parameter: name: functest-kubernetes-DEPLOY_SCENARIO parameters: - string: name: DEPLOY_SCENARIO default: k8-nosdn-nofeature-noha -- parameter: - name: functest-kubernetes-DEBUG - parameters: - - string: - name: DEBUG - default: 'true' - -- functest-kubernetes-containers: &functest-kubernetes-containers - name: 'functest-kubernetes-containers' - repo: '{repo}' - port: '{port}' - container: '{container}' - tag: '{tag}' - functest-kubernetes-run-containers: &functest-kubernetes-run-containers name: 'functest-kubernetes-run-containers' <<: *functest-kubernetes-containers - test: '{test}' privileged: '{privileged}' + volumes: '{volumes}' + env: '{env}' network: '{network}' + uid: '{uid}' + gid: '{gid}' + published_ports: '{published_ports}' - builder: name: functest-kubernetes-pull-containers @@ -93,7 +279,22 @@ builders: - shell: | set +x - [ ! -z "$WORKSPACE" ] && rm -rf $WORKSPACE/* || true + volumes=; + if [ "{volumes}" != "None" ]; then + for i in $(echo {volumes} | tr -d '[]' |sed "s/, / /g" ); \ + do volumes="-v $i $volumes"; done + fi + env=; + if [ "{env}" != "None" ]; then + for i in $(eval echo {env} | tr -d '[]' |sed "s/, / /g" ); \ + do env="-e $i $env"; done + fi + published_ports=; + if [ "{published_ports}" != "None" ]; then + for i in $(echo {published_ports} | tr -d '[]' |sed "s/, / /g" ); \ + do published_ports="-p $i $published_ports"; done + fi + [ ! -z "$WORKSPACE" ] && rm -rf $WORKSPACE/results || true if [ "{repo}" = "_" ]; then image={container}:{tag} elif [ "{port}" = "None" ]; then @@ -101,21 +302,23 @@ else image={repo}:{port}/{container}:{tag} fi + mkdir -p $WORKSPACE/results + chown {uid}:{gid} $WORKSPACE/results docker run --rm \ --privileged={privileged} \ --network={network} \ + $volumes \ + $env \ + $published_ports \ -e S3_ENDPOINT_URL=https://storage.googleapis.com \ -e S3_DST_URL=s3://artifacts.opnfv.org/functest-kubernetes/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ -e HTTP_DST_URL=http://artifacts.opnfv.org/functest-kubernetes/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ + -v /home/opnfv/functest-kubernetes/.boto:/etc/boto.cfg \ -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \ - -e NODE_NAME=$slave \ + -e NODE_NAME=$node \ -e BUILD_TAG=$BUILD_TAG \ -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ - -e DEPLOY_SCENARIO=$DEPLOY_SCENARIO \ - -e DEBUG=$DEBUG \ - -v /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config \ - -v /home/opnfv/functest-kubernetes/.boto:/root/.boto \ $image run_tests -t {test} -p -r - builder: @@ -132,173 +335,260 @@ fi docker rmi $image || true -- functest-kubernetes-build-containers: &functest-kubernetes-build-containers - name: 'functest-kubernetes-build-containers' - <<: *functest-kubernetes-containers - ref_arg: '{ref_arg}' - path: '{path}' - -- builder: - name: functest-kubernetes-build-containers - builders: - - shell: | - set +x - if [ "{repo}" = "_" ]; then - image={container}:{tag} - elif [ "{port}" = "None" ]; then - image={repo}/{container}:{tag} - else - image={repo}:{port}/{container}:{tag} - fi - if [ "{ref_arg}" = "None" ]; then - build_arg="" - else - build_arg="--build-arg {ref_arg}={ref}" - fi - cd {path} - docker build $build_arg \ - --pull=false --no-cache --force-rm=true \ - -t $image . - -- scm: - name: functest-kubernetes-scm - scm: - - git: - url: https://gerrit.opnfv.org/gerrit/functest-kubernetes - refspec: '+refs/changes/*:refs/changes/*' - branches: - - '{ref}' - - job-template: - name: 'functest-kubernetes-{repo}-{container}-{tag}-pull' + name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-pull' parameters: - - functest-kubernetes-slave: - slave: '{slave}' + - functest-kubernetes-node: + node: '{node}' builders: - functest-kubernetes-pull-containers: <<: *functest-kubernetes-containers - project: name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-pull' - <<: *functest-kubernetes-params - container: 'functest-kubernetes-healthcheck' + <<: *functest-kubernetes-opnfv-functest-kubernetes-healthcheck-params jobs: - - 'functest-kubernetes-{repo}-{container}-{tag}-pull' + - 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-pull' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-rmi' + parameters: + - functest-kubernetes-node: + node: '{node}' + builders: + - functest-kubernetes-remove-images: + <<: *functest-kubernetes-containers - project: - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-pull' - <<: *functest-kubernetes-params - container: 'functest-kubernetes-smoke' + name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-rmi' + <<: *functest-kubernetes-opnfv-functest-kubernetes-healthcheck-params jobs: - - 'functest-kubernetes-{repo}-{container}-{tag}-pull' + - 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-rmi' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-pull' + parameters: + - functest-kubernetes-node: + node: '{node}' + builders: + - functest-kubernetes-pull-containers: + <<: *functest-kubernetes-containers - project: - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-pull' - <<: *functest-kubernetes-params - container: 'functest-kubernetes-security' + name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-pull' + <<: *functest-kubernetes-opnfv-functest-kubernetes-smoke-params jobs: - - 'functest-kubernetes-{repo}-{container}-{tag}-pull' + - 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-pull' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-rmi' + parameters: + - functest-kubernetes-node: + node: '{node}' + builders: + - functest-kubernetes-remove-images: + <<: *functest-kubernetes-containers - project: - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-pull' - <<: *functest-kubernetes-params - container: 'functest-kubernetes-benchmarking' + name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-rmi' + <<: *functest-kubernetes-opnfv-functest-kubernetes-smoke-params jobs: - - 'functest-kubernetes-{repo}-{container}-{tag}-pull' + - 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-rmi' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-pull' + parameters: + - functest-kubernetes-node: + node: '{node}' + builders: + - functest-kubernetes-pull-containers: + <<: *functest-kubernetes-containers - project: - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-pull' - <<: *functest-kubernetes-params - container: 'functest-kubernetes-cnf' + name: 'functest-kubernetes-opnfv-functest-kubernetes-security-pull' + <<: *functest-kubernetes-opnfv-functest-kubernetes-security-params jobs: - - 'functest-kubernetes-{repo}-{container}-{tag}-pull' + - 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-pull' - job-template: - name: 'functest-kubernetes-{repo}-{container}-{tag}-rmi' + name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-rmi' parameters: - - functest-kubernetes-slave: - slave: '{slave}' + - functest-kubernetes-node: + node: '{node}' builders: - functest-kubernetes-remove-images: <<: *functest-kubernetes-containers - project: - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-rmi' - <<: *functest-kubernetes-params - container: 'functest-kubernetes-healthcheck' + name: 'functest-kubernetes-opnfv-functest-kubernetes-security-rmi' + <<: *functest-kubernetes-opnfv-functest-kubernetes-security-params jobs: - - 'functest-kubernetes-{repo}-{container}-{tag}-rmi' + - 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-rmi' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-pull' + parameters: + - functest-kubernetes-node: + node: '{node}' + builders: + - functest-kubernetes-pull-containers: + <<: *functest-kubernetes-containers - project: - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-rmi' - <<: *functest-kubernetes-params - container: 'functest-kubernetes-smoke' + name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-pull' + <<: *functest-kubernetes-opnfv-functest-kubernetes-benchmarking-params jobs: - - 'functest-kubernetes-{repo}-{container}-{tag}-rmi' + - 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-pull' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-rmi' + parameters: + - functest-kubernetes-node: + node: '{node}' + builders: + - functest-kubernetes-remove-images: + <<: *functest-kubernetes-containers - project: - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-rmi' - <<: *functest-kubernetes-params - container: 'functest-kubernetes-security' + name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-rmi' + <<: *functest-kubernetes-opnfv-functest-kubernetes-benchmarking-params jobs: - - 'functest-kubernetes-{repo}-{container}-{tag}-rmi' + - 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-rmi' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-pull' + parameters: + - functest-kubernetes-node: + node: '{node}' + builders: + - functest-kubernetes-pull-containers: + <<: *functest-kubernetes-containers - project: - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-rmi' - <<: *functest-kubernetes-params - container: 'functest-kubernetes-benchmarking' + name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-pull' + <<: *functest-kubernetes-opnfv-functest-kubernetes-cnf-params jobs: - - 'functest-kubernetes-{repo}-{container}-{tag}-rmi' + - 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-pull' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-rmi' + parameters: + - functest-kubernetes-node: + node: '{node}' + builders: + - functest-kubernetes-remove-images: + <<: *functest-kubernetes-containers - project: name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-rmi' - <<: *functest-kubernetes-params - container: 'functest-kubernetes-cnf' + <<: *functest-kubernetes-opnfv-functest-kubernetes-cnf-params jobs: - - 'functest-kubernetes-{repo}-{container}-{tag}-rmi' + - 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-rmi' - job-template: - name: 'functest-kubernetes-{repo}-{container}-{tag}-{test}-run' + name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-{test}-run' parameters: - - functest-kubernetes-slave: - slave: '{slave}' + - functest-kubernetes-node: + node: '{node}' - 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 + test: '{test}' - project: name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck' - <<: *functest-kubernetes-params + <<: *functest-kubernetes-opnfv-functest-kubernetes-healthcheck-params + volumes: + - /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config + - /home/opnfv/functest-kubernetes/config.{tag}:/home/xtesting/.kube/config + env: + - DEPLOY_SCENARIO=$DEPLOY_SCENARIO + published_ports: container: 'functest-kubernetes-healthcheck' test: - k8s_quick - k8s_smoke privileged: 'false' network: bridge + uid: 1000 + gid: 1000 jobs: - - 'functest-kubernetes-{repo}-{container}-{tag}-{test}-run' + - 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-{test}-run' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-{test}-run' + parameters: + - functest-kubernetes-node: + node: '{node}' + - functest-kubernetes-build_tag: + build_tag: '' + - functest-kubernetes-DEPLOY_SCENARIO: + DEPLOY_SCENARIO: k8-nosdn-nofeature-noha + builders: + - functest-kubernetes-run-containers: + <<: *functest-kubernetes-run-containers + test: '{test}' - project: name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke' - <<: *functest-kubernetes-params + <<: *functest-kubernetes-opnfv-functest-kubernetes-smoke-params + volumes: + - /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config + - /home/opnfv/functest-kubernetes/config.{tag}:/home/xtesting/.kube/config + env: + - DEPLOY_SCENARIO=$DEPLOY_SCENARIO + published_ports: container: 'functest-kubernetes-smoke' test: - xrally_kubernetes - k8s_conformance + - k8s_conformance_serial + - sig_api_machinery + - sig_api_machinery_serial + - sig_apps + - sig_apps_serial + - sig_auth + - sig_cluster_lifecycle + - sig_instrumentation + - sig_network + - sig_node + - sig_scheduling_serial + - sig_storage + - sig_storage_serial privileged: 'false' network: bridge + uid: 1000 + gid: 1000 jobs: - - 'functest-kubernetes-{repo}-{container}-{tag}-{test}-run' + - 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-{test}-run' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-{test}-run' + parameters: + - functest-kubernetes-node: + node: '{node}' + - functest-kubernetes-build_tag: + build_tag: '' + - functest-kubernetes-DEPLOY_SCENARIO: + DEPLOY_SCENARIO: k8-nosdn-nofeature-noha + builders: + - functest-kubernetes-run-containers: + <<: *functest-kubernetes-run-containers + test: '{test}' - project: name: 'functest-kubernetes-opnfv-functest-kubernetes-security' - <<: *functest-kubernetes-params + <<: *functest-kubernetes-opnfv-functest-kubernetes-security-params + volumes: + - /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config + - /home/opnfv/functest-kubernetes/config.{tag}:/home/xtesting/.kube/config + env: + - DEPLOY_SCENARIO=$DEPLOY_SCENARIO + published_ports: container: 'functest-kubernetes-security' test: - kube_hunter @@ -306,45 +596,101 @@ - kube_bench_node privileged: 'false' network: bridge + uid: 1000 + gid: 1000 jobs: - - 'functest-kubernetes-{repo}-{container}-{tag}-{test}-run' + - 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-{test}-run' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-{test}-run' + parameters: + - functest-kubernetes-node: + node: '{node}' + - functest-kubernetes-build_tag: + build_tag: '' + - functest-kubernetes-DEPLOY_SCENARIO: + DEPLOY_SCENARIO: k8-nosdn-nofeature-noha + builders: + - functest-kubernetes-run-containers: + <<: *functest-kubernetes-run-containers + test: '{test}' - project: name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking' - <<: *functest-kubernetes-params + <<: *functest-kubernetes-opnfv-functest-kubernetes-benchmarking-params + volumes: + - /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config + - /home/opnfv/functest-kubernetes/config.{tag}:/home/xtesting/.kube/config + env: + - DEPLOY_SCENARIO=$DEPLOY_SCENARIO + published_ports: container: 'functest-kubernetes-benchmarking' test: - xrally_kubernetes_full + - netperf privileged: 'false' network: bridge + uid: 1000 + gid: 1000 jobs: - - 'functest-kubernetes-{repo}-{container}-{tag}-{test}-run' + - 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-{test}-run' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-{test}-run' + parameters: + - functest-kubernetes-node: + node: '{node}' + - functest-kubernetes-build_tag: + build_tag: '' + - functest-kubernetes-DEPLOY_SCENARIO: + DEPLOY_SCENARIO: k8-nosdn-nofeature-noha + builders: + - functest-kubernetes-run-containers: + <<: *functest-kubernetes-run-containers + test: '{test}' - project: name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf' - <<: *functest-kubernetes-params + <<: *functest-kubernetes-opnfv-functest-kubernetes-cnf-params + volumes: + - /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config + - /home/opnfv/functest-kubernetes/config.{tag}:/home/xtesting/.kube/config + env: + - DEPLOY_SCENARIO=$DEPLOY_SCENARIO + published_ports: container: 'functest-kubernetes-cnf' test: - k8s_vims - helm_vims - - cnf_conformance - exclude: - - tag: iruya - test: k8s_vims - - tag: iruya - test: helm_vims + - cnf_testsuite privileged: 'false' network: bridge + uid: 1000 + gid: 1000 jobs: - - 'functest-kubernetes-{repo}-{container}-{tag}-{test}-run' - + - 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-{test}-run' - builder: name: functest-kubernetes-zip builders: - shell: | set +x - [ ! -z "$WORKSPACE" ] && rm -rf $WORKSPACE/* || true + volumes=; + if [ "{volumes}" != "None" ]; then + for i in $(echo {volumes} | tr -d '[]' |sed "s/, / /g" ); \ + do volumes="-v $i $volumes"; done + fi + env=; + if [ "{env}" != "None" ]; then + for i in $(eval echo {env} | tr -d '[]' |sed "s/, / /g" ); \ + do env="-e $i $env"; done + fi + published_ports=; + if [ "{published_ports}" != "None" ]; then + for i in $(echo {published_ports} | tr -d '[]' |sed "s/, / /g" ); \ + do published_ports="-p $i $published_ports"; done + fi + [ ! -z "$WORKSPACE" ] && rm -rf $WORKSPACE/results || true if [ "{repo}" = "_" ]; then image={container}:{tag} elif [ "{port}" = "None" ]; then @@ -352,39 +698,52 @@ else image={repo}:{port}/{container}:{tag} fi + mkdir -p $WORKSPACE/results + chown {uid}:{gid} $WORKSPACE/results docker run --rm \ + --privileged={privileged} \ + --network={network} \ + $volumes \ + $env \ + $published_ports \ -e S3_ENDPOINT_URL=https://storage.googleapis.com \ -e S3_DST_URL=s3://artifacts.opnfv.org/functest-kubernetes \ -e HTTP_DST_URL=http://artifacts.opnfv.org/functest-kubernetes \ + -v /home/opnfv/functest-kubernetes/.boto:/etc/boto.cfg \ -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \ + -e NODE_NAME=$node \ -e BUILD_TAG=$BUILD_TAG \ -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ - -e DEPLOY_SCENARIO=$DEPLOY_SCENARIO \ - -e DEBUG=$DEBUG \ - -v /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config \ - -v /home/opnfv/functest-kubernetes/.boto:/root/.boto \ $image zip_campaign - job-template: name: 'functest-kubernetes-{tag}-zip' parameters: - - functest-kubernetes-slave: - slave: '{slave}' + - functest-kubernetes-node: + node: '{node}' - functest-kubernetes-build_tag: build_tag: '' - functest-kubernetes-DEPLOY_SCENARIO: DEPLOY_SCENARIO: k8-nosdn-nofeature-noha - - functest-kubernetes-DEBUG: - DEBUG: 'true' builders: - functest-kubernetes-zip: - <<: *functest-kubernetes-containers + <<: *functest-kubernetes-run-containers - project: - name: 'functest-kubernetes-{tag}-zip' - <<: *functest-kubernetes-params + name: 'functest-kubernetes-zip' + <<: *functest-kubernetes-opnfv-functest-kubernetes-healthcheck-params + volumes: + - /home/opnfv/functest-kubernetes/config.{tag}:/root/.kube/config + - /home/opnfv/functest-kubernetes/config.{tag}:/home/xtesting/.kube/config + env: + - DEPLOY_SCENARIO=$DEPLOY_SCENARIO + published_ports: container: 'functest-kubernetes-healthcheck' + privileged: 'false' + network: bridge + uid: 1000 + gid: 1000 jobs: - 'functest-kubernetes-{tag}-zip' @@ -394,20 +753,20 @@ triggers: - timed: '@weekly' parameters: - - functest-kubernetes-slave: - slave: '{slave}' + - functest-kubernetes-node: + node: '{node}' - functest-kubernetes-build_tag: build_tag: '' - functest-kubernetes-DEPLOY_SCENARIO: DEPLOY_SCENARIO: k8-nosdn-nofeature-noha - - functest-kubernetes-DEBUG: - DEBUG: 'true' + # PyYAML and yamllint differ here + # see https://github.com/yaml/pyyaml/issues/234 + # yamllint disable rule:indentation properties: - build-blocker: - use-build-blocker: true - blocking-level: 'GLOBAL' blocking-jobs: - - '^functest-kubernetes(-pi)?-(arm.*-|amd64-)*[a-z]+-(daily|gate|check)$' + - ^functest-kubernetes-(pi-)*.*-(daily|docker|review)$ + # yamllint enable rule:indentation builders: - multijob: name: remove former images @@ -418,7 +777,7 @@ <<: *functest-kubernetes-jobs - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-rmi' <<: *functest-kubernetes-jobs - - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-pull' + - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-rmi' <<: *functest-kubernetes-jobs - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-rmi' <<: *functest-kubernetes-jobs @@ -444,11 +803,38 @@ <<: *functest-kubernetes-jobs - multijob: name: opnfv/functest-kubernetes-smoke:{tag} + execution-type: SEQUENTIALLY projects: - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-xrally_kubernetes-run' <<: *functest-kubernetes-jobs - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_conformance-run' <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_conformance_serial-run' + <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_api_machinery-run' + <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_api_machinery_serial-run' + <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_apps-run' + <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_apps_serial-run' + <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_auth-run' + <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_cluster_lifecycle-run' + <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_instrumentation-run' + <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_network-run' + <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_node-run' + <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_scheduling_serial-run' + <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_storage-run' + <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_storage_serial-run' + <<: *functest-kubernetes-jobs - multijob: name: opnfv/functest-kubernetes-security:{tag} projects: @@ -463,6 +849,8 @@ projects: - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-xrally_kubernetes_full-run' <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-netperf-run' + <<: *functest-kubernetes-jobs - multijob: name: opnfv/functest-kubernetes-cnf:{tag} projects: @@ -470,142 +858,368 @@ <<: *functest-kubernetes-jobs - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-helm_vims-run' <<: *functest-kubernetes-jobs - - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-cnf_conformance-run' + - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-cnf_testsuite-run' <<: *functest-kubernetes-jobs - multijob: name: dump all campaign data projects: - name: 'functest-kubernetes-{tag}-zip' <<: *functest-kubernetes-jobs + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-kubernetes-daily' + <<: *functest-kubernetes-params + jobs: + - 'functest-kubernetes-{tag}-daily' + +- view: + name: functest-kubernetes + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: ^functest-kubernetes-[a-z0-9.-]+-daily$ + +- functest-kubernetes-build-containers: &functest-kubernetes-build-containers + name: 'functest-kubernetes-build-containers' + <<: *functest-kubernetes-containers + ref_arg: '{ref_arg}' + path: '{path}' + build_args: '{build_args}' + from: '{from}' + +- builder: + name: functest-kubernetes-build-containers + builders: + - shell: | + set +x + if [ "{repo}" = "_" ]; then + image={container}:{tag} + elif [ "{port}" = "None" ]; then + image={repo}/{container}:{tag} + else + image={repo}:{port}/{container}:{tag} + fi + build_args="" + if [ "{build_args}" != "None" ]; then + for i in $(echo {build_args} | tr -d '[]' |sed "s/, / /g" ); \ + do build_args="--build-arg $i $build_args"; done + fi + if [ "{ref_arg}" != "None" ]; then + build_args="$build_args --build-arg {ref_arg}={ref}" + fi + cd {path} + if [ "{from}" != "None" ]; then + sed -i {from} Dockerfile + fi + docker build $build_args \ + --pull=false --no-cache --force-rm=true \ + -t $image . + +- scm: + name: functest-kubernetes-scm + scm: + - git: + url: 'https://gerrit.opnfv.org/gerrit/functest-kubernetes' + refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*' + branches: + - '{ref}' + +- functest-kubernetes-dep: &functest-kubernetes-dep + name: 'functest-kubernetes-containers' + repo: '{repo}' + container: '{container}' + port: '{port}' + tag: '{dependency}' - job-template: - name: 'functest-kubernetes-{repo}-{container}-{tag}-gate' + name: 'functest-kubernetes-{tag}-dep-pull' parameters: - - functest-kubernetes-slave: - slave: '{slave}' + - functest-kubernetes-node: + node: '{node}' + builders: + - functest-kubernetes-pull-containers: + <<: *functest-kubernetes-dep + +- functest-kubernetes-dep-params: &functest-kubernetes-dep-params + name: 'functest-kubernetes-dep-params' + repo: '_' + container: 'alpine' + port: + tag: + - latest: + dependency: 3.16 + - v1.29: + dependency: 3.16 + - v1.28: + dependency: 3.16 + - v1.27: + dependency: 3.16 + - v1.26: + dependency: 3.16 + +- project: + name: 'functest-kubernetes-dep-pull' + <<: *functest-kubernetes-dep-params + jobs: + - 'functest-kubernetes-{tag}-dep-pull' + +- job-template: + name: 'functest-kubernetes-{tag}-dep-rmi' + parameters: + - functest-kubernetes-node: + node: '{node}' + builders: + - functest-kubernetes-remove-images: + <<: *functest-kubernetes-dep + +- project: + name: 'functest-kubernetes-dep-rmi' + <<: *functest-kubernetes-dep-params + jobs: + - 'functest-kubernetes-{tag}-dep-rmi' + +- builder: + name: functest-kubernetes-tox + builders: + - shell: | + set +x + apt-get -o DPkg::Lock::Timeout=300 update && \ + DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 dist-upgrade -y + DEBIAN_FRONTEND=noninteractive \ + apt-get -o DPkg::Lock::Timeout=300 install software-properties-common gpg -y + add-apt-repository -y ppa:deadsnakes/ppa + apt-get -o DPkg::Lock::Timeout=300 update && \ + DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 install \ + libxml2-dev libxslt-dev libffi-dev libjpeg-dev \ + python3.10 python3.10-dev python3.10-distutils \ + python3.9 python3.9-dev python3.9-distutils \ + python3.8 python3.8-dev python3.8-distutils \ + python3-pip enchant-2 -y + pip3 install tox + + tox + +- job-template: + name: 'functest-kubernetes-{tag}-tox' scm: - functest-kubernetes-scm: ref: $GERRIT_REFSPEC + triggers: + - functest-kubernetes-patchset-created: + branch: '{branch}' + parameters: + - functest-kubernetes-node: + node: '{node}' builders: - - functest-kubernetes-build-containers: - <<: *functest-kubernetes-build-containers - ref: $GERRIT_REFSPEC + - functest-kubernetes-tox: + +- project: + name: functest-kubernetes-tox + <<: *functest-kubernetes-params + jobs: + - 'functest-kubernetes-{tag}-tox' - job-template: - name: 'functest-kubernetes-{repo}-{container}-{tag}-check' + name: 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-gate' parameters: - - functest-kubernetes-slave: - slave: '{slave}' - - functest-kubernetes-branch: - branch: '{branch}' + - functest-kubernetes-node: + node: '{node}' scm: - functest-kubernetes-scm: - ref: $branch + ref: $GERRIT_REFSPEC builders: - functest-kubernetes-build-containers: <<: *functest-kubernetes-build-containers - ref: $branch - -- project: - name: 'functest-kubernetes-_-golang-1.15-alpine3.12-rmi' - repo: _ - port: - container: golang - tag: '1.15-alpine3.12' - slave: master - jobs: - - 'functest-kubernetes-{repo}-{container}-{tag}-rmi' - -- project: - name: 'functest-kubernetes-_-golang-1.15-alpine3.12-pull' - repo: _ - port: - container: golang - tag: '1.15-alpine3.12' - slave: master - jobs: - - 'functest-kubernetes-{repo}-{container}-{tag}-pull' + ref: $GERRIT_REFSPEC + build_args: '{build_args}' - project: - name: functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-build + name: functest-kubernetes-opnfv-functest-kubernetes-core-gate <<: *functest-kubernetes-params + repo: opnfv + port: container: functest-kubernetes-core ref_arg: BRANCH path: docker/core jobs: - - 'functest-kubernetes-{repo}-{container}-{tag}-gate' - - 'functest-kubernetes-{repo}-{container}-{tag}-check' + - 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-gate' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-gate' + parameters: + - functest-kubernetes-node: + node: '{node}' + scm: + - functest-kubernetes-scm: + ref: $GERRIT_REFSPEC + builders: + - functest-kubernetes-build-containers: + <<: *functest-kubernetes-build-containers + ref: $GERRIT_REFSPEC + build_args: '{build_args}' - project: - name: functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-build + name: functest-kubernetes-opnfv-functest-kubernetes-healthcheck-gate <<: *functest-kubernetes-params + repo: opnfv + port: container: functest-kubernetes-healthcheck ref_arg: path: docker/healthcheck jobs: - - 'functest-kubernetes-{repo}-{container}-{tag}-gate' - - 'functest-kubernetes-{repo}-{container}-{tag}-check' + - 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-gate' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-gate' + parameters: + - functest-kubernetes-node: + node: '{node}' + scm: + - functest-kubernetes-scm: + ref: $GERRIT_REFSPEC + builders: + - functest-kubernetes-build-containers: + <<: *functest-kubernetes-build-containers + ref: $GERRIT_REFSPEC + build_args: '{build_args}' - project: - name: functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-build + name: functest-kubernetes-opnfv-functest-kubernetes-cnf-gate <<: *functest-kubernetes-params + repo: opnfv + port: container: functest-kubernetes-cnf ref_arg: BRANCH path: docker/cnf jobs: - - 'functest-kubernetes-{repo}-{container}-{tag}-gate' - - 'functest-kubernetes-{repo}-{container}-{tag}-check' + - 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-gate' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-gate' + parameters: + - functest-kubernetes-node: + node: '{node}' + scm: + - functest-kubernetes-scm: + ref: $GERRIT_REFSPEC + builders: + - functest-kubernetes-build-containers: + <<: *functest-kubernetes-build-containers + ref: $GERRIT_REFSPEC + build_args: '{build_args}' - project: - name: functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-build + name: functest-kubernetes-opnfv-functest-kubernetes-security-gate <<: *functest-kubernetes-params + repo: opnfv + port: container: functest-kubernetes-security ref_arg: BRANCH path: docker/security jobs: - - 'functest-kubernetes-{repo}-{container}-{tag}-gate' - - 'functest-kubernetes-{repo}-{container}-{tag}-check' + - 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-gate' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-gate' + parameters: + - functest-kubernetes-node: + node: '{node}' + scm: + - functest-kubernetes-scm: + ref: $GERRIT_REFSPEC + builders: + - functest-kubernetes-build-containers: + <<: *functest-kubernetes-build-containers + ref: $GERRIT_REFSPEC + build_args: '{build_args}' - project: - name: functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-build + name: functest-kubernetes-opnfv-functest-kubernetes-smoke-gate <<: *functest-kubernetes-params + repo: opnfv + port: container: functest-kubernetes-smoke ref_arg: path: docker/smoke jobs: - - 'functest-kubernetes-{repo}-{container}-{tag}-gate' - - 'functest-kubernetes-{repo}-{container}-{tag}-check' + - 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-gate' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-gate' + parameters: + - functest-kubernetes-node: + node: '{node}' + scm: + - functest-kubernetes-scm: + ref: $GERRIT_REFSPEC + builders: + - functest-kubernetes-build-containers: + <<: *functest-kubernetes-build-containers + ref: $GERRIT_REFSPEC + build_args: '{build_args}' - project: - name: functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-build + name: functest-kubernetes-opnfv-functest-kubernetes-benchmarking-gate <<: *functest-kubernetes-params + repo: opnfv + port: container: functest-kubernetes-benchmarking ref_arg: path: docker/benchmarking jobs: - - 'functest-kubernetes-{repo}-{container}-{tag}-gate' - - 'functest-kubernetes-{repo}-{container}-{tag}-check' + - 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-gate' + +- trigger: + name: functest-kubernetes-patchset-created + triggers: + - gerrit: + trigger-on: + - patchset-created-event + - comment-added-contains-event: + comment-contains-value: 'recheck' + - comment-added-contains-event: + comment-contains-value: 'reverify' + projects: + - project-compare-type: 'ANT' + project-pattern: 'functest-kubernetes' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' - job-template: - name: 'functest-kubernetes-{tag}-check' + name: 'functest-kubernetes-{tag}-review' project-type: multijob + triggers: + - functest-kubernetes-patchset-created: + branch: '{branch}' parameters: - - functest-kubernetes-slave: - slave: '{slave}' + - functest-kubernetes-node: + node: '{node}' - functest-kubernetes-build_tag: build_tag: '' - - functest-kubernetes-branch: - branch: '{branch}' - functest-kubernetes-DEPLOY_SCENARIO: DEPLOY_SCENARIO: k8-nosdn-nofeature-noha - - functest-kubernetes-DEBUG: - DEBUG: 'true' + # PyYAML and yamllint differ here + # see https://github.com/yaml/pyyaml/issues/234 + # yamllint disable rule:indentation properties: - build-blocker: - use-build-blocker: true - blocking-level: 'GLOBAL' blocking-jobs: - - '^functest-kubernetes(-pi)?-(arm.*-|amd64-)*[a-z]+-(daily|gate|check)$' + - ^functest-kubernetes-(pi-)*.*-(daily|docker|review)$ + # yamllint enable rule:indentation builders: - multijob: name: remove former images @@ -621,38 +1235,38 @@ - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-rmi' <<: *functest-kubernetes-jobs - multijob: - name: remove dependencies + name: remove dependency projects: - - name: 'functest-kubernetes-_-golang-1.15-alpine3.12-rmi' + - name: 'functest-kubernetes-{tag}-dep-rmi' <<: *functest-kubernetes-jobs - multijob: - name: pull dependencies + name: pull dependency projects: - - name: 'functest-kubernetes-_-golang-1.15-alpine3.12-pull' + - name: 'functest-kubernetes-{tag}-dep-pull' <<: *functest-kubernetes-jobs - multijob: name: build opnfv/functest-kubernetes-core projects: - - name: 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-check' + - name: 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-gate' <<: *functest-kubernetes-jobs - multijob: - name: build opnfv/functest-kubernetes-healthcheck + name: build containers projects: - - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-check' + - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-gate' <<: *functest-kubernetes-jobs - - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-check' + - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-gate' <<: *functest-kubernetes-jobs - - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-check' + - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-gate' <<: *functest-kubernetes-jobs - multijob: - name: build containers + name: build opnfv/functest-kubernetes-smoke projects: - - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-check' + - 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}-check' + - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-gate' <<: *functest-kubernetes-jobs - multijob: name: opnfv/functest-kubernetes-healthcheck:{tag} @@ -663,15 +1277,37 @@ <<: *functest-kubernetes-jobs - multijob: name: opnfv/functest-kubernetes-smoke:{tag} + execution-type: SEQUENTIALLY projects: - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-xrally_kubernetes-run' <<: *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' + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_conformance_serial-run' + <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_api_machinery-run' + <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_api_machinery_serial-run' + <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_apps-run' + <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_apps_serial-run' + <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_auth-run' + <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_cluster_lifecycle-run' + <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_instrumentation-run' + <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_network-run' + <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_node-run' + <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_scheduling_serial-run' + <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_storage-run' + <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sig_storage_serial-run' <<: *functest-kubernetes-jobs - multijob: name: opnfv/functest-kubernetes-security:{tag} @@ -683,160 +1319,862 @@ - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_bench_node-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 + - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-netperf-run' + <<: *functest-kubernetes-jobs + - multijob: name: opnfv/functest-kubernetes-cnf:{tag} projects: - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-k8s_vims-run' <<: *functest-kubernetes-jobs - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-helm_vims-run' <<: *functest-kubernetes-jobs - - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-cnf_conformance-run' + - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-cnf_testsuite-run' <<: *functest-kubernetes-jobs + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-kubernetes-review' + <<: *functest-kubernetes-params + jobs: + - 'functest-kubernetes-{tag}-review' + +- view: + name: functest-kubernetes-review + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: ^functest-kubernetes-[a-z0-9.-]+-review$ + +- view: + name: functest-kubernetes-tox + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: ^functest-kubernetes-[a-z0-9.-]+-tox$ + +- builder: + name: functest-kubernetes-push-containers + builders: + - shell: | + set +x + if [ "{repo}" = "_" ]; then + image={container}:{tag} + elif [ "{port}" = "None" ]; then + image={repo}/{container}:{tag} + else + image={repo}:{port}/{container}:{tag} + fi + docker push $image - trigger: - name: functest-kubernetes-patchset-created + name: functest-kubernetes-commit triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: 'functest-kubernetes' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - skip-vote: - successful: false - failed: false - unstable: false - notbuilt: false + - pollscm: + cron: "*/30 * * * *" + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-build' + parameters: + - functest-kubernetes-node: + node: '{node}' + scm: + - functest-kubernetes-scm: + ref: '{branch}' + builders: + - functest-kubernetes-build-containers: + <<: *functest-kubernetes-build-containers + ref: '{branch}' + build_args: '{build_args}' + - functest-kubernetes-push-containers: + <<: *functest-kubernetes-build-containers + ref: '{branch}' + +- project: + name: functest-kubernetes-opnfv-functest-kubernetes-core-build + <<: *functest-kubernetes-params + repo: opnfv + container: functest-kubernetes-core + port: + ref_arg: BRANCH + path: docker/core + jobs: + - 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-build' - job-template: - name: 'functest-kubernetes-{tag}-gate' + name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-build' + parameters: + - functest-kubernetes-node: + node: '{node}' + scm: + - functest-kubernetes-scm: + ref: '{branch}' + builders: + - functest-kubernetes-build-containers: + <<: *functest-kubernetes-build-containers + ref: '{branch}' + build_args: '{build_args}' + - functest-kubernetes-push-containers: + <<: *functest-kubernetes-build-containers + ref: '{branch}' + +- project: + name: functest-kubernetes-opnfv-functest-kubernetes-healthcheck-build + <<: *functest-kubernetes-params + repo: opnfv + container: functest-kubernetes-healthcheck + port: + ref_arg: + path: docker/healthcheck + jobs: + - 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-build' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-build' + parameters: + - functest-kubernetes-node: + node: '{node}' + scm: + - functest-kubernetes-scm: + ref: '{branch}' + builders: + - functest-kubernetes-build-containers: + <<: *functest-kubernetes-build-containers + ref: '{branch}' + build_args: '{build_args}' + - functest-kubernetes-push-containers: + <<: *functest-kubernetes-build-containers + ref: '{branch}' + +- project: + name: functest-kubernetes-opnfv-functest-kubernetes-cnf-build + <<: *functest-kubernetes-params + repo: opnfv + container: functest-kubernetes-cnf + port: + ref_arg: BRANCH + path: docker/cnf + jobs: + - 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-build' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-build' + parameters: + - functest-kubernetes-node: + node: '{node}' + scm: + - functest-kubernetes-scm: + ref: '{branch}' + builders: + - functest-kubernetes-build-containers: + <<: *functest-kubernetes-build-containers + ref: '{branch}' + build_args: '{build_args}' + - functest-kubernetes-push-containers: + <<: *functest-kubernetes-build-containers + ref: '{branch}' + +- project: + name: functest-kubernetes-opnfv-functest-kubernetes-security-build + <<: *functest-kubernetes-params + repo: opnfv + container: functest-kubernetes-security + port: + ref_arg: BRANCH + path: docker/security + jobs: + - 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-build' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-build' + parameters: + - functest-kubernetes-node: + node: '{node}' + scm: + - functest-kubernetes-scm: + ref: '{branch}' + builders: + - functest-kubernetes-build-containers: + <<: *functest-kubernetes-build-containers + ref: '{branch}' + build_args: '{build_args}' + - functest-kubernetes-push-containers: + <<: *functest-kubernetes-build-containers + ref: '{branch}' + +- project: + name: functest-kubernetes-opnfv-functest-kubernetes-smoke-build + <<: *functest-kubernetes-params + repo: opnfv + container: functest-kubernetes-smoke + port: + ref_arg: + path: docker/smoke + jobs: + - 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-build' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-build' + parameters: + - functest-kubernetes-node: + node: '{node}' + scm: + - functest-kubernetes-scm: + ref: '{branch}' + builders: + - functest-kubernetes-build-containers: + <<: *functest-kubernetes-build-containers + ref: '{branch}' + build_args: '{build_args}' + - functest-kubernetes-push-containers: + <<: *functest-kubernetes-build-containers + ref: '{branch}' + +- project: + name: functest-kubernetes-opnfv-functest-kubernetes-benchmarking-build + <<: *functest-kubernetes-params + repo: opnfv + container: functest-kubernetes-benchmarking + port: + ref_arg: + path: docker/benchmarking + jobs: + - 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-build' + +- job-template: + name: 'functest-kubernetes-{tag}-docker' project-type: multijob triggers: - - functest-kubernetes-patchset-created: - branch: '{branch}' + - functest-kubernetes-commit + scm: + - functest-kubernetes-scm: + ref: '{branch}' 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' + - functest-kubernetes-node: + node: '{node}' + # PyYAML and yamllint differ here + # see https://github.com/yaml/pyyaml/issues/234 + # yamllint disable rule:indentation properties: - build-blocker: - use-build-blocker: true - blocking-level: 'GLOBAL' blocking-jobs: - - '^functest-kubernetes(-pi)?-(arm.*-|amd64-)*[a-z]+-(daily|gate|check)$' + - ^functest-kubernetes-(pi-)*.*-(daily|docker|review)$ + # yamllint enable rule:indentation builders: - multijob: - name: remove former images + name: remove dependency projects: - - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-rmi' - <<: *functest-kubernetes-jobs - - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-rmi' - <<: *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' + - name: 'functest-kubernetes-{tag}-dep-rmi' <<: *functest-kubernetes-jobs - multijob: - name: remove dependencies + name: pull dependency projects: - - name: 'functest-kubernetes-_-golang-1.15-alpine3.12-rmi' - <<: *functest-kubernetes-jobs - - multijob: - name: pull dependencies - projects: - - name: 'functest-kubernetes-_-golang-1.15-alpine3.12-pull' + - name: 'functest-kubernetes-{tag}-dep-pull' <<: *functest-kubernetes-jobs - multijob: name: build opnfv/functest-kubernetes-core projects: - - name: 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-gate' - <<: *functest-kubernetes-jobs - - multijob: - name: build opnfv/functest-kubernetes-healthcheck - projects: - - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-gate' - <<: *functest-kubernetes-jobs - - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-gate' - <<: *functest-kubernetes-jobs - - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-gate' + - name: 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-build' <<: *functest-kubernetes-jobs - multijob: name: build containers projects: - - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-gate' + - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-build' <<: *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: - - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-k8s_quick-run' - <<: *functest-kubernetes-jobs - - name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-k8s_smoke-run' - <<: *functest-kubernetes-jobs - - multijob: - name: opnfv/functest-kubernetes-smoke:{tag} - projects: - - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-xrally_kubernetes-run' - <<: *functest-kubernetes-jobs - - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-k8s_conformance-run' + - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-build' <<: *functest-kubernetes-jobs - - multijob: - name: opnfv/functest-kubernetes-security:{tag} - projects: - - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_hunter-run' - <<: *functest-kubernetes-jobs - - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_bench_master-run' - <<: *functest-kubernetes-jobs - - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-kube_bench_node-run' + - name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-build' <<: *functest-kubernetes-jobs - multijob: - name: opnfv/functest-kubernetes-benchmarking:{tag} + name: build opnfv/functest-kubernetes-smoke projects: - - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-xrally_kubernetes_full-run' + - name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-build' <<: *functest-kubernetes-jobs - multijob: - name: opnfv/functest-kubernetes-cnf:{tag} + name: build opnfv/functest-kubernetes-benchmarking projects: - - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-k8s_vims-run' - <<: *functest-kubernetes-jobs - - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-helm_vims-run' - <<: *functest-kubernetes-jobs - - name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-cnf_conformance-run' - <<: *functest-kubernetes-jobs + - name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-build' + <<: *functest-kubernetes-jobs + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com - project: - name: 'functest-kubernetes' + name: 'functest-kubernetes-docker' <<: *functest-kubernetes-params jobs: - - 'functest-kubernetes-{tag}-daily' + - 'functest-kubernetes-{tag}-docker' + +- builder: + name: functest-kubernetes-trivy + builders: + - shell: | + apt-get -o DPkg::Lock::Timeout=300 update && \ + DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 install curl -y + + curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b . + if [ "{repo}" = "_" ]; then + image={container}:{tag} + elif [ "{port}" = "None" ]; then + image={repo}/{container}:{tag} + else + image={repo}:{port}/{container}:{tag} + fi + ./trivy image --exit-code 1 $image + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-trivy' + triggers: + - timed: '@weekly' + parameters: + - functest-kubernetes-node: + node: '{node}' + builders: + - functest-kubernetes-trivy: + <<: *functest-kubernetes-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com - project: - name: 'functest-kubernetes-gate' + name: 'functest-kubernetes-opnfv-functest-kubernetes-core-trivy' <<: *functest-kubernetes-params + repo: 'opnfv' + container: 'functest-kubernetes-core' + port: jobs: - - 'functest-kubernetes-{tag}-check' - - 'functest-kubernetes-{tag}-gate' + - 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-trivy' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-trivy' + triggers: + - timed: '@weekly' + parameters: + - functest-kubernetes-node: + node: '{node}' + builders: + - functest-kubernetes-trivy: + <<: *functest-kubernetes-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-trivy' + <<: *functest-kubernetes-params + repo: 'opnfv' + container: 'functest-kubernetes-healthcheck' + port: + jobs: + - 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-trivy' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-trivy' + triggers: + - timed: '@weekly' + parameters: + - functest-kubernetes-node: + node: '{node}' + builders: + - functest-kubernetes-trivy: + <<: *functest-kubernetes-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-trivy' + <<: *functest-kubernetes-params + repo: 'opnfv' + container: 'functest-kubernetes-cnf' + port: + jobs: + - 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-trivy' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-trivy' + triggers: + - timed: '@weekly' + parameters: + - functest-kubernetes-node: + node: '{node}' + builders: + - functest-kubernetes-trivy: + <<: *functest-kubernetes-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-kubernetes-opnfv-functest-kubernetes-security-trivy' + <<: *functest-kubernetes-params + repo: 'opnfv' + container: 'functest-kubernetes-security' + port: + jobs: + - 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-trivy' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-trivy' + triggers: + - timed: '@weekly' + parameters: + - functest-kubernetes-node: + node: '{node}' + builders: + - functest-kubernetes-trivy: + <<: *functest-kubernetes-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-trivy' + <<: *functest-kubernetes-params + repo: 'opnfv' + container: 'functest-kubernetes-smoke' + port: + jobs: + - 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-trivy' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-trivy' + triggers: + - timed: '@weekly' + parameters: + - functest-kubernetes-node: + node: '{node}' + builders: + - functest-kubernetes-trivy: + <<: *functest-kubernetes-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-trivy' + <<: *functest-kubernetes-params + repo: 'opnfv' + container: 'functest-kubernetes-benchmarking' + port: + jobs: + - 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-trivy' + +- builder: + name: functest-kubernetes-grype + builders: + - shell: | + apt-get -o DPkg::Lock::Timeout=300 update && \ + DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 install curl -y + + curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b . + if [ "{repo}" = "_" ]; then + image={container}:{tag} + elif [ "{port}" = "None" ]; then + image={repo}/{container}:{tag} + else + image={repo}:{port}/{container}:{tag} + fi + ./grype -q $image + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-grype' + triggers: + - timed: '@weekly' + parameters: + - functest-kubernetes-node: + node: '{node}' + builders: + - functest-kubernetes-grype: + <<: *functest-kubernetes-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-kubernetes-opnfv-functest-kubernetes-core-grype' + <<: *functest-kubernetes-params + repo: 'opnfv' + container: 'functest-kubernetes-core' + port: + jobs: + - 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-grype' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-grype' + triggers: + - timed: '@weekly' + parameters: + - functest-kubernetes-node: + node: '{node}' + builders: + - functest-kubernetes-grype: + <<: *functest-kubernetes-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-grype' + <<: *functest-kubernetes-params + repo: 'opnfv' + container: 'functest-kubernetes-healthcheck' + port: + jobs: + - 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-grype' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-grype' + triggers: + - timed: '@weekly' + parameters: + - functest-kubernetes-node: + node: '{node}' + builders: + - functest-kubernetes-grype: + <<: *functest-kubernetes-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-grype' + <<: *functest-kubernetes-params + repo: 'opnfv' + container: 'functest-kubernetes-cnf' + port: + jobs: + - 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-grype' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-grype' + triggers: + - timed: '@weekly' + parameters: + - functest-kubernetes-node: + node: '{node}' + builders: + - functest-kubernetes-grype: + <<: *functest-kubernetes-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-kubernetes-opnfv-functest-kubernetes-security-grype' + <<: *functest-kubernetes-params + repo: 'opnfv' + container: 'functest-kubernetes-security' + port: + jobs: + - 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-grype' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-grype' + triggers: + - timed: '@weekly' + parameters: + - functest-kubernetes-node: + node: '{node}' + builders: + - functest-kubernetes-grype: + <<: *functest-kubernetes-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-grype' + <<: *functest-kubernetes-params + repo: 'opnfv' + container: 'functest-kubernetes-smoke' + port: + jobs: + - 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-grype' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-grype' + triggers: + - timed: '@weekly' + parameters: + - functest-kubernetes-node: + node: '{node}' + builders: + - functest-kubernetes-grype: + <<: *functest-kubernetes-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-grype' + <<: *functest-kubernetes-params + repo: 'opnfv' + container: 'functest-kubernetes-benchmarking' + port: + jobs: + - 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-grype' + +- builder: + name: functest-kubernetes-sbom + builders: + - shell: | + apt-get -o DPkg::Lock::Timeout=300 update && \ + DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 install curl -y + + mkdir -p ~/.docker + curl -sSfL https://raw.githubusercontent.com/docker/sbom-cli-plugin/main/install.sh | sh -s -- + if [ "{repo}" = "_" ]; then + image={container}:{tag} + elif [ "{port}" = "None" ]; then + image={repo}/{container}:{tag} + else + image={repo}:{port}/{container}:{tag} + fi + docker sbom $image + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-sbom' + triggers: + - timed: '@weekly' + parameters: + - functest-kubernetes-node: + node: '{node}' + builders: + - functest-kubernetes-sbom: + <<: *functest-kubernetes-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-kubernetes-opnfv-functest-kubernetes-core-sbom' + <<: *functest-kubernetes-params + repo: 'opnfv' + container: 'functest-kubernetes-core' + port: + jobs: + - 'functest-kubernetes-opnfv-functest-kubernetes-core-{tag}-sbom' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-sbom' + triggers: + - timed: '@weekly' + parameters: + - functest-kubernetes-node: + node: '{node}' + builders: + - functest-kubernetes-sbom: + <<: *functest-kubernetes-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-sbom' + <<: *functest-kubernetes-params + repo: 'opnfv' + container: 'functest-kubernetes-healthcheck' + port: + jobs: + - 'functest-kubernetes-opnfv-functest-kubernetes-healthcheck-{tag}-sbom' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-sbom' + triggers: + - timed: '@weekly' + parameters: + - functest-kubernetes-node: + node: '{node}' + builders: + - functest-kubernetes-sbom: + <<: *functest-kubernetes-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-kubernetes-opnfv-functest-kubernetes-cnf-sbom' + <<: *functest-kubernetes-params + repo: 'opnfv' + container: 'functest-kubernetes-cnf' + port: + jobs: + - 'functest-kubernetes-opnfv-functest-kubernetes-cnf-{tag}-sbom' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-sbom' + triggers: + - timed: '@weekly' + parameters: + - functest-kubernetes-node: + node: '{node}' + builders: + - functest-kubernetes-sbom: + <<: *functest-kubernetes-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-kubernetes-opnfv-functest-kubernetes-security-sbom' + <<: *functest-kubernetes-params + repo: 'opnfv' + container: 'functest-kubernetes-security' + port: + jobs: + - 'functest-kubernetes-opnfv-functest-kubernetes-security-{tag}-sbom' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sbom' + triggers: + - timed: '@weekly' + parameters: + - functest-kubernetes-node: + node: '{node}' + builders: + - functest-kubernetes-sbom: + <<: *functest-kubernetes-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-kubernetes-opnfv-functest-kubernetes-smoke-sbom' + <<: *functest-kubernetes-params + repo: 'opnfv' + container: 'functest-kubernetes-smoke' + port: + jobs: + - 'functest-kubernetes-opnfv-functest-kubernetes-smoke-{tag}-sbom' + +- job-template: + name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-sbom' + triggers: + - timed: '@weekly' + parameters: + - functest-kubernetes-node: + node: '{node}' + builders: + - functest-kubernetes-sbom: + <<: *functest-kubernetes-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-sbom' + <<: *functest-kubernetes-params + repo: 'opnfv' + container: 'functest-kubernetes-benchmarking' + port: + jobs: + - 'functest-kubernetes-opnfv-functest-kubernetes-benchmarking-{tag}-sbom' - view: - name: functest-kubernetes + name: functest-kubernetes-docker + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: ^functest-kubernetes-[a-z0-9.-]+-docker$ + +- view: + name: functest-kubernetes-trivy + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: (?!functest-kubernetes-pi)(?!functest-kubernetes-ng)^functest-kubernetes-[a-z-0-9.]+-trivy$ + +- view: + name: functest-kubernetes-grype view-type: list columns: - status @@ -845,10 +2183,10 @@ - last-success - last-failure - last-duration - regex: ^functest-kubernetes-(amd64-)*[a-z]+-daily$ + regex: (?!functest-kubernetes-pi)(?!functest-kubernetes-ng)^functest-kubernetes-[a-z-0-9.]+-grype$ - view: - name: functest-kubernetes-gate + name: functest-kubernetes-sbom view-type: list columns: - status @@ -857,4 +2195,4 @@ - last-success - last-failure - last-duration - regex: ^functest-kubernetes-(amd64-)*[a-z]+-gate$ + regex: (?!functest-kubernetes-pi)(?!functest-kubernetes-ng)^functest-kubernetes-[a-z-0-9.]+-sbom$ diff --git a/jjb/functest/functest-pi.yaml b/jjb/functest/functest-pi.yaml index 045a38ea6..1ac14f584 100644 --- a/jjb/functest/functest-pi.yaml +++ b/jjb/functest/functest-pi.yaml @@ -1,92 +1,382 @@ --- -- functest-pi-jobs: &functest-pi-jobs - name: 'functest-pi-jobs' - current-parameters: true +- functest-pi-containers: &functest-pi-containers + name: 'functest-pi-containers' + repo: '{repo}' + port: '{port}' + container: '{container}' + tag: '{tag}' - functest-pi-params: &functest-pi-params name: 'functest-pi-params' + tag: + - latest: + node: lf-pod4 + DASHBOARD_URL: http://172.30.12.83 + - zed: + node: lf-virtual9 + DASHBOARD_URL: http://172.30.13.94 + - yoga: + node: lf-pod4-3 + DASHBOARD_URL: http://172.30.12.88 + - xena: + node: laas-xena + DASHBOARD_URL: http://10.200.120.76 + - wallaby: + node: lf-virtual6 + DASHBOARD_URL: http://172.30.13.91 + - arm-latest: + node: lf-pod4 + DASHBOARD_URL: http://172.30.12.83 + - arm-zed: + node: lf-virtual9 + DASHBOARD_URL: http://172.30.13.94 + - arm-yoga: + node: lf-pod4-3 + DASHBOARD_URL: http://172.30.12.88 + - xena-latest: + node: laas-xena + DASHBOARD_URL: http://10.200.120.76 + - arm-wallaby: + node: lf-virtual6 + DASHBOARD_URL: http://172.30.13.91 + - arm64-latest: + node: lf-pod4 + DASHBOARD_URL: http://172.30.12.83 + - arm64-zed: + node: lf-virtual9 + DASHBOARD_URL: http://172.30.13.94 + - arm64-yoga: + node: lf-pod4-3 + DASHBOARD_URL: http://172.30.12.88 + - arm64-xena: + node: laas-xena + DASHBOARD_URL: http://10.200.120.76 + - arm64-wallaby: + node: lf-virtual6 + DASHBOARD_URL: http://172.30.13.91 + +- functest-pi-ollivier-functest-healthcheck-params: &functest-pi-ollivier-functest-healthcheck-params + name: 'functest-pi-ollivier-functest-healthcheck-params' repo: 'ollivier' + container: 'functest-healthcheck' port: tag: - latest: - branch: master - slave: lf-virtual9 - dashboard_url: http://172.30.13.94 - - leguer: - branch: stable/leguer - slave: lf-virtual9 - dashboard_url: http://172.30.13.94 - - kali: - branch: stable/kali - slave: lf-pod4-3 - dashboard_url: http://172.30.12.88 - - jerma: - branch: stable/jerma - slave: lf-pod4 - dashboard_url: http://172.30.12.83 - - iruya: - branch: stable/iruya - slave: lf-virtual4 - dashboard_url: http://172.30.13.89 - - hunter: - branch: stable/hunter - slave: lf-virtual6 - dashboard_url: http://172.30.13.91 + node: lf-pod4 + DASHBOARD_URL: http://172.30.12.83 + - zed: + node: lf-virtual9 + DASHBOARD_URL: http://172.30.13.94 + - yoga: + node: lf-pod4-3 + DASHBOARD_URL: http://172.30.12.88 + - xena: + node: laas-xena + DASHBOARD_URL: http://10.200.120.76 + - wallaby: + node: lf-virtual6 + DASHBOARD_URL: http://172.30.13.91 - arm-latest: - branch: master - slave: lf-virtual9 - dashboard_url: http://172.30.13.94 - - arm-leguer: - branch: stable/leguer - slave: lf-virtual9 - dashboard_url: http://172.30.13.94 - - arm-kali: - branch: stable/kali - slave: lf-pod4-3 - dashboard_url: http://172.30.12.88 - - arm-jerma: - branch: stable/jerma - slave: lf-pod4 - dashboard_url: http://172.30.12.83 - - arm-iruya: - branch: stable/iruya - slave: lf-virtual4 - dashboard_url: http://172.30.13.89 - - arm-hunter: - branch: stable/hunter - slave: lf-virtual6 - dashboard_url: http://172.30.13.91 + node: lf-pod4 + DASHBOARD_URL: http://172.30.12.83 + - arm-zed: + node: lf-virtual9 + DASHBOARD_URL: http://172.30.13.94 + - arm-yoga: + node: lf-pod4-3 + DASHBOARD_URL: http://172.30.12.88 + - xena-latest: + node: laas-xena + DASHBOARD_URL: http://10.200.120.76 + - arm-wallaby: + node: lf-virtual6 + DASHBOARD_URL: http://172.30.13.91 - arm64-latest: - branch: master - slave: lf-virtual9 - dashboard_url: http://172.30.13.94 - - arm64-leguer: - branch: stable/leguer - slave: lf-virtual9 - dashboard_url: http://172.30.13.94 - - arm64-kali: - branch: stable/kali - slave: lf-pod4-3 - dashboard_url: http://172.30.12.88 - - arm64-jerma: - branch: stable/jerma - slave: lf-pod4 - dashboard_url: http://172.30.12.83 - - arm64-iruya: - branch: stable/iruya - slave: lf-virtual4 - dashboard_url: http://172.30.13.89 - - arm64-hunter: - branch: stable/hunter - slave: lf-virtual6 - dashboard_url: http://172.30.13.91 + node: lf-pod4 + DASHBOARD_URL: http://172.30.12.83 + - arm64-zed: + node: lf-virtual9 + DASHBOARD_URL: http://172.30.13.94 + - arm64-yoga: + node: lf-pod4-3 + DASHBOARD_URL: http://172.30.12.88 + - arm64-xena: + node: laas-xena + DASHBOARD_URL: http://10.200.120.76 + - arm64-wallaby: + node: lf-virtual6 + DASHBOARD_URL: http://172.30.13.91 + +- functest-pi-ollivier-functest-smoke-params: &functest-pi-ollivier-functest-smoke-params + name: 'functest-pi-ollivier-functest-smoke-params' + repo: 'ollivier' + container: 'functest-smoke' + port: + tag: + - latest: + node: lf-pod4 + DASHBOARD_URL: http://172.30.12.83 + - zed: + node: lf-virtual9 + DASHBOARD_URL: http://172.30.13.94 + - yoga: + node: lf-pod4-3 + DASHBOARD_URL: http://172.30.12.88 + - xena: + node: laas-xena + DASHBOARD_URL: http://10.200.120.76 + - wallaby: + node: lf-virtual6 + DASHBOARD_URL: http://172.30.13.91 + - arm-latest: + node: lf-pod4 + DASHBOARD_URL: http://172.30.12.83 + - arm-zed: + node: lf-virtual9 + DASHBOARD_URL: http://172.30.13.94 + - arm-yoga: + node: lf-pod4-3 + DASHBOARD_URL: http://172.30.12.88 + - xena-latest: + node: laas-xena + DASHBOARD_URL: http://10.200.120.76 + - arm-wallaby: + node: lf-virtual6 + DASHBOARD_URL: http://172.30.13.91 + - arm64-latest: + node: lf-pod4 + DASHBOARD_URL: http://172.30.12.83 + - arm64-zed: + node: lf-virtual9 + DASHBOARD_URL: http://172.30.13.94 + - arm64-yoga: + node: lf-pod4-3 + DASHBOARD_URL: http://172.30.12.88 + - arm64-xena: + node: laas-xena + DASHBOARD_URL: http://10.200.120.76 + - arm64-wallaby: + node: lf-virtual6 + DASHBOARD_URL: http://172.30.13.91 + +- functest-pi-ollivier-functest-smoke-cntt-params: &functest-pi-ollivier-functest-smoke-cntt-params + name: 'functest-pi-ollivier-functest-smoke-cntt-params' + repo: 'ollivier' + container: 'functest-smoke-cntt' + port: + tag: + - latest: + node: lf-pod4 + DASHBOARD_URL: http://172.30.12.83 + - zed: + node: lf-virtual9 + DASHBOARD_URL: http://172.30.13.94 + - yoga: + node: lf-pod4-3 + DASHBOARD_URL: http://172.30.12.88 + - xena: + node: laas-xena + DASHBOARD_URL: http://10.200.120.76 + - wallaby: + node: lf-virtual6 + DASHBOARD_URL: http://172.30.13.91 + - arm-latest: + node: lf-pod4 + DASHBOARD_URL: http://172.30.12.83 + - arm-zed: + node: lf-virtual9 + DASHBOARD_URL: http://172.30.13.94 + - arm-yoga: + node: lf-pod4-3 + DASHBOARD_URL: http://172.30.12.88 + - xena-latest: + node: laas-xena + DASHBOARD_URL: http://10.200.120.76 + - arm-wallaby: + node: lf-virtual6 + DASHBOARD_URL: http://172.30.13.91 + - arm64-latest: + node: lf-pod4 + DASHBOARD_URL: http://172.30.12.83 + - arm64-zed: + node: lf-virtual9 + DASHBOARD_URL: http://172.30.13.94 + - arm64-yoga: + node: lf-pod4-3 + DASHBOARD_URL: http://172.30.12.88 + - arm64-xena: + node: laas-xena + DASHBOARD_URL: http://10.200.120.76 + - arm64-wallaby: + node: lf-virtual6 + DASHBOARD_URL: http://172.30.13.91 + +- functest-pi-ollivier-functest-benchmarking-params: &functest-pi-ollivier-functest-benchmarking-params + name: 'functest-pi-ollivier-functest-benchmarking-params' + repo: 'ollivier' + container: 'functest-benchmarking' + port: + tag: + - latest: + node: lf-pod4 + DASHBOARD_URL: http://172.30.12.83 + - zed: + node: lf-virtual9 + DASHBOARD_URL: http://172.30.13.94 + - yoga: + node: lf-pod4-3 + DASHBOARD_URL: http://172.30.12.88 + - xena: + node: laas-xena + DASHBOARD_URL: http://10.200.120.76 + - wallaby: + node: lf-virtual6 + DASHBOARD_URL: http://172.30.13.91 + - arm-latest: + node: lf-pod4 + DASHBOARD_URL: http://172.30.12.83 + - arm-zed: + node: lf-virtual9 + DASHBOARD_URL: http://172.30.13.94 + - arm-yoga: + node: lf-pod4-3 + DASHBOARD_URL: http://172.30.12.88 + - xena-latest: + node: laas-xena + DASHBOARD_URL: http://10.200.120.76 + - arm-wallaby: + node: lf-virtual6 + DASHBOARD_URL: http://172.30.13.91 + - arm64-latest: + node: lf-pod4 + DASHBOARD_URL: http://172.30.12.83 + - arm64-zed: + node: lf-virtual9 + DASHBOARD_URL: http://172.30.13.94 + - arm64-yoga: + node: lf-pod4-3 + DASHBOARD_URL: http://172.30.12.88 + - arm64-xena: + node: laas-xena + DASHBOARD_URL: http://10.200.120.76 + - arm64-wallaby: + node: lf-virtual6 + DASHBOARD_URL: http://172.30.13.91 + +- functest-pi-ollivier-functest-benchmarking-cntt-params: &functest-pi-ollivier-functest-benchmarking-cntt-params + name: 'functest-pi-ollivier-functest-benchmarking-cntt-params' + repo: 'ollivier' + container: 'functest-benchmarking-cntt' + port: + tag: + - latest: + node: lf-pod4 + DASHBOARD_URL: http://172.30.12.83 + - zed: + node: lf-virtual9 + DASHBOARD_URL: http://172.30.13.94 + - yoga: + node: lf-pod4-3 + DASHBOARD_URL: http://172.30.12.88 + - xena: + node: laas-xena + DASHBOARD_URL: http://10.200.120.76 + - wallaby: + node: lf-virtual6 + DASHBOARD_URL: http://172.30.13.91 + - arm-latest: + node: lf-pod4 + DASHBOARD_URL: http://172.30.12.83 + - arm-zed: + node: lf-virtual9 + DASHBOARD_URL: http://172.30.13.94 + - arm-yoga: + node: lf-pod4-3 + DASHBOARD_URL: http://172.30.12.88 + - xena-latest: + node: laas-xena + DASHBOARD_URL: http://10.200.120.76 + - arm-wallaby: + node: lf-virtual6 + DASHBOARD_URL: http://172.30.13.91 + - arm64-latest: + node: lf-pod4 + DASHBOARD_URL: http://172.30.12.83 + - arm64-zed: + node: lf-virtual9 + DASHBOARD_URL: http://172.30.13.94 + - arm64-yoga: + node: lf-pod4-3 + DASHBOARD_URL: http://172.30.12.88 + - arm64-xena: + node: laas-xena + DASHBOARD_URL: http://10.200.120.76 + - arm64-wallaby: + node: lf-virtual6 + DASHBOARD_URL: http://172.30.13.91 + +- functest-pi-ollivier-functest-vnf-params: &functest-pi-ollivier-functest-vnf-params + name: 'functest-pi-ollivier-functest-vnf-params' + repo: 'ollivier' + container: 'functest-vnf' + port: + tag: + - latest: + node: lf-pod4 + DASHBOARD_URL: http://172.30.12.83 + - zed: + node: lf-virtual9 + DASHBOARD_URL: http://172.30.13.94 + - yoga: + node: lf-pod4-3 + DASHBOARD_URL: http://172.30.12.88 + - xena: + node: laas-xena + DASHBOARD_URL: http://10.200.120.76 + - wallaby: + node: lf-virtual6 + DASHBOARD_URL: http://172.30.13.91 + - arm-latest: + node: lf-pod4 + DASHBOARD_URL: http://172.30.12.83 + - arm-zed: + node: lf-virtual9 + DASHBOARD_URL: http://172.30.13.94 + - arm-yoga: + node: lf-pod4-3 + DASHBOARD_URL: http://172.30.12.88 + - xena-latest: + node: laas-xena + DASHBOARD_URL: http://10.200.120.76 + - arm-wallaby: + node: lf-virtual6 + DASHBOARD_URL: http://172.30.13.91 + - arm64-latest: + node: lf-pod4 + DASHBOARD_URL: http://172.30.12.83 + - arm64-zed: + node: lf-virtual9 + DASHBOARD_URL: http://172.30.13.94 + - arm64-yoga: + node: lf-pod4-3 + DASHBOARD_URL: http://172.30.12.88 + - arm64-xena: + node: laas-xena + DASHBOARD_URL: http://10.200.120.76 + - arm64-wallaby: + node: lf-virtual6 + DASHBOARD_URL: http://172.30.13.91 + +- functest-pi-jobs: &functest-pi-jobs + name: 'functest-pi-jobs' + current-parameters: true - parameter: - name: functest-pi-slave + name: functest-pi-node parameters: - label: - name: slave - default: '{slave}' + name: node + default: '{node}' - parameter: name: functest-pi-build_tag @@ -95,30 +385,19 @@ name: build_tag - parameter: - name: functest-pi-branch - parameters: - - string: - name: branch - default: '{branch}' - -- parameter: - name: functest-pi-DEBUG - parameters: - - string: - name: DEBUG - default: 'true' -- parameter: name: functest-pi-EXTERNAL_NETWORK parameters: - string: name: EXTERNAL_NETWORK default: public + - parameter: name: functest-pi-VOLUME_DEVICE_NAME parameters: - string: name: VOLUME_DEVICE_NAME default: sdb + - parameter: name: functest-pi-IMAGE_PROPERTIES parameters: @@ -126,20 +405,17 @@ name: IMAGE_PROPERTIES default: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi -- functest-pi-containers: &functest-pi-containers - name: 'functest-pi-containers' - repo: '{repo}' - port: '{port}' - container: '{container}' - tag: '{tag}' - - functest-pi-run-containers: &functest-pi-run-containers name: 'functest-pi-run-containers' <<: *functest-pi-containers - test: '{test}' - dashboard_url: '{dashboard_url}' privileged: '{privileged}' + volumes: '{volumes}' + env: '{env}' network: '{network}' + uid: '{uid}' + gid: '{gid}' + published_ports: '{published_ports}' + DASHBOARD_URL: '{DASHBOARD_URL}' - builder: name: functest-pi-pull-containers @@ -160,7 +436,22 @@ builders: - shell: | set +x - [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true + volumes=; + if [ "{volumes}" != "None" ]; then + for i in $(echo {volumes} | tr -d '[]' |sed "s/, / /g" ); \ + do volumes="-v $i $volumes"; done + fi + env=; + if [ "{env}" != "None" ]; then + for i in $(eval echo {env} | tr -d '[]' |sed "s/, / /g" ); \ + do env="-e $i $env"; done + fi + published_ports=; + if [ "{published_ports}" != "None" ]; then + for i in $(echo {published_ports} | tr -d '[]' |sed "s/, / /g" ); \ + do published_ports="-p $i $published_ports"; done + fi + [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true if [ "{repo}" = "_" ]; then image={container}:{tag} elif [ "{port}" = "None" ]; then @@ -168,33 +459,25 @@ else image={repo}:{port}/{container}:{tag} fi - volumes="" - case "{tag}" in - arm-hunter) - volumes="-v /usr/bin/qemu-arm-static:/usr/bin/qemu-arm-static" ;; - arm64-hunter) - volumes="-v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static" ;; - esac + sudo mkdir -p $WORKSPACE/results + sudo chown {uid}:{gid} $WORKSPACE/results sudo docker run --rm \ --privileged={privileged} \ --network={network} \ + $volumes \ + $env \ + $published_ports \ -e S3_ENDPOINT_URL=https://storage.googleapis.com \ -e S3_DST_URL=s3://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ -e HTTP_DST_URL=http://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ + -v /home/opnfv/functest/.boto:/etc/boto.cfg \ -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \ - -e NODE_NAME=$slave \ + -e NODE_NAME=$node \ -e BUILD_TAG=$BUILD_TAG \ -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ - -e DEBUG=$DEBUG \ - -e EXTERNAL_NETWORK=$EXTERNAL_NETWORK \ - -e DASHBOARD_URL={dashboard_url} \ - -e VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME \ - -e IMAGE_PROPERTIES=$IMAGE_PROPERTIES \ - -v /home/opnfv/functest/.boto:/root/.boto \ - -v /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file \ - -v /home/opnfv/functest/images:/home/opnfv/functest/images \ - $volumes $image run_tests -t {test} -r -p + -e DASHBOARD_URL={DASHBOARD_URL} \ + $image run_tests -t {test} -p -r - builder: name: functest-pi-remove-images @@ -211,116 +494,192 @@ sudo docker rmi $image || true - job-template: - name: 'functest-pi-{repo}-{container}-{tag}-pull' + name: 'functest-pi-ollivier-functest-healthcheck-{tag}-pull' parameters: - - functest-pi-slave: - slave: '{slave}' + - functest-pi-node: + node: '{node}' builders: - functest-pi-pull-containers: <<: *functest-pi-containers - project: name: 'functest-pi-ollivier-functest-healthcheck-pull' - <<: *functest-pi-params - container: 'functest-healthcheck' + <<: *functest-pi-ollivier-functest-healthcheck-params jobs: - - 'functest-pi-{repo}-{container}-{tag}-pull' + - 'functest-pi-ollivier-functest-healthcheck-{tag}-pull' -- project: - name: 'functest-pi-ollivier-functest-smoke-pull' - <<: *functest-pi-params - container: 'functest-smoke' - jobs: - - 'functest-pi-{repo}-{container}-{tag}-pull' +- job-template: + name: 'functest-pi-ollivier-functest-healthcheck-{tag}-rmi' + parameters: + - functest-pi-node: + node: '{node}' + builders: + - functest-pi-remove-images: + <<: *functest-pi-containers - project: - name: 'functest-pi-ollivier-functest-smoke-cntt-pull' - <<: *functest-pi-params - container: 'functest-smoke-cntt' + name: 'functest-pi-ollivier-functest-healthcheck-rmi' + <<: *functest-pi-ollivier-functest-healthcheck-params jobs: - - 'functest-pi-{repo}-{container}-{tag}-pull' + - 'functest-pi-ollivier-functest-healthcheck-{tag}-rmi' + +- job-template: + name: 'functest-pi-ollivier-functest-smoke-{tag}-pull' + parameters: + - functest-pi-node: + node: '{node}' + builders: + - functest-pi-pull-containers: + <<: *functest-pi-containers - project: - name: 'functest-pi-ollivier-functest-benchmarking-pull' - <<: *functest-pi-params - container: 'functest-benchmarking' + name: 'functest-pi-ollivier-functest-smoke-pull' + <<: *functest-pi-ollivier-functest-smoke-params jobs: - - 'functest-pi-{repo}-{container}-{tag}-pull' + - 'functest-pi-ollivier-functest-smoke-{tag}-pull' + +- job-template: + name: 'functest-pi-ollivier-functest-smoke-{tag}-rmi' + parameters: + - functest-pi-node: + node: '{node}' + builders: + - functest-pi-remove-images: + <<: *functest-pi-containers - project: - name: 'functest-pi-ollivier-functest-benchmarking-cntt-pull' - <<: *functest-pi-params - container: 'functest-benchmarking-cntt' + name: 'functest-pi-ollivier-functest-smoke-rmi' + <<: *functest-pi-ollivier-functest-smoke-params jobs: - - 'functest-pi-{repo}-{container}-{tag}-pull' + - 'functest-pi-ollivier-functest-smoke-{tag}-rmi' + +- job-template: + name: 'functest-pi-ollivier-functest-smoke-cntt-{tag}-pull' + parameters: + - functest-pi-node: + node: '{node}' + builders: + - functest-pi-pull-containers: + <<: *functest-pi-containers - project: - name: 'functest-pi-ollivier-functest-vnf-pull' - <<: *functest-pi-params - container: 'functest-vnf' + name: 'functest-pi-ollivier-functest-smoke-cntt-pull' + <<: *functest-pi-ollivier-functest-smoke-cntt-params jobs: - - 'functest-pi-{repo}-{container}-{tag}-pull' + - 'functest-pi-ollivier-functest-smoke-cntt-{tag}-pull' - job-template: - name: 'functest-pi-{repo}-{container}-{tag}-rmi' + name: 'functest-pi-ollivier-functest-smoke-cntt-{tag}-rmi' parameters: - - functest-pi-slave: - slave: '{slave}' + - functest-pi-node: + node: '{node}' builders: - functest-pi-remove-images: <<: *functest-pi-containers - project: - name: 'functest-pi-ollivier-functest-healthcheck-rmi' - <<: *functest-pi-params - container: 'functest-healthcheck' + name: 'functest-pi-ollivier-functest-smoke-cntt-rmi' + <<: *functest-pi-ollivier-functest-smoke-cntt-params jobs: - - 'functest-pi-{repo}-{container}-{tag}-rmi' + - 'functest-pi-ollivier-functest-smoke-cntt-{tag}-rmi' + +- job-template: + name: 'functest-pi-ollivier-functest-benchmarking-{tag}-pull' + parameters: + - functest-pi-node: + node: '{node}' + builders: + - functest-pi-pull-containers: + <<: *functest-pi-containers - project: - name: 'functest-pi-ollivier-functest-smoke-rmi' - <<: *functest-pi-params - container: 'functest-smoke' + name: 'functest-pi-ollivier-functest-benchmarking-pull' + <<: *functest-pi-ollivier-functest-benchmarking-params jobs: - - 'functest-pi-{repo}-{container}-{tag}-rmi' + - 'functest-pi-ollivier-functest-benchmarking-{tag}-pull' + +- job-template: + name: 'functest-pi-ollivier-functest-benchmarking-{tag}-rmi' + parameters: + - functest-pi-node: + node: '{node}' + builders: + - functest-pi-remove-images: + <<: *functest-pi-containers - project: - name: 'functest-pi-ollivier-functest-smoke-cntt-rmi' - <<: *functest-pi-params - container: 'functest-smoke-cntt' + name: 'functest-pi-ollivier-functest-benchmarking-rmi' + <<: *functest-pi-ollivier-functest-benchmarking-params jobs: - - 'functest-pi-{repo}-{container}-{tag}-rmi' + - 'functest-pi-ollivier-functest-benchmarking-{tag}-rmi' + +- job-template: + name: 'functest-pi-ollivier-functest-benchmarking-cntt-{tag}-pull' + parameters: + - functest-pi-node: + node: '{node}' + builders: + - functest-pi-pull-containers: + <<: *functest-pi-containers - project: - name: 'functest-pi-ollivier-functest-benchmarking-rmi' - <<: *functest-pi-params - container: 'functest-benchmarking' + name: 'functest-pi-ollivier-functest-benchmarking-cntt-pull' + <<: *functest-pi-ollivier-functest-benchmarking-cntt-params jobs: - - 'functest-pi-{repo}-{container}-{tag}-rmi' + - 'functest-pi-ollivier-functest-benchmarking-cntt-{tag}-pull' + +- job-template: + name: 'functest-pi-ollivier-functest-benchmarking-cntt-{tag}-rmi' + parameters: + - functest-pi-node: + node: '{node}' + builders: + - functest-pi-remove-images: + <<: *functest-pi-containers - project: name: 'functest-pi-ollivier-functest-benchmarking-cntt-rmi' - <<: *functest-pi-params - container: 'functest-benchmarking-cntt' + <<: *functest-pi-ollivier-functest-benchmarking-cntt-params jobs: - - 'functest-pi-{repo}-{container}-{tag}-rmi' + - 'functest-pi-ollivier-functest-benchmarking-cntt-{tag}-rmi' + +- job-template: + name: 'functest-pi-ollivier-functest-vnf-{tag}-pull' + parameters: + - functest-pi-node: + node: '{node}' + builders: + - functest-pi-pull-containers: + <<: *functest-pi-containers + +- project: + name: 'functest-pi-ollivier-functest-vnf-pull' + <<: *functest-pi-ollivier-functest-vnf-params + jobs: + - 'functest-pi-ollivier-functest-vnf-{tag}-pull' + +- job-template: + name: 'functest-pi-ollivier-functest-vnf-{tag}-rmi' + parameters: + - functest-pi-node: + node: '{node}' + builders: + - functest-pi-remove-images: + <<: *functest-pi-containers - project: name: 'functest-pi-ollivier-functest-vnf-rmi' - <<: *functest-pi-params - container: 'functest-vnf' + <<: *functest-pi-ollivier-functest-vnf-params jobs: - - 'functest-pi-{repo}-{container}-{tag}-rmi' + - 'functest-pi-ollivier-functest-vnf-{tag}-rmi' - job-template: - name: 'functest-pi-{repo}-{container}-{tag}-{test}-run' + name: 'functest-pi-ollivier-functest-healthcheck-{tag}-{test}-run' parameters: - - functest-pi-slave: - slave: '{slave}' + - functest-pi-node: + node: '{node}' - functest-pi-build_tag: build_tag: '' - - functest-pi-DEBUG: - DEBUG: 'true' - functest-pi-EXTERNAL_NETWORK: EXTERNAL_NETWORK: public - functest-pi-VOLUME_DEVICE_NAME: @@ -330,10 +689,19 @@ builders: - functest-pi-run-containers: <<: *functest-pi-run-containers + test: '{test}' - project: name: 'functest-pi-ollivier-functest-healthcheck' - <<: *functest-pi-params + <<: *functest-pi-ollivier-functest-healthcheck-params + volumes: + - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file + - /home/opnfv/functest/images:/home/opnfv/functest/images + env: + - EXTERNAL_NETWORK=$EXTERNAL_NETWORK + - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME + - IMAGE_PROPERTIES=$IMAGE_PROPERTIES + published_ports: container: 'functest-healthcheck' test: - connection_check @@ -351,12 +719,40 @@ - tempest_horizon privileged: 'false' network: bridge + uid: 1000 + gid: 1000 jobs: - - 'functest-pi-{repo}-{container}-{tag}-{test}-run' + - 'functest-pi-ollivier-functest-healthcheck-{tag}-{test}-run' + +- job-template: + name: 'functest-pi-ollivier-functest-smoke-{tag}-{test}-run' + parameters: + - functest-pi-node: + node: '{node}' + - functest-pi-build_tag: + build_tag: '' + - functest-pi-EXTERNAL_NETWORK: + EXTERNAL_NETWORK: public + - functest-pi-VOLUME_DEVICE_NAME: + VOLUME_DEVICE_NAME: sdb + - functest-pi-IMAGE_PROPERTIES: + IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi + builders: + - functest-pi-run-containers: + <<: *functest-pi-run-containers + test: '{test}' - project: name: 'functest-pi-ollivier-functest-smoke' - <<: *functest-pi-params + <<: *functest-pi-ollivier-functest-smoke-params + volumes: + - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file + - /home/opnfv/functest/images:/home/opnfv/functest/images + env: + - EXTERNAL_NETWORK=$EXTERNAL_NETWORK + - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME + - IMAGE_PROPERTIES=$IMAGE_PROPERTIES + published_ports: container: 'functest-smoke' test: - tempest_neutron @@ -365,241 +761,54 @@ - tempest_heat - tempest_telemetry - rally_sanity - - refstack_defcore - refstack_compute - refstack_object - refstack_platform - tempest_full - tempest_scenario - tempest_slow - - patrole - patrole_admin - patrole_member - patrole_reader - - networking-bgpvpn - - networking-sfc - tempest_barbican - tempest_octavia - tempest_cyborg - exclude: - - tag: latest - test: refstack_defcore - - tag: latest - test: networking-bgpvpn - - tag: latest - test: networking-sfc - - tag: latest - test: patrole - - tag: leguer - test: refstack_defcore - - tag: leguer - test: networking-bgpvpn - - tag: leguer - test: networking-sfc - - tag: leguer - test: patrole - - tag: kali - test: refstack_defcore - - tag: kali - test: networking-bgpvpn - - tag: kali - test: networking-sfc - - tag: kali - test: patrole_admin - - tag: kali - test: patrole_member - - tag: kali - test: patrole_reader - - tag: jerma - test: refstack_defcore - - tag: jerma - test: networking-bgpvpn - - tag: jerma - test: networking-sfc - - tag: jerma - test: patrole_admin - - tag: jerma - test: patrole_member - - tag: jerma - test: patrole_reader - - tag: jerma - test: tempest_cyborg - - tag: iruya - test: refstack_defcore - - tag: iruya - test: patrole_admin - - tag: iruya - test: patrole_member - - tag: iruya - test: patrole_reader - - tag: iruya - test: tempest_cyborg - - tag: hunter - test: refstack_compute - - tag: hunter - test: refstack_object - - tag: hunter - test: refstack_platform - - tag: hunter - test: tempest_octavia - - tag: hunter - test: tempest_telemetry - - tag: hunter - test: patrole_admin - - tag: hunter - test: patrole_member - - tag: hunter - test: patrole_reader - - tag: hunter - test: tempest_cyborg - - tag: arm-latest - test: refstack_defcore - - tag: arm-latest - test: networking-bgpvpn - - tag: arm-latest - test: networking-sfc - - tag: arm-latest - test: patrole - - tag: arm-leguer - test: refstack_defcore - - tag: arm-leguer - test: networking-bgpvpn - - tag: arm-leguer - test: networking-sfc - - tag: arm-leguer - test: patrole - - tag: arm-kali - test: refstack_defcore - - tag: arm-kali - test: networking-bgpvpn - - tag: arm-kali - test: networking-sfc - - tag: arm-kali - test: patrole_admin - - tag: arm-kali - test: patrole_member - - tag: arm-kali - test: patrole_reader - - tag: arm-jerma - test: refstack_defcore - - tag: arm-jerma - test: networking-bgpvpn - - tag: arm-jerma - test: networking-sfc - - tag: arm-jerma - test: patrole_admin - - tag: arm-jerma - test: patrole_member - - tag: arm-jerma - test: patrole_reader - - tag: arm-jerma - test: tempest_cyborg - - tag: arm-iruya - test: refstack_defcore - - tag: arm-iruya - test: patrole_admin - - tag: arm-iruya - test: patrole_member - - tag: arm-iruya - test: patrole_reader - - tag: arm-iruya - test: tempest_cyborg - - tag: arm-hunter - test: refstack_compute - - tag: arm-hunter - test: refstack_object - - tag: arm-hunter - test: refstack_platform - - tag: arm-hunter - test: tempest_octavia - - tag: arm-hunter - test: tempest_telemetry - - tag: arm-hunter - test: patrole_admin - - tag: arm-hunter - test: patrole_member - - tag: arm-hunter - test: patrole_reader - - tag: arm-hunter - test: tempest_cyborg - - tag: arm64-latest - test: refstack_defcore - - tag: arm64-latest - test: networking-bgpvpn - - tag: arm64-latest - test: networking-sfc - - tag: arm64-latest - test: patrole - - tag: arm64-leguer - test: refstack_defcore - - tag: arm64-leguer - test: networking-bgpvpn - - tag: arm64-leguer - test: networking-sfc - - tag: arm64-leguer - test: patrole - - tag: arm64-kali - test: refstack_defcore - - tag: arm64-kali - test: networking-bgpvpn - - tag: arm64-kali - test: networking-sfc - - tag: arm64-kali - test: patrole_admin - - tag: arm64-kali - test: patrole_member - - tag: arm64-kali - test: patrole_reader - - tag: arm64-jerma - test: refstack_defcore - - tag: arm64-jerma - test: networking-bgpvpn - - tag: arm64-jerma - test: networking-sfc - - tag: arm64-jerma - test: patrole_admin - - tag: arm64-jerma - test: patrole_member - - tag: arm64-jerma - test: patrole_reader - - tag: arm64-jerma - test: tempest_cyborg - - tag: arm64-iruya - test: refstack_defcore - - tag: arm64-iruya - test: patrole_admin - - tag: arm64-iruya - test: patrole_member - - tag: arm64-iruya - test: patrole_reader - - tag: arm64-iruya - test: tempest_cyborg - - tag: arm64-hunter - test: refstack_compute - - tag: arm64-hunter - test: refstack_object - - tag: arm64-hunter - test: refstack_platform - - tag: arm64-hunter - test: tempest_octavia - - tag: arm64-hunter - test: tempest_telemetry - - tag: arm64-hunter - test: patrole_admin - - tag: arm64-hunter - test: patrole_member - - tag: arm64-hunter - test: patrole_reader - - tag: arm64-hunter - test: tempest_cyborg privileged: 'false' network: bridge + uid: 1000 + gid: 1000 jobs: - - 'functest-pi-{repo}-{container}-{tag}-{test}-run' + - 'functest-pi-ollivier-functest-smoke-{tag}-{test}-run' + +- job-template: + name: 'functest-pi-ollivier-functest-smoke-cntt-{tag}-{test}-run' + parameters: + - functest-pi-node: + node: '{node}' + - functest-pi-build_tag: + build_tag: '' + - functest-pi-EXTERNAL_NETWORK: + EXTERNAL_NETWORK: public + - functest-pi-VOLUME_DEVICE_NAME: + VOLUME_DEVICE_NAME: sdb + - functest-pi-IMAGE_PROPERTIES: + IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi + builders: + - functest-pi-run-containers: + <<: *functest-pi-run-containers + test: '{test}' - project: name: 'functest-pi-ollivier-functest-smoke-cntt' - <<: *functest-pi-params + <<: *functest-pi-ollivier-functest-smoke-cntt-params + volumes: + - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file + - /home/opnfv/functest/images:/home/opnfv/functest/images + env: + - EXTERNAL_NETWORK=$EXTERNAL_NETWORK + - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME + - IMAGE_PROPERTIES=$IMAGE_PROPERTIES + published_ports: container: 'functest-smoke-cntt' test: - tempest_neutron_cntt @@ -612,12 +821,40 @@ - tempest_slow_cntt privileged: 'false' network: bridge + uid: 1000 + gid: 1000 jobs: - - 'functest-pi-{repo}-{container}-{tag}-{test}-run' + - 'functest-pi-ollivier-functest-smoke-cntt-{tag}-{test}-run' + +- job-template: + name: 'functest-pi-ollivier-functest-benchmarking-{tag}-{test}-run' + parameters: + - functest-pi-node: + node: '{node}' + - functest-pi-build_tag: + build_tag: '' + - functest-pi-EXTERNAL_NETWORK: + EXTERNAL_NETWORK: public + - functest-pi-VOLUME_DEVICE_NAME: + VOLUME_DEVICE_NAME: sdb + - functest-pi-IMAGE_PROPERTIES: + IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi + builders: + - functest-pi-run-containers: + <<: *functest-pi-run-containers + test: '{test}' - project: name: 'functest-pi-ollivier-functest-benchmarking' - <<: *functest-pi-params + <<: *functest-pi-ollivier-functest-benchmarking-params + volumes: + - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file + - /home/opnfv/functest/images:/home/opnfv/functest/images + env: + - EXTERNAL_NETWORK=$EXTERNAL_NETWORK + - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME + - IMAGE_PROPERTIES=$IMAGE_PROPERTIES + published_ports: container: 'functest-benchmarking' test: - rally_full @@ -626,24 +863,80 @@ - shaker privileged: 'false' network: bridge + uid: 1000 + gid: 1000 jobs: - - 'functest-pi-{repo}-{container}-{tag}-{test}-run' + - 'functest-pi-ollivier-functest-benchmarking-{tag}-{test}-run' + +- job-template: + name: 'functest-pi-ollivier-functest-benchmarking-cntt-{tag}-{test}-run' + parameters: + - functest-pi-node: + node: '{node}' + - functest-pi-build_tag: + build_tag: '' + - functest-pi-EXTERNAL_NETWORK: + EXTERNAL_NETWORK: public + - functest-pi-VOLUME_DEVICE_NAME: + VOLUME_DEVICE_NAME: sdb + - functest-pi-IMAGE_PROPERTIES: + IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi + builders: + - functest-pi-run-containers: + <<: *functest-pi-run-containers + test: '{test}' - project: name: 'functest-pi-ollivier-functest-benchmarking-cntt' - <<: *functest-pi-params + <<: *functest-pi-ollivier-functest-benchmarking-cntt-params + volumes: + - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file + - /home/opnfv/functest/images:/home/opnfv/functest/images + env: + - EXTERNAL_NETWORK=$EXTERNAL_NETWORK + - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME + - IMAGE_PROPERTIES=$IMAGE_PROPERTIES + published_ports: container: 'functest-benchmarking-cntt' test: - rally_full_cntt - rally_jobs_cntt privileged: 'false' network: bridge + uid: 1000 + gid: 1000 jobs: - - 'functest-pi-{repo}-{container}-{tag}-{test}-run' + - 'functest-pi-ollivier-functest-benchmarking-cntt-{tag}-{test}-run' + +- job-template: + name: 'functest-pi-ollivier-functest-vnf-{tag}-{test}-run' + parameters: + - functest-pi-node: + node: '{node}' + - functest-pi-build_tag: + build_tag: '' + - functest-pi-EXTERNAL_NETWORK: + EXTERNAL_NETWORK: public + - functest-pi-VOLUME_DEVICE_NAME: + VOLUME_DEVICE_NAME: sdb + - functest-pi-IMAGE_PROPERTIES: + IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi + builders: + - functest-pi-run-containers: + <<: *functest-pi-run-containers + test: '{test}' - project: name: 'functest-pi-ollivier-functest-vnf' - <<: *functest-pi-params + <<: *functest-pi-ollivier-functest-vnf-params + volumes: + - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file + - /home/opnfv/functest/images:/home/opnfv/functest/images + env: + - EXTERNAL_NETWORK=$EXTERNAL_NETWORK + - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME + - IMAGE_PROPERTIES=$IMAGE_PROPERTIES + published_ports: container: 'functest-vnf' test: - cloudify @@ -653,16 +946,32 @@ - juju_epc privileged: 'false' network: bridge + uid: 1000 + gid: 1000 jobs: - - 'functest-pi-{repo}-{container}-{tag}-{test}-run' - + - 'functest-pi-ollivier-functest-vnf-{tag}-{test}-run' - builder: name: functest-pi-zip builders: - shell: | set +x - [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true + volumes=; + if [ "{volumes}" != "None" ]; then + for i in $(echo {volumes} | tr -d '[]' |sed "s/, / /g" ); \ + do volumes="-v $i $volumes"; done + fi + env=; + if [ "{env}" != "None" ]; then + for i in $(eval echo {env} | tr -d '[]' |sed "s/, / /g" ); \ + do env="-e $i $env"; done + fi + published_ports=; + if [ "{published_ports}" != "None" ]; then + for i in $(echo {published_ports} | tr -d '[]' |sed "s/, / /g" ); \ + do published_ports="-p $i $published_ports"; done + fi + [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true if [ "{repo}" = "_" ]; then image={container}:{tag} elif [ "{port}" = "None" ]; then @@ -670,39 +979,33 @@ else image={repo}:{port}/{container}:{tag} fi - volumes="" - case "{tag}" in - arm-hunter) - volumes="-v /usr/bin/qemu-arm-static:/usr/bin/qemu-arm-static" ;; - arm64-hunter) - volumes="-v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static" ;; - esac + sudo mkdir -p $WORKSPACE/results + sudo chown {uid}:{gid} $WORKSPACE/results sudo docker run --rm \ + --privileged={privileged} \ + --network={network} \ + $volumes \ + $env \ + $published_ports \ -e S3_ENDPOINT_URL=https://storage.googleapis.com \ -e S3_DST_URL=s3://artifacts.opnfv.org/functest \ -e HTTP_DST_URL=http://artifacts.opnfv.org/functest \ + -v /home/opnfv/functest/.boto:/etc/boto.cfg \ -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \ + -e NODE_NAME=$node \ -e BUILD_TAG=$BUILD_TAG \ -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ - -e DEBUG=$DEBUG \ - -e EXTERNAL_NETWORK=$EXTERNAL_NETWORK \ - -e VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME \ - -e IMAGE_PROPERTIES=$IMAGE_PROPERTIES \ - -v /home/opnfv/functest/.boto:/root/.boto \ - -v /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file \ - -v /home/opnfv/functest/images:/home/opnfv/functest/images \ - $volumes $image zip_campaign + -e DASHBOARD_URL={DASHBOARD_URL} \ + $image zip_campaign - job-template: name: 'functest-pi-{tag}-zip' parameters: - - functest-pi-slave: - slave: '{slave}' + - functest-pi-node: + node: '{node}' - functest-pi-build_tag: build_tag: '' - - functest-pi-DEBUG: - DEBUG: 'true' - functest-pi-EXTERNAL_NETWORK: EXTERNAL_NETWORK: public - functest-pi-VOLUME_DEVICE_NAME: @@ -711,12 +1014,24 @@ IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi builders: - functest-pi-zip: - <<: *functest-pi-containers + <<: *functest-pi-run-containers - project: - name: 'functest-pi-{tag}-zip' - <<: *functest-pi-params + name: 'functest-pi-zip' + <<: *functest-pi-ollivier-functest-healthcheck-params + volumes: + - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file + - /home/opnfv/functest/images:/home/opnfv/functest/images + env: + - EXTERNAL_NETWORK=$EXTERNAL_NETWORK + - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME + - IMAGE_PROPERTIES=$IMAGE_PROPERTIES + published_ports: container: 'functest-healthcheck' + privileged: 'false' + network: bridge + uid: 1000 + gid: 1000 jobs: - 'functest-pi-{tag}-zip' @@ -726,24 +1041,24 @@ triggers: - timed: '@weekly' parameters: - - functest-pi-slave: - slave: '{slave}' + - functest-pi-node: + node: '{node}' - functest-pi-build_tag: build_tag: '' - - functest-pi-DEBUG: - DEBUG: 'true' - functest-pi-EXTERNAL_NETWORK: EXTERNAL_NETWORK: public - functest-pi-VOLUME_DEVICE_NAME: VOLUME_DEVICE_NAME: sdb - functest-pi-IMAGE_PROPERTIES: IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi + # PyYAML and yamllint differ here + # see https://github.com/yaml/pyyaml/issues/234 + # yamllint disable rule:indentation properties: - build-blocker: - use-build-blocker: true - blocking-level: 'NODE' blocking-jobs: - - '^functest(-pi)?(-ovn)?-(arm.*-|amd64-)*[a-z]+-(daily|gate|check)$' + - ^functest-(pi-)*{tag}-(daily|docker|review)$ + # yamllint enable rule:indentation builders: - multijob: name: remove former images @@ -819,8 +1134,6 @@ <<: *functest-pi-jobs - name: 'functest-pi-ollivier-functest-smoke-{tag}-rally_sanity-run' <<: *functest-pi-jobs - - name: 'functest-pi-ollivier-functest-smoke-{tag}-refstack_defcore-run' - <<: *functest-pi-jobs - name: 'functest-pi-ollivier-functest-smoke-{tag}-refstack_compute-run' <<: *functest-pi-jobs - name: 'functest-pi-ollivier-functest-smoke-{tag}-refstack_object-run' @@ -833,18 +1146,12 @@ <<: *functest-pi-jobs - name: 'functest-pi-ollivier-functest-smoke-{tag}-tempest_slow-run' <<: *functest-pi-jobs - - name: 'functest-pi-ollivier-functest-smoke-{tag}-patrole-run' - <<: *functest-pi-jobs - name: 'functest-pi-ollivier-functest-smoke-{tag}-patrole_admin-run' <<: *functest-pi-jobs - name: 'functest-pi-ollivier-functest-smoke-{tag}-patrole_member-run' <<: *functest-pi-jobs - name: 'functest-pi-ollivier-functest-smoke-{tag}-patrole_reader-run' <<: *functest-pi-jobs - - name: 'functest-pi-ollivier-functest-smoke-{tag}-networking-bgpvpn-run' - <<: *functest-pi-jobs - - name: 'functest-pi-ollivier-functest-smoke-{tag}-networking-sfc-run' - <<: *functest-pi-jobs - name: 'functest-pi-ollivier-functest-smoke-{tag}-tempest_barbican-run' <<: *functest-pi-jobs - name: 'functest-pi-ollivier-functest-smoke-{tag}-tempest_octavia-run' @@ -906,9 +1213,15 @@ projects: - name: 'functest-pi-{tag}-zip' <<: *functest-pi-jobs + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com - project: - name: 'functest-pi' + name: 'functest-pi-daily' <<: *functest-pi-params jobs: - 'functest-pi-{tag}-daily' @@ -923,4 +1236,4 @@ - last-success - last-failure - last-duration - regex: ^functest-pi(-ovn)?-(arm.*-|amd64-)*[a-z]+-daily$ + regex: ^functest-pi-[a-z-0-9.]+-daily$ diff --git a/jjb/functest/functest-project-jobs.yaml b/jjb/functest/functest-project-jobs.yaml deleted file mode 100644 index 438fb4d81..000000000 --- a/jjb/functest/functest-project-jobs.yaml +++ /dev/null @@ -1,86 +0,0 @@ ---- -- functest-project-params: &functest-project-params - name: 'functest-project-params' - tag: - - latest: - branch: master - slave: lf-virtual1 - - leguer: - branch: stable/leguer - slave: lf-virtual1 - - kali: - branch: stable/kali - slave: lf-virtual1 - - jerma: - branch: stable/jerma - slave: lf-virtual1 - - iruya: - branch: stable/iruya - slave: lf-virtual1 - - hunter: - branch: stable/hunter - slave: lf-virtual1 - -- builder: - name: functest-run-tox - builders: - - shell: tox - -- trigger: - name: functest-project-patchset-created - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: 'functest' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - skip-vote: - successful: false - failed: false - unstable: false - notbuilt: false - -- parameter: - name: functest-project-slave - parameters: - - label: - name: slave - default: '{slave}' - -- scm: - name: functest-project-scm - scm: - - git: - url: https://gerrit.opnfv.org/gerrit/functest - refspec: '+refs/changes/*:refs/changes/*' - branches: - - '{ref}' - -- job-template: - name: 'functest-run-tox-{tag}' - triggers: - - functest-project-patchset-created: - branch: '{branch}' - scm: - - functest-project-scm: - ref: $GERRIT_REFSPEC - parameters: - - functest-project-slave: - slave: '{slave}' - builders: - - functest-run-tox - -- project: - name: 'functest-run-tox' - <<: *functest-project-params - jobs: - - 'functest-run-tox-{tag}' diff --git a/jjb/functest/functest.ovn.yaml b/jjb/functest/functest.ovn.yaml deleted file mode 100644 index 3bd858527..000000000 --- a/jjb/functest/functest.ovn.yaml +++ /dev/null @@ -1,1243 +0,0 @@ ---- -- functest-ovn-jobs: &functest-ovn-jobs - name: 'functest-ovn-jobs' - current-parameters: true - -- functest-ovn-params: &functest-ovn-params - name: 'functest-ovn-params' - repo: 'opnfv' - port: - tag: - - latest: - branch: master - slave: lf-pod4-2 - dashboard_url: http://172.30.12.85 - -- parameter: - name: functest-ovn-slave - parameters: - - label: - name: slave - default: '{slave}' - -- parameter: - name: functest-ovn-build_tag - parameters: - - random-string: - name: build_tag - -- parameter: - name: functest-ovn-branch - parameters: - - string: - name: branch - default: '{branch}' - -- parameter: - name: functest-ovn-DEBUG - parameters: - - string: - name: DEBUG - default: 'true' - -- parameter: - name: functest-ovn-EXTERNAL_NETWORK - parameters: - - string: - name: EXTERNAL_NETWORK - default: public - -- functest-ovn-containers: &functest-ovn-containers - name: 'functest-ovn-containers' - repo: '{repo}' - port: '{port}' - container: '{container}' - tag: '{tag}' - -- functest-ovn-run-containers: &functest-ovn-run-containers - name: 'functest-ovn-run-containers' - <<: *functest-ovn-containers - test: '{test}' - dashboard_url: '{dashboard_url}' - -- functest-ovn-build-containers: &functest-ovn-build-containers - name: 'functest-ovn-build-containers' - <<: *functest-ovn-containers - ref_arg: '{ref_arg}' - path: '{path}' - -- builder: - name: functest-ovn-pull-containers - builders: - - shell: | - set +x - if [ "{repo}" = "_" ]; then - image={container}:{tag} - elif [ "{port}" = "None" ]; then - image={repo}/{container}:{tag} - else - image={repo}:{port}/{container}:{tag} - fi - sudo docker pull $image - -- builder: - name: functest-ovn-build-containers - builders: - - shell: | - set +x - if [ "{repo}" = "_" ]; then - image={container}:{tag} - elif [ "{port}" = "None" ]; then - image={repo}/{container}:{tag} - else - image={repo}:{port}/{container}:{tag} - fi - if [ "{ref_arg}" = "None" ]; then - build_arg="" - else - build_arg="--build-arg {ref_arg}={ref}" - fi - cd {path} - sudo docker build $build_arg \ - --pull=false --no-cache --force-rm=true \ - -t $image . - -- builder: - name: functest-ovn-run-containers - builders: - - shell: | - set +x - [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true - if [ "{repo}" = "_" ]; then - image={container}:{tag} - elif [ "{port}" = "None" ]; then - image={repo}/{container}:{tag} - else - image={repo}:{port}/{container}:{tag} - fi - if [ "{tag}" = "latest" ]; then - py=3.8 - elif [ "{tag}" = "kali" ]; then - py=3.8 - elif [ "{tag}" = "jerma" ]; then - py=3.7 - elif [ "{tag}" = "iruya" ]; then - py=3.6 - else - py=2.7 - fi - sudo docker run --rm \ - -e S3_ENDPOINT_URL=https://storage.googleapis.com \ - -e S3_DST_URL=s3://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ - -e HTTP_DST_URL=http://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ - -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ - -e NODE_NAME=$slave \ - -e BUILD_TAG=$BUILD_TAG \ - -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ - -e DEBUG=$DEBUG \ - -e DEPLOY_SCENARIO=os-ovn-nofeature-noha \ - -e EXTERNAL_NETWORK=$EXTERNAL_NETWORK \ - -e DASHBOARD_URL={dashboard_url} \ - -e VOLUME_DEVICE_NAME=sdb \ - -e IMAGE_PROPERTIES=hw_scsi_model:virtio-scsi,hw_disk_bus:scsi \ - -v /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file \ - -v /home/opnfv/functest/images:/home/opnfv/functest/images \ - -v /home/opnfv/functest/tempest_conf.yaml:/src/functest/\ - functest/opnfv_tests/openstack/tempest/custom_tests/\ - tempest_conf.yaml \ - -v /home/opnfv/functest/.boto:/root/.boto \ - $image run_tests -t {test} -r -p - -- builder: - name: functest-ovn-remove-images - builders: - - shell: | - set +x - if [ "{repo}" = "_" ]; then - image={container}:{tag} - elif [ "{port}" = "None" ]; then - image={repo}/{container}:{tag} - else - image={repo}:{port}/{container}:{tag} - fi - sudo docker rmi $image || true - -- scm: - name: functest-ovn-scm - scm: - - git: - url: https://gerrit.opnfv.org/gerrit/functest - refspec: '+refs/changes/*:refs/changes/*' - branches: - - '{ref}' - -- job-template: - name: 'functest-ovn-{repo}-{container}-{tag}-pull' - parameters: - - functest-ovn-slave: - slave: '{slave}' - builders: - - functest-ovn-pull-containers: - <<: *functest-ovn-containers - -- project: - name: 'functest-ovn-opnfv-functest-healthcheck-pull' - <<: *functest-ovn-params - container: 'functest-healthcheck' - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-pull' - -- project: - name: 'functest-ovn-opnfv-functest-smoke-pull' - <<: *functest-ovn-params - container: 'functest-smoke' - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-pull' - -- project: - name: 'functest-ovn-opnfv-functest-smoke-cntt-pull' - <<: *functest-ovn-params - container: 'functest-smoke-cntt' - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-pull' - -- project: - name: 'functest-ovn-opnfv-functest-benchmarking-pull' - <<: *functest-ovn-params - container: 'functest-benchmarking' - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-pull' - -- project: - name: 'functest-ovn-opnfv-functest-benchmarking-cntt-pull' - <<: *functest-ovn-params - container: 'functest-benchmarking-cntt' - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-pull' - -- project: - name: 'functest-ovn-opnfv-functest-vnf-pull' - <<: *functest-ovn-params - container: 'functest-vnf' - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-pull' - -- job-template: - name: 'functest-ovn-{repo}-{container}-{tag}-rmi' - parameters: - - functest-ovn-slave: - slave: '{slave}' - builders: - - functest-ovn-remove-images: - <<: *functest-ovn-containers - -- project: - name: 'functest-ovn-opnfv-functest-healthcheck-rmi' - <<: *functest-ovn-params - container: 'functest-healthcheck' - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-rmi' - -- project: - name: 'functest-ovn-opnfv-functest-smoke-rmi' - <<: *functest-ovn-params - container: 'functest-smoke' - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-rmi' - -- project: - name: 'functest-ovn-opnfv-functest-smoke-cntt-rmi' - <<: *functest-ovn-params - container: 'functest-smoke-cntt' - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-rmi' - -- project: - name: 'functest-ovn-opnfv-functest-benchmarking-rmi' - <<: *functest-ovn-params - container: 'functest-benchmarking' - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-rmi' - -- project: - name: 'functest-ovn-opnfv-functest-benchmarking-cntt-rmi' - <<: *functest-ovn-params - container: 'functest-benchmarking-cntt' - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-rmi' - -- project: - name: 'functest-ovn-opnfv-functest-vnf-rmi' - <<: *functest-ovn-params - container: 'functest-vnf' - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-rmi' - -- job-template: - name: 'functest-ovn-{repo}-{container}-{tag}-{test}-run' - parameters: - - functest-ovn-slave: - slave: '{slave}' - - functest-ovn-build_tag: - build_tag: '' - - functest-ovn-DEBUG: - DEBUG: 'true' - - functest-ovn-EXTERNAL_NETWORK: - EXTERNAL_NETWORK: public - builders: - - functest-ovn-run-containers: - <<: *functest-ovn-run-containers - -- project: - name: 'functest-ovn-opnfv-functest-healthcheck' - <<: *functest-ovn-params - container: 'functest-healthcheck' - test: - - connection_check - - tenantnetwork1 - - tenantnetwork2 - - vmready1 - - vmready2 - - singlevm1 - - singlevm2 - - vping_ssh - - vping_userdata - - cinder_test - - odl - - tempest_smoke - - tempest_horizon - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-{test}-run' - -- project: - name: 'functest-ovn-opnfv-functest-smoke' - <<: *functest-ovn-params - container: 'functest-smoke' - test: - - tempest_neutron - - tempest_cinder - - tempest_keystone - - tempest_heat - - tempest_telemetry - - rally_sanity - - refstack_defcore - - refstack_compute - - refstack_object - - refstack_platform - - tempest_full - - tempest_scenario - - tempest_slow - - patrole - - patrole_admin - - patrole_member - - patrole_reader - - networking-bgpvpn - - networking-sfc - - tempest_barbican - - tempest_octavia - - tempest_cyborg - exclude: - - tag: latest - test: refstack_defcore - - tag: latest - test: networking-bgpvpn - - tag: latest - test: networking-sfc - - tag: latest - test: patrole - - tag: kali - test: refstack_defcore - - tag: kali - test: networking-bgpvpn - - tag: kali - test: networking-sfc - - tag: kali - test: patrole_admin - - tag: kali - test: patrole_member - - tag: kali - test: patrole_reader - - tag: jerma - test: refstack_defcore - - tag: jerma - test: networking-bgpvpn - - tag: jerma - test: networking-sfc - - tag: jerma - test: patrole_admin - - tag: jerma - test: patrole_member - - tag: jerma - test: patrole_reader - - tag: jerma - test: tempest_cyborg - - tag: iruya - test: refstack_defcore - - tag: iruya - test: patrole_admin - - tag: iruya - test: patrole_member - - tag: iruya - test: patrole_reader - - tag: iruya - test: tempest_cyborg - - tag: hunter - test: refstack_compute - - tag: hunter - test: refstack_object - - tag: hunter - test: refstack_platform - - tag: hunter - test: tempest_octavia - - tag: hunter - test: tempest_telemetry - - tag: hunter - test: patrole_admin - - tag: hunter - test: patrole_member - - tag: hunter - test: patrole_reader - - tag: hunter - test: tempest_cyborg - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-{test}-run' - -- project: - name: 'functest-ovn-opnfv-functest-smoke-cntt' - <<: *functest-ovn-params - container: 'functest-smoke-cntt' - test: - - tempest_neutron_cntt - - tempest_cinder_cntt - - tempest_keystone_cntt - - tempest_heat_cntt - - rally_sanity_cntt - - tempest_full_cntt - - tempest_scenario_cntt - - tempest_slow_cntt - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-{test}-run' - -- project: - name: 'functest-ovn-opnfv-functest-benchmarking' - <<: *functest-ovn-params - container: 'functest-benchmarking' - test: - - rally_full - - rally_jobs - - vmtp - - shaker - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-{test}-run' - -- project: - name: 'functest-ovn-opnfv-functest-benchmarking-cntt' - <<: *functest-ovn-params - container: 'functest-benchmarking-cntt' - test: - - rally_full_cntt - - rally_jobs_cntt - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-{test}-run' - -- project: - name: 'functest-ovn-opnfv-functest-vnf' - <<: *functest-ovn-params - container: 'functest-vnf' - test: - - cloudify - - cloudify_ims - - heat_ims - - vyos_vrouter - - juju_epc - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-{test}-run' - -- builder: - name: functest-ovn-zip - builders: - - shell: | - set +x - [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true - if [ "{repo}" = "_" ]; then - image={container}:{tag} - elif [ "{port}" = "None" ]; then - image={repo}/{container}:{tag} - else - image={repo}:{port}/{container}:{tag} - fi - sudo docker run --rm \ - -e S3_ENDPOINT_URL=https://storage.googleapis.com \ - -e S3_DST_URL=s3://artifacts.opnfv.org/functest \ - -e HTTP_DST_URL=http://artifacts.opnfv.org/functest \ - -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ - -e BUILD_TAG=$BUILD_TAG \ - -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ - -v /home/opnfv/functest/.boto:/root/.boto \ - $image zip_campaign - -- job-template: - name: 'functest-ovn-{tag}-zip' - parameters: - - functest-ovn-build_tag: - build_tag: '' - builders: - - functest-ovn-zip: - <<: *functest-ovn-containers - -- project: - name: 'functest-ovn-{tag}-zip' - <<: *functest-ovn-params - container: 'functest-healthcheck' - jobs: - - 'functest-ovn-{tag}-zip' - -- job-template: - name: 'functest-ovn-{tag}-daily' - project-type: multijob - triggers: - - timed: '@daily' - parameters: - - functest-ovn-slave: - slave: '{slave}' - - functest-ovn-build_tag: - build_tag: '' - - functest-ovn-DEBUG: - DEBUG: 'true' - - functest-ovn-EXTERNAL_NETWORK: - EXTERNAL_NETWORK: public - properties: - - build-blocker: - use-build-blocker: true - blocking-level: 'NODE' - blocking-jobs: - - '^functest-ovn-{tag}-(daily|check|gate)$' - builders: - - multijob: - name: remove former images - projects: - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-rmi' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-rmi' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-rmi' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-rmi' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-cntt-{tag}-rmi' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-rmi' - <<: *functest-ovn-jobs - - multijob: - name: pull containers - projects: - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-pull' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-pull' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-pull' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-pull' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-cntt-{tag}-pull' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-pull' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-healthcheck:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-connection_check-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-vmready1-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-vmready2-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-singlevm1-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-singlevm2-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-vping_ssh-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-vping_userdata-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-cinder_test-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-odl-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-tempest_smoke-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-tempest_horizon-run' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-smoke:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_neutron-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_cinder-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_keystone-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_heat-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_telemetry-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-rally_sanity-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-refstack_defcore-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-refstack_compute-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-refstack_object-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-refstack_platform-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_full-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_scenario-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_slow-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-patrole-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-patrole_admin-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-patrole_member-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-patrole_reader-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-networking-bgpvpn-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-networking-sfc-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_barbican-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_octavia-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_cyborg-run' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-smoke-cntt:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-benchmarking:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-rally_full-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-rally_jobs-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-vmtp-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-shaker-run' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-benchmarking-cntt:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-vnf:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-cloudify-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-cloudify_ims-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-heat_ims-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-vyos_vrouter-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-juju_epc-run' - <<: *functest-ovn-jobs - - multijob: - name: dump all campaign data - projects: - - name: 'functest-ovn-{tag}-zip' - <<: *functest-ovn-jobs - -- job-template: - name: 'functest-ovn-{repo}-{container}-{tag}-gate' - parameters: - - functest-ovn-slave: - slave: '{slave}' - scm: - - functest-ovn-scm: - ref: $GERRIT_REFSPEC - builders: - - functest-ovn-build-containers: - <<: *functest-ovn-build-containers - ref: $GERRIT_REFSPEC - -- job-template: - name: 'functest-ovn-{repo}-{container}-{tag}-check' - parameters: - - functest-ovn-slave: - slave: '{slave}' - - functest-ovn-branch: - branch: '{branch}' - scm: - - functest-ovn-scm: - ref: $branch - builders: - - functest-ovn-build-containers: - <<: *functest-ovn-build-containers - ref: $branch - -- project: - name: 'functest-ovn-_-alpine-3.12-rmi' - repo: _ - port: - container: alpine - tag: '3.12' - slave: master - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-rmi' - -- project: - name: 'functest-ovn-_-alpine-3.12-pull' - repo: _ - port: - container: alpine - tag: '3.12' - slave: master - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-pull' - -- project: - name: functest-ovn-opnfv-functest-core-{tag}-build - <<: *functest-ovn-params - container: functest-core - ref_arg: BRANCH - path: docker/core - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-gate' - - 'functest-ovn-{repo}-{container}-{tag}-check' - -- project: - name: functest-ovn-opnfv-functest-tempest-{tag}-build - <<: *functest-ovn-params - container: functest-tempest - ref_arg: BRANCH - path: docker/tempest - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-gate' - - 'functest-ovn-{repo}-{container}-{tag}-check' - exclude: - - tag: latest - - tag: kali - - tag: jerma - -- project: - name: functest-ovn-opnfv-functest-healthcheck-{tag}-build - <<: *functest-ovn-params - container: functest-healthcheck - ref_arg: BRANCH - path: docker/healthcheck - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-gate' - - 'functest-ovn-{repo}-{container}-{tag}-check' - -- project: - name: functest-ovn-opnfv-functest-smoke-{tag}-build - <<: *functest-ovn-params - container: functest-smoke - ref_arg: BRANCH - path: docker/smoke - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-gate' - - 'functest-ovn-{repo}-{container}-{tag}-check' - -- project: - name: functest-ovn-opnfv-functest-smoke-cntt-{tag}-build - <<: *functest-ovn-params - container: functest-smoke-cntt - ref_arg: BRANCH - path: docker/smoke-cntt - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-gate' - - 'functest-ovn-{repo}-{container}-{tag}-check' - -- project: - name: functest-ovn-opnfv-functest-benchmarking-{tag}-build - <<: *functest-ovn-params - container: functest-benchmarking - ref_arg: BRANCH - path: docker/benchmarking - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-gate' - - 'functest-ovn-{repo}-{container}-{tag}-check' - -- project: - name: functest-ovn-opnfv-functest-benchmarking-cntt-{tag}-build - <<: *functest-ovn-params - container: functest-benchmarking-cntt - ref_arg: BRANCH - path: docker/benchmarking-cntt - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-gate' - - 'functest-ovn-{repo}-{container}-{tag}-check' - -- project: - name: functest-ovn-opnfv-functest-vnf-{tag}-build - <<: *functest-ovn-params - container: functest-vnf - ref_arg: - path: docker/vnf - jobs: - - 'functest-ovn-{repo}-{container}-{tag}-gate' - - 'functest-ovn-{repo}-{container}-{tag}-check' - -- job-template: - name: 'functest-ovn-{tag}-check' - project-type: multijob - parameters: - - functest-ovn-slave: - slave: '{slave}' - - functest-ovn-build_tag: - build_tag: '' - - functest-ovn-branch: - branch: '{branch}' - - functest-ovn-DEBUG: - DEBUG: 'true' - - functest-ovn-EXTERNAL_NETWORK: - EXTERNAL_NETWORK: public - properties: - - build-blocker: - use-build-blocker: true - blocking-level: 'NODE' - blocking-jobs: - - '^functest-ovn-{tag}-(daily|check|gate)$' - builders: - - multijob: - name: remove former images - projects: - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-rmi' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-rmi' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-rmi' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-rmi' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-cntt-{tag}-rmi' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-rmi' - <<: *functest-ovn-jobs - - multijob: - name: remove dependencies - projects: - - name: 'functest-ovn-_-alpine-3.12-rmi' - <<: *functest-ovn-jobs - - multijob: - name: pull dependencies - projects: - - name: 'functest-ovn-_-alpine-3.12-pull' - <<: *functest-ovn-jobs - - multijob: - name: build opnfv/functest-core - projects: - - name: 'functest-ovn-opnfv-functest-core-{tag}-check' - <<: *functest-ovn-jobs - - multijob: - name: build opnfv/functest-tempest - projects: - - name: 'functest-ovn-opnfv-functest-tempest-{tag}-check' - <<: *functest-ovn-jobs - - multijob: - name: build containers - projects: - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-check' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-check' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-check' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-check' - <<: *functest-ovn-jobs - - multijob: - name: build cntt containers - projects: - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-check' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-cntt-{tag}-check' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-healthcheck:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-connection_check-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-vmready1-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-vmready2-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-singlevm1-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-singlevm2-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-vping_ssh-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-vping_userdata-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-cinder_test-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-odl-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-tempest_smoke-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-tempest_horizon-run' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-smoke:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_neutron-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_cinder-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_keystone-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_heat-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_telemetry-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-rally_sanity-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-refstack_defcore-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-refstack_compute-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-refstack_object-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-refstack_platform-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_full-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_scenario-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_slow-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-patrole-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-patrole_admin-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-patrole_member-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-patrole_reader-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-networking-bgpvpn-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-networking-sfc-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_barbican-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_octavia-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_cyborg-run' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-smoke-cntt:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-benchmarking:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-rally_full-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-rally_jobs-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-vmtp-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-shaker-run' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-benchmarking-cntt:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-vnf:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-cloudify-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-cloudify_ims-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-heat_ims-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-vyos_vrouter-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-juju_epc-run' - <<: *functest-ovn-jobs - -- trigger: - name: functest-ovn-patchset-created - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: 'functest' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - skip-vote: - successful: false - failed: false - unstable: false - notbuilt: false - -- job-template: - name: 'functest-ovn-{tag}-gate' - disabled: true - project-type: multijob - triggers: - - functest-ovn-patchset-created: - branch: '{branch}' - parameters: - - functest-ovn-slave: - slave: '{slave}' - - functest-ovn-build_tag: - build_tag: '' - - functest-ovn-DEBUG: - DEBUG: 'true' - - functest-ovn-EXTERNAL_NETWORK: - EXTERNAL_NETWORK: public - properties: - - build-blocker: - use-build-blocker: true - blocking-level: 'NODE' - blocking-jobs: - - '^functest-ovn-{tag}-(daily|check|gate)$' - builders: - - multijob: - name: remove former images - projects: - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-rmi' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-rmi' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-rmi' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-rmi' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-cntt-{tag}-rmi' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-rmi' - <<: *functest-ovn-jobs - - multijob: - name: remove dependencies - projects: - - name: 'functest-ovn-_-alpine-3.12-rmi' - <<: *functest-ovn-jobs - - multijob: - name: pull dependencies - projects: - - name: 'functest-ovn-_-alpine-3.12-pull' - <<: *functest-ovn-jobs - - multijob: - name: build opnfv/functest-core - projects: - - name: 'functest-ovn-opnfv-functest-core-{tag}-gate' - <<: *functest-ovn-jobs - - multijob: - name: build opnfv/functest-tempest - projects: - - name: 'functest-ovn-opnfv-functest-tempest-{tag}-gate' - <<: *functest-ovn-jobs - - multijob: - name: build containers - projects: - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-gate' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-gate' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-gate' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-gate' - <<: *functest-ovn-jobs - - multijob: - name: build cntt containers - projects: - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-gate' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-cntt-{tag}-gate' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-healthcheck:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-connection_check-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-vmready1-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-vmready2-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-singlevm1-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-singlevm2-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-vping_ssh-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-vping_userdata-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-cinder_test-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-odl-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-tempest_smoke-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-healthcheck-{tag}-tempest_horizon-run' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-smoke:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_neutron-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_cinder-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_keystone-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_heat-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_telemetry-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-rally_sanity-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-refstack_defcore-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-refstack_compute-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-refstack_object-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-refstack_platform-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_full-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_scenario-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_slow-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-patrole-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-patrole_admin-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-patrole_member-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-patrole_reader-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-networking-bgpvpn-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-networking-sfc-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_barbican-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_octavia-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-{tag}-tempest_cyborg-run' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-smoke-cntt:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-benchmarking:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-rally_full-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-rally_jobs-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-vmtp-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-{tag}-shaker-run' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-benchmarking-cntt:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run' - <<: *functest-ovn-jobs - - multijob: - name: opnfv/functest-vnf:{tag} - projects: - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-cloudify-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-cloudify_ims-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-heat_ims-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-vyos_vrouter-run' - <<: *functest-ovn-jobs - - name: 'functest-ovn-opnfv-functest-vnf-{tag}-juju_epc-run' - <<: *functest-ovn-jobs - -- project: - name: 'functest-ovn' - <<: *functest-ovn-params - jobs: - - 'functest-ovn-{tag}-daily' - - 'functest-ovn-{tag}-check' - - 'functest-ovn-{tag}-gate' diff --git a/jjb/functest/functest.yaml b/jjb/functest/functest.yaml index 59a5a12e1..463dd9a0a 100644 --- a/jjb/functest/functest.yaml +++ b/jjb/functest/functest.yaml @@ -1,44 +1,312 @@ --- -- functest-jobs: &functest-jobs - name: 'functest-jobs' - current-parameters: true +- functest-containers: &functest-containers + name: 'functest-containers' + repo: '{repo}' + port: '{port}' + container: '{container}' + tag: '{tag}' - functest-params: &functest-params name: 'functest-params' + tag: + - latest: + from: + build_args: + branch: master + node: lf-pod4 + DASHBOARD_URL: http://172.30.12.83 + dependency: 3.14 + - zed: + from: + build_args: + branch: stable/zed + node: lf-virtual9 + DASHBOARD_URL: http://172.30.13.94 + dependency: 3.14 + - yoga: + from: + build_args: + branch: stable/yoga + node: lf-pod4-3 + DASHBOARD_URL: http://172.30.12.88 + dependency: 3.14 + - xena: + from: + build_args: + branch: stable/xena + node: lf-pod4-2 + DASHBOARD_URL: http://172.30.12.85 + dependency: 3.14 + - wallaby: + from: + build_args: + branch: stable/wallaby + node: lf-virtual6 + DASHBOARD_URL: http://172.30.13.91 + dependency: 3.13 + +- functest-opnfv-functest-healthcheck-params: &functest-opnfv-functest-healthcheck-params + name: 'functest-opnfv-functest-healthcheck-params' + repo: 'opnfv' + container: 'functest-healthcheck' + port: + tag: + - latest: + from: + build_args: + branch: master + node: lf-pod4 + DASHBOARD_URL: http://172.30.12.83 + dependency: 3.14 + - zed: + from: + build_args: + branch: stable/zed + node: lf-virtual9 + DASHBOARD_URL: http://172.30.13.94 + dependency: 3.14 + - yoga: + from: + build_args: + branch: stable/yoga + node: lf-pod4-3 + DASHBOARD_URL: http://172.30.12.88 + dependency: 3.14 + - xena: + from: + build_args: + branch: stable/xena + node: lf-pod4-2 + DASHBOARD_URL: http://172.30.12.85 + dependency: 3.14 + - wallaby: + from: + build_args: + branch: stable/wallaby + node: lf-virtual6 + DASHBOARD_URL: http://172.30.13.91 + dependency: 3.13 + +- functest-opnfv-functest-smoke-params: &functest-opnfv-functest-smoke-params + name: 'functest-opnfv-functest-smoke-params' + repo: 'opnfv' + container: 'functest-smoke' + port: + tag: + - latest: + from: + build_args: + branch: master + node: lf-pod4 + DASHBOARD_URL: http://172.30.12.83 + dependency: 3.14 + - zed: + from: + build_args: + branch: stable/zed + node: lf-virtual9 + DASHBOARD_URL: http://172.30.13.94 + dependency: 3.14 + - yoga: + from: + build_args: + branch: stable/yoga + node: lf-pod4-3 + DASHBOARD_URL: http://172.30.12.88 + dependency: 3.14 + - xena: + from: + build_args: + branch: stable/xena + node: lf-pod4-2 + DASHBOARD_URL: http://172.30.12.85 + dependency: 3.14 + - wallaby: + from: + build_args: + branch: stable/wallaby + node: lf-virtual6 + DASHBOARD_URL: http://172.30.13.91 + dependency: 3.13 + +- functest-opnfv-functest-smoke-cntt-params: &functest-opnfv-functest-smoke-cntt-params + name: 'functest-opnfv-functest-smoke-cntt-params' repo: 'opnfv' + container: 'functest-smoke-cntt' port: tag: - latest: + from: + build_args: branch: master - slave: lf-virtual9 - dashboard_url: http://172.30.13.94 - - leguer: - branch: stable/leguer - slave: lf-virtual9 - dashboard_url: http://172.30.13.94 - - kali: - branch: stable/kali - slave: lf-pod4-3 - dashboard_url: http://172.30.12.88 - - jerma: - branch: stable/jerma - slave: lf-pod4 - dashboard_url: http://172.30.12.83 - - iruya: - branch: stable/iruya - slave: lf-virtual4 - dashboard_url: http://172.30.13.89 - - hunter: - branch: stable/hunter - slave: lf-virtual6 - dashboard_url: http://172.30.13.91 + node: lf-pod4 + DASHBOARD_URL: http://172.30.12.83 + dependency: 3.14 + - zed: + from: + build_args: + branch: stable/zed + node: lf-virtual9 + DASHBOARD_URL: http://172.30.13.94 + dependency: 3.14 + - yoga: + from: + build_args: + branch: stable/yoga + node: lf-pod4-3 + DASHBOARD_URL: http://172.30.12.88 + dependency: 3.14 + - xena: + from: + build_args: + branch: stable/xena + node: lf-pod4-2 + DASHBOARD_URL: http://172.30.12.85 + dependency: 3.14 + - wallaby: + from: + build_args: + branch: stable/wallaby + node: lf-virtual6 + DASHBOARD_URL: http://172.30.13.91 + dependency: 3.13 + +- functest-opnfv-functest-benchmarking-params: &functest-opnfv-functest-benchmarking-params + name: 'functest-opnfv-functest-benchmarking-params' + repo: 'opnfv' + container: 'functest-benchmarking' + port: + tag: + - latest: + from: + build_args: + branch: master + node: lf-pod4 + DASHBOARD_URL: http://172.30.12.83 + dependency: 3.14 + - zed: + from: + build_args: + branch: stable/zed + node: lf-virtual9 + DASHBOARD_URL: http://172.30.13.94 + dependency: 3.14 + - yoga: + from: + build_args: + branch: stable/yoga + node: lf-pod4-3 + DASHBOARD_URL: http://172.30.12.88 + dependency: 3.14 + - xena: + from: + build_args: + branch: stable/xena + node: lf-pod4-2 + DASHBOARD_URL: http://172.30.12.85 + dependency: 3.14 + - wallaby: + from: + build_args: + branch: stable/wallaby + node: lf-virtual6 + DASHBOARD_URL: http://172.30.13.91 + dependency: 3.13 + +- functest-opnfv-functest-benchmarking-cntt-params: &functest-opnfv-functest-benchmarking-cntt-params + name: 'functest-opnfv-functest-benchmarking-cntt-params' + repo: 'opnfv' + container: 'functest-benchmarking-cntt' + port: + tag: + - latest: + from: + build_args: + branch: master + node: lf-pod4 + DASHBOARD_URL: http://172.30.12.83 + dependency: 3.14 + - zed: + from: + build_args: + branch: stable/zed + node: lf-virtual9 + DASHBOARD_URL: http://172.30.13.94 + dependency: 3.14 + - yoga: + from: + build_args: + branch: stable/yoga + node: lf-pod4-3 + DASHBOARD_URL: http://172.30.12.88 + dependency: 3.14 + - xena: + from: + build_args: + branch: stable/xena + node: lf-pod4-2 + DASHBOARD_URL: http://172.30.12.85 + dependency: 3.14 + - wallaby: + from: + build_args: + branch: stable/wallaby + node: lf-virtual6 + DASHBOARD_URL: http://172.30.13.91 + dependency: 3.13 + +- functest-opnfv-functest-vnf-params: &functest-opnfv-functest-vnf-params + name: 'functest-opnfv-functest-vnf-params' + repo: 'opnfv' + container: 'functest-vnf' + port: + tag: + - latest: + from: + build_args: + branch: master + node: lf-pod4 + DASHBOARD_URL: http://172.30.12.83 + dependency: 3.14 + - zed: + from: + build_args: + branch: stable/zed + node: lf-virtual9 + DASHBOARD_URL: http://172.30.13.94 + dependency: 3.14 + - yoga: + from: + build_args: + branch: stable/yoga + node: lf-pod4-3 + DASHBOARD_URL: http://172.30.12.88 + dependency: 3.14 + - xena: + from: + build_args: + branch: stable/xena + node: lf-pod4-2 + DASHBOARD_URL: http://172.30.12.85 + dependency: 3.14 + - wallaby: + from: + build_args: + branch: stable/wallaby + node: lf-virtual6 + DASHBOARD_URL: http://172.30.13.91 + dependency: 3.13 + +- functest-jobs: &functest-jobs + name: 'functest-jobs' + current-parameters: true - parameter: - name: functest-slave + name: functest-node parameters: - label: - name: slave - default: '{slave}' + name: node + default: '{node}' - parameter: name: functest-build_tag @@ -47,20 +315,6 @@ name: build_tag - parameter: - name: functest-branch - parameters: - - string: - name: branch - default: '{branch}' - -- parameter: - name: functest-DEBUG - parameters: - - string: - name: DEBUG - default: 'true' - -- parameter: name: functest-EXTERNAL_NETWORK parameters: - string: @@ -81,20 +335,17 @@ name: IMAGE_PROPERTIES default: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi -- functest-containers: &functest-containers - name: 'functest-containers' - repo: '{repo}' - port: '{port}' - container: '{container}' - tag: '{tag}' - - functest-run-containers: &functest-run-containers name: 'functest-run-containers' <<: *functest-containers - test: '{test}' - dashboard_url: '{dashboard_url}' privileged: '{privileged}' + volumes: '{volumes}' + env: '{env}' network: '{network}' + uid: '{uid}' + gid: '{gid}' + published_ports: '{published_ports}' + DASHBOARD_URL: '{DASHBOARD_URL}' - builder: name: functest-pull-containers @@ -115,7 +366,22 @@ builders: - shell: | set +x - [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true + volumes=; + if [ "{volumes}" != "None" ]; then + for i in $(echo {volumes} | tr -d '[]' |sed "s/, / /g" ); \ + do volumes="-v $i $volumes"; done + fi + env=; + if [ "{env}" != "None" ]; then + for i in $(eval echo {env} | tr -d '[]' |sed "s/, / /g" ); \ + do env="-e $i $env"; done + fi + published_ports=; + if [ "{published_ports}" != "None" ]; then + for i in $(echo {published_ports} | tr -d '[]' |sed "s/, / /g" ); \ + do published_ports="-p $i $published_ports"; done + fi + [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true if [ "{repo}" = "_" ]; then image={container}:{tag} elif [ "{port}" = "None" ]; then @@ -123,26 +389,25 @@ else image={repo}:{port}/{container}:{tag} fi + sudo mkdir -p $WORKSPACE/results + sudo chown {uid}:{gid} $WORKSPACE/results sudo docker run --rm \ --privileged={privileged} \ --network={network} \ + $volumes \ + $env \ + $published_ports \ -e S3_ENDPOINT_URL=https://storage.googleapis.com \ -e S3_DST_URL=s3://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ -e HTTP_DST_URL=http://artifacts.opnfv.org/functest/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ + -v /home/opnfv/functest/.boto:/etc/boto.cfg \ -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \ - -e NODE_NAME=$slave \ + -e NODE_NAME=$node \ -e BUILD_TAG=$BUILD_TAG \ -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ - -e DEBUG=$DEBUG \ - -e EXTERNAL_NETWORK=$EXTERNAL_NETWORK \ - -e DASHBOARD_URL={dashboard_url} \ - -e VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME \ - -e IMAGE_PROPERTIES=$IMAGE_PROPERTIES \ - -v /home/opnfv/functest/.boto:/root/.boto \ - -v /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file \ - -v /home/opnfv/functest/images:/home/opnfv/functest/images \ - $image run_tests -t {test} -r -p + -e DASHBOARD_URL={DASHBOARD_URL} \ + $image run_tests -t {test} -p -r - builder: name: functest-remove-images @@ -158,154 +423,193 @@ fi sudo docker rmi $image || true -- functest-build-containers: &functest-build-containers - name: 'functest-build-containers' - <<: *functest-containers - ref_arg: '{ref_arg}' - path: '{path}' - -- builder: - name: functest-build-containers +- job-template: + name: 'functest-opnfv-functest-healthcheck-{tag}-pull' + parameters: + - functest-node: + node: '{node}' builders: - - shell: | - set +x - if [ "{repo}" = "_" ]; then - image={container}:{tag} - elif [ "{port}" = "None" ]; then - image={repo}/{container}:{tag} - else - image={repo}:{port}/{container}:{tag} - fi - if [ "{ref_arg}" = "None" ]; then - build_arg="" - else - build_arg="--build-arg {ref_arg}={ref}" - fi - cd {path} - sudo docker build $build_arg \ - --pull=false --no-cache --force-rm=true \ - -t $image . + - functest-pull-containers: + <<: *functest-containers -- scm: - name: functest-scm - scm: - - git: - url: https://gerrit.opnfv.org/gerrit/functest - refspec: '+refs/changes/*:refs/changes/*' - branches: - - '{ref}' +- project: + name: 'functest-opnfv-functest-healthcheck-pull' + <<: *functest-opnfv-functest-healthcheck-params + jobs: + - 'functest-opnfv-functest-healthcheck-{tag}-pull' - job-template: - name: 'functest-{repo}-{container}-{tag}-pull' + name: 'functest-opnfv-functest-healthcheck-{tag}-rmi' parameters: - - functest-slave: - slave: '{slave}' + - functest-node: + node: '{node}' builders: - - functest-pull-containers: + - functest-remove-images: <<: *functest-containers - project: - name: 'functest-opnfv-functest-healthcheck-pull' - <<: *functest-params - container: 'functest-healthcheck' + name: 'functest-opnfv-functest-healthcheck-rmi' + <<: *functest-opnfv-functest-healthcheck-params jobs: - - 'functest-{repo}-{container}-{tag}-pull' + - 'functest-opnfv-functest-healthcheck-{tag}-rmi' + +- job-template: + name: 'functest-opnfv-functest-smoke-{tag}-pull' + parameters: + - functest-node: + node: '{node}' + builders: + - functest-pull-containers: + <<: *functest-containers - project: name: 'functest-opnfv-functest-smoke-pull' - <<: *functest-params - container: 'functest-smoke' + <<: *functest-opnfv-functest-smoke-params jobs: - - 'functest-{repo}-{container}-{tag}-pull' + - 'functest-opnfv-functest-smoke-{tag}-pull' + +- job-template: + name: 'functest-opnfv-functest-smoke-{tag}-rmi' + parameters: + - functest-node: + node: '{node}' + builders: + - functest-remove-images: + <<: *functest-containers - project: - name: 'functest-opnfv-functest-smoke-cntt-pull' - <<: *functest-params - container: 'functest-smoke-cntt' + name: 'functest-opnfv-functest-smoke-rmi' + <<: *functest-opnfv-functest-smoke-params jobs: - - 'functest-{repo}-{container}-{tag}-pull' + - 'functest-opnfv-functest-smoke-{tag}-rmi' + +- job-template: + name: 'functest-opnfv-functest-smoke-cntt-{tag}-pull' + parameters: + - functest-node: + node: '{node}' + builders: + - functest-pull-containers: + <<: *functest-containers - project: - name: 'functest-opnfv-functest-benchmarking-pull' - <<: *functest-params - container: 'functest-benchmarking' + name: 'functest-opnfv-functest-smoke-cntt-pull' + <<: *functest-opnfv-functest-smoke-cntt-params jobs: - - 'functest-{repo}-{container}-{tag}-pull' + - 'functest-opnfv-functest-smoke-cntt-{tag}-pull' + +- job-template: + name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi' + parameters: + - functest-node: + node: '{node}' + builders: + - functest-remove-images: + <<: *functest-containers - project: - name: 'functest-opnfv-functest-benchmarking-cntt-pull' - <<: *functest-params - container: 'functest-benchmarking-cntt' + name: 'functest-opnfv-functest-smoke-cntt-rmi' + <<: *functest-opnfv-functest-smoke-cntt-params jobs: - - 'functest-{repo}-{container}-{tag}-pull' + - 'functest-opnfv-functest-smoke-cntt-{tag}-rmi' + +- job-template: + name: 'functest-opnfv-functest-benchmarking-{tag}-pull' + parameters: + - functest-node: + node: '{node}' + builders: + - functest-pull-containers: + <<: *functest-containers - project: - name: 'functest-opnfv-functest-vnf-pull' - <<: *functest-params - container: 'functest-vnf' + name: 'functest-opnfv-functest-benchmarking-pull' + <<: *functest-opnfv-functest-benchmarking-params jobs: - - 'functest-{repo}-{container}-{tag}-pull' + - 'functest-opnfv-functest-benchmarking-{tag}-pull' - job-template: - name: 'functest-{repo}-{container}-{tag}-rmi' + name: 'functest-opnfv-functest-benchmarking-{tag}-rmi' parameters: - - functest-slave: - slave: '{slave}' + - functest-node: + node: '{node}' builders: - functest-remove-images: <<: *functest-containers - project: - name: 'functest-opnfv-functest-healthcheck-rmi' - <<: *functest-params - container: 'functest-healthcheck' + name: 'functest-opnfv-functest-benchmarking-rmi' + <<: *functest-opnfv-functest-benchmarking-params jobs: - - 'functest-{repo}-{container}-{tag}-rmi' + - 'functest-opnfv-functest-benchmarking-{tag}-rmi' -- project: - name: 'functest-opnfv-functest-smoke-rmi' - <<: *functest-params - container: 'functest-smoke' - jobs: - - 'functest-{repo}-{container}-{tag}-rmi' +- job-template: + name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-pull' + parameters: + - functest-node: + node: '{node}' + builders: + - functest-pull-containers: + <<: *functest-containers - project: - name: 'functest-opnfv-functest-smoke-cntt-rmi' - <<: *functest-params - container: 'functest-smoke-cntt' + name: 'functest-opnfv-functest-benchmarking-cntt-pull' + <<: *functest-opnfv-functest-benchmarking-cntt-params jobs: - - 'functest-{repo}-{container}-{tag}-rmi' + - 'functest-opnfv-functest-benchmarking-cntt-{tag}-pull' + +- job-template: + name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi' + parameters: + - functest-node: + node: '{node}' + builders: + - functest-remove-images: + <<: *functest-containers - project: - name: 'functest-opnfv-functest-benchmarking-rmi' - <<: *functest-params - container: 'functest-benchmarking' + name: 'functest-opnfv-functest-benchmarking-cntt-rmi' + <<: *functest-opnfv-functest-benchmarking-cntt-params jobs: - - 'functest-{repo}-{container}-{tag}-rmi' + - 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi' + +- job-template: + name: 'functest-opnfv-functest-vnf-{tag}-pull' + parameters: + - functest-node: + node: '{node}' + builders: + - functest-pull-containers: + <<: *functest-containers - project: - name: 'functest-opnfv-functest-benchmarking-cntt-rmi' - <<: *functest-params - container: 'functest-benchmarking-cntt' + name: 'functest-opnfv-functest-vnf-pull' + <<: *functest-opnfv-functest-vnf-params jobs: - - 'functest-{repo}-{container}-{tag}-rmi' + - 'functest-opnfv-functest-vnf-{tag}-pull' + +- job-template: + name: 'functest-opnfv-functest-vnf-{tag}-rmi' + parameters: + - functest-node: + node: '{node}' + builders: + - functest-remove-images: + <<: *functest-containers - project: name: 'functest-opnfv-functest-vnf-rmi' - <<: *functest-params - container: 'functest-vnf' + <<: *functest-opnfv-functest-vnf-params jobs: - - 'functest-{repo}-{container}-{tag}-rmi' + - 'functest-opnfv-functest-vnf-{tag}-rmi' - job-template: - name: 'functest-{repo}-{container}-{tag}-{test}-run' + name: 'functest-opnfv-functest-healthcheck-{tag}-{test}-run' parameters: - - functest-slave: - slave: '{slave}' + - functest-node: + node: '{node}' - functest-build_tag: build_tag: '' - - functest-DEBUG: - DEBUG: 'true' - functest-EXTERNAL_NETWORK: EXTERNAL_NETWORK: public - functest-VOLUME_DEVICE_NAME: @@ -315,10 +619,19 @@ builders: - functest-run-containers: <<: *functest-run-containers + test: '{test}' - project: name: 'functest-opnfv-functest-healthcheck' - <<: *functest-params + <<: *functest-opnfv-functest-healthcheck-params + volumes: + - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file + - /home/opnfv/functest/images:/home/opnfv/functest/images + env: + - EXTERNAL_NETWORK=$EXTERNAL_NETWORK + - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME + - IMAGE_PROPERTIES=$IMAGE_PROPERTIES + published_ports: container: 'functest-healthcheck' test: - connection_check @@ -336,12 +649,40 @@ - tempest_horizon privileged: 'false' network: bridge + uid: 1000 + gid: 1000 jobs: - - 'functest-{repo}-{container}-{tag}-{test}-run' + - 'functest-opnfv-functest-healthcheck-{tag}-{test}-run' + +- job-template: + name: 'functest-opnfv-functest-smoke-{tag}-{test}-run' + parameters: + - functest-node: + node: '{node}' + - functest-build_tag: + build_tag: '' + - functest-EXTERNAL_NETWORK: + EXTERNAL_NETWORK: public + - functest-VOLUME_DEVICE_NAME: + VOLUME_DEVICE_NAME: sdb + - functest-IMAGE_PROPERTIES: + IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi + builders: + - functest-run-containers: + <<: *functest-run-containers + test: '{test}' - project: name: 'functest-opnfv-functest-smoke' - <<: *functest-params + <<: *functest-opnfv-functest-smoke-params + volumes: + - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file + - /home/opnfv/functest/images:/home/opnfv/functest/images + env: + - EXTERNAL_NETWORK=$EXTERNAL_NETWORK + - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME + - IMAGE_PROPERTIES=$IMAGE_PROPERTIES + published_ports: container: 'functest-smoke' test: - tempest_neutron @@ -350,101 +691,54 @@ - tempest_heat - tempest_telemetry - rally_sanity - - refstack_defcore - refstack_compute - refstack_object - refstack_platform - tempest_full - tempest_scenario - tempest_slow - - patrole - patrole_admin - patrole_member - patrole_reader - - networking-bgpvpn - - networking-sfc - tempest_barbican - tempest_octavia - tempest_cyborg - exclude: - - tag: latest - test: refstack_defcore - - tag: latest - test: networking-bgpvpn - - tag: latest - test: networking-sfc - - tag: latest - test: patrole - - tag: leguer - test: refstack_defcore - - tag: leguer - test: networking-bgpvpn - - tag: leguer - test: networking-sfc - - tag: leguer - test: patrole - - tag: kali - test: refstack_defcore - - tag: kali - test: networking-bgpvpn - - tag: kali - test: networking-sfc - - tag: kali - test: patrole_admin - - tag: kali - test: patrole_member - - tag: kali - test: patrole_reader - - tag: jerma - test: refstack_defcore - - tag: jerma - test: networking-bgpvpn - - tag: jerma - test: networking-sfc - - tag: jerma - test: patrole_admin - - tag: jerma - test: patrole_member - - tag: jerma - test: patrole_reader - - tag: jerma - test: tempest_cyborg - - tag: iruya - test: refstack_defcore - - tag: iruya - test: patrole_admin - - tag: iruya - test: patrole_member - - tag: iruya - test: patrole_reader - - tag: iruya - test: tempest_cyborg - - tag: hunter - test: refstack_compute - - tag: hunter - test: refstack_object - - tag: hunter - test: refstack_platform - - tag: hunter - test: tempest_octavia - - tag: hunter - test: tempest_telemetry - - tag: hunter - test: patrole_admin - - tag: hunter - test: patrole_member - - tag: hunter - test: patrole_reader - - tag: hunter - test: tempest_cyborg privileged: 'false' network: bridge + uid: 1000 + gid: 1000 jobs: - - 'functest-{repo}-{container}-{tag}-{test}-run' + - 'functest-opnfv-functest-smoke-{tag}-{test}-run' + +- job-template: + name: 'functest-opnfv-functest-smoke-cntt-{tag}-{test}-run' + parameters: + - functest-node: + node: '{node}' + - functest-build_tag: + build_tag: '' + - functest-EXTERNAL_NETWORK: + EXTERNAL_NETWORK: public + - functest-VOLUME_DEVICE_NAME: + VOLUME_DEVICE_NAME: sdb + - functest-IMAGE_PROPERTIES: + IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi + builders: + - functest-run-containers: + <<: *functest-run-containers + test: '{test}' - project: name: 'functest-opnfv-functest-smoke-cntt' - <<: *functest-params + <<: *functest-opnfv-functest-smoke-cntt-params + volumes: + - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file + - /home/opnfv/functest/images:/home/opnfv/functest/images + env: + - EXTERNAL_NETWORK=$EXTERNAL_NETWORK + - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME + - IMAGE_PROPERTIES=$IMAGE_PROPERTIES + published_ports: container: 'functest-smoke-cntt' test: - tempest_neutron_cntt @@ -457,12 +751,40 @@ - tempest_slow_cntt privileged: 'false' network: bridge + uid: 1000 + gid: 1000 jobs: - - 'functest-{repo}-{container}-{tag}-{test}-run' + - 'functest-opnfv-functest-smoke-cntt-{tag}-{test}-run' + +- job-template: + name: 'functest-opnfv-functest-benchmarking-{tag}-{test}-run' + parameters: + - functest-node: + node: '{node}' + - functest-build_tag: + build_tag: '' + - functest-EXTERNAL_NETWORK: + EXTERNAL_NETWORK: public + - functest-VOLUME_DEVICE_NAME: + VOLUME_DEVICE_NAME: sdb + - functest-IMAGE_PROPERTIES: + IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi + builders: + - functest-run-containers: + <<: *functest-run-containers + test: '{test}' - project: name: 'functest-opnfv-functest-benchmarking' - <<: *functest-params + <<: *functest-opnfv-functest-benchmarking-params + volumes: + - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file + - /home/opnfv/functest/images:/home/opnfv/functest/images + env: + - EXTERNAL_NETWORK=$EXTERNAL_NETWORK + - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME + - IMAGE_PROPERTIES=$IMAGE_PROPERTIES + published_ports: container: 'functest-benchmarking' test: - rally_full @@ -471,24 +793,80 @@ - shaker privileged: 'false' network: bridge + uid: 1000 + gid: 1000 jobs: - - 'functest-{repo}-{container}-{tag}-{test}-run' + - 'functest-opnfv-functest-benchmarking-{tag}-{test}-run' + +- job-template: + name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-{test}-run' + parameters: + - functest-node: + node: '{node}' + - functest-build_tag: + build_tag: '' + - functest-EXTERNAL_NETWORK: + EXTERNAL_NETWORK: public + - functest-VOLUME_DEVICE_NAME: + VOLUME_DEVICE_NAME: sdb + - functest-IMAGE_PROPERTIES: + IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi + builders: + - functest-run-containers: + <<: *functest-run-containers + test: '{test}' - project: name: 'functest-opnfv-functest-benchmarking-cntt' - <<: *functest-params + <<: *functest-opnfv-functest-benchmarking-cntt-params + volumes: + - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file + - /home/opnfv/functest/images:/home/opnfv/functest/images + env: + - EXTERNAL_NETWORK=$EXTERNAL_NETWORK + - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME + - IMAGE_PROPERTIES=$IMAGE_PROPERTIES + published_ports: container: 'functest-benchmarking-cntt' test: - rally_full_cntt - rally_jobs_cntt privileged: 'false' network: bridge + uid: 1000 + gid: 1000 jobs: - - 'functest-{repo}-{container}-{tag}-{test}-run' + - 'functest-opnfv-functest-benchmarking-cntt-{tag}-{test}-run' + +- job-template: + name: 'functest-opnfv-functest-vnf-{tag}-{test}-run' + parameters: + - functest-node: + node: '{node}' + - functest-build_tag: + build_tag: '' + - functest-EXTERNAL_NETWORK: + EXTERNAL_NETWORK: public + - functest-VOLUME_DEVICE_NAME: + VOLUME_DEVICE_NAME: sdb + - functest-IMAGE_PROPERTIES: + IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi + builders: + - functest-run-containers: + <<: *functest-run-containers + test: '{test}' - project: name: 'functest-opnfv-functest-vnf' - <<: *functest-params + <<: *functest-opnfv-functest-vnf-params + volumes: + - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file + - /home/opnfv/functest/images:/home/opnfv/functest/images + env: + - EXTERNAL_NETWORK=$EXTERNAL_NETWORK + - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME + - IMAGE_PROPERTIES=$IMAGE_PROPERTIES + published_ports: container: 'functest-vnf' test: - cloudify @@ -498,16 +876,32 @@ - juju_epc privileged: 'false' network: bridge + uid: 1000 + gid: 1000 jobs: - - 'functest-{repo}-{container}-{tag}-{test}-run' - + - 'functest-opnfv-functest-vnf-{tag}-{test}-run' - builder: name: functest-zip builders: - shell: | set +x - [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true + volumes=; + if [ "{volumes}" != "None" ]; then + for i in $(echo {volumes} | tr -d '[]' |sed "s/, / /g" ); \ + do volumes="-v $i $volumes"; done + fi + env=; + if [ "{env}" != "None" ]; then + for i in $(eval echo {env} | tr -d '[]' |sed "s/, / /g" ); \ + do env="-e $i $env"; done + fi + published_ports=; + if [ "{published_ports}" != "None" ]; then + for i in $(echo {published_ports} | tr -d '[]' |sed "s/, / /g" ); \ + do published_ports="-p $i $published_ports"; done + fi + [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true if [ "{repo}" = "_" ]; then image={container}:{tag} elif [ "{port}" = "None" ]; then @@ -515,32 +909,33 @@ else image={repo}:{port}/{container}:{tag} fi + sudo mkdir -p $WORKSPACE/results + sudo chown {uid}:{gid} $WORKSPACE/results sudo docker run --rm \ + --privileged={privileged} \ + --network={network} \ + $volumes \ + $env \ + $published_ports \ -e S3_ENDPOINT_URL=https://storage.googleapis.com \ -e S3_DST_URL=s3://artifacts.opnfv.org/functest \ -e HTTP_DST_URL=http://artifacts.opnfv.org/functest \ + -v /home/opnfv/functest/.boto:/etc/boto.cfg \ -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \ + -e NODE_NAME=$node \ -e BUILD_TAG=$BUILD_TAG \ -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ - -e DEBUG=$DEBUG \ - -e EXTERNAL_NETWORK=$EXTERNAL_NETWORK \ - -e VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME \ - -e IMAGE_PROPERTIES=$IMAGE_PROPERTIES \ - -v /home/opnfv/functest/.boto:/root/.boto \ - -v /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file \ - -v /home/opnfv/functest/images:/home/opnfv/functest/images \ + -e DASHBOARD_URL={DASHBOARD_URL} \ $image zip_campaign - job-template: name: 'functest-{tag}-zip' parameters: - - functest-slave: - slave: '{slave}' + - functest-node: + node: '{node}' - functest-build_tag: build_tag: '' - - functest-DEBUG: - DEBUG: 'true' - functest-EXTERNAL_NETWORK: EXTERNAL_NETWORK: public - functest-VOLUME_DEVICE_NAME: @@ -549,12 +944,24 @@ IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi builders: - functest-zip: - <<: *functest-containers + <<: *functest-run-containers - project: - name: 'functest-{tag}-zip' - <<: *functest-params + name: 'functest-zip' + <<: *functest-opnfv-functest-healthcheck-params + volumes: + - /home/opnfv/functest/openstack.creds:/home/opnfv/functest/conf/env_file + - /home/opnfv/functest/images:/home/opnfv/functest/images + env: + - EXTERNAL_NETWORK=$EXTERNAL_NETWORK + - VOLUME_DEVICE_NAME=$VOLUME_DEVICE_NAME + - IMAGE_PROPERTIES=$IMAGE_PROPERTIES + published_ports: container: 'functest-healthcheck' + privileged: 'false' + network: bridge + uid: 1000 + gid: 1000 jobs: - 'functest-{tag}-zip' @@ -564,24 +971,24 @@ triggers: - timed: '@weekly' parameters: - - functest-slave: - slave: '{slave}' + - functest-node: + node: '{node}' - functest-build_tag: build_tag: '' - - functest-DEBUG: - DEBUG: 'true' - functest-EXTERNAL_NETWORK: EXTERNAL_NETWORK: public - functest-VOLUME_DEVICE_NAME: VOLUME_DEVICE_NAME: sdb - functest-IMAGE_PROPERTIES: IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi + # PyYAML and yamllint differ here + # see https://github.com/yaml/pyyaml/issues/234 + # yamllint disable rule:indentation properties: - build-blocker: - use-build-blocker: true - blocking-level: 'NODE' blocking-jobs: - - '^functest(-pi)?(-ovn)?-(arm.*-|amd64-)*[a-z]+-(daily|gate|check)$' + - ^functest-(pi-)*{tag}-(daily|docker|review)$ + # yamllint enable rule:indentation builders: - multijob: name: remove former images @@ -657,8 +1064,6 @@ <<: *functest-jobs - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run' <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run' - <<: *functest-jobs - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run' <<: *functest-jobs - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run' @@ -671,18 +1076,12 @@ <<: *functest-jobs - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run' <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run' - <<: *functest-jobs - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run' <<: *functest-jobs - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run' <<: *functest-jobs - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run' <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run' - <<: *functest-jobs - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run' <<: *functest-jobs - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run' @@ -744,164 +1143,390 @@ projects: - name: 'functest-{tag}-zip' <<: *functest-jobs + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-daily' + <<: *functest-params + jobs: + - 'functest-{tag}-daily' + +- view: + name: functest + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: ^functest-[a-z0-9.-]+-daily$ + +- functest-build-containers: &functest-build-containers + name: 'functest-build-containers' + <<: *functest-containers + ref_arg: '{ref_arg}' + path: '{path}' + build_args: '{build_args}' + from: '{from}' + +- builder: + name: functest-build-containers + builders: + - shell: | + set +x + if [ "{repo}" = "_" ]; then + image={container}:{tag} + elif [ "{port}" = "None" ]; then + image={repo}/{container}:{tag} + else + image={repo}:{port}/{container}:{tag} + fi + build_args="" + if [ "{build_args}" != "None" ]; then + for i in $(echo {build_args} | tr -d '[]' |sed "s/, / /g" ); \ + do build_args="--build-arg $i $build_args"; done + fi + if [ "{ref_arg}" != "None" ]; then + build_args="$build_args --build-arg {ref_arg}={ref}" + fi + cd {path} + if [ "{from}" != "None" ]; then + sed -i {from} Dockerfile + fi + sudo docker build $build_args \ + --pull=false --no-cache --force-rm=true \ + -t $image . + +- scm: + name: functest-scm + scm: + - git: + url: 'https://gerrit.opnfv.org/gerrit/functest' + refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*' + branches: + - '{ref}' + +- functest-dep: &functest-dep + name: 'functest-containers' + repo: '{repo}' + container: '{container}' + port: '{port}' + tag: '{dependency}' - job-template: - name: 'functest-{repo}-{container}-{tag}-gate' + name: 'functest-{tag}-dep-pull' parameters: - - functest-slave: - slave: '{slave}' + - functest-node: + node: '{node}' + builders: + - functest-pull-containers: + <<: *functest-dep + +- functest-dep-params: &functest-dep-params + name: 'functest-dep-params' + repo: '_' + container: 'alpine' + port: + tag: + - latest: + dependency: 3.14 + - zed: + dependency: 3.14 + - yoga: + dependency: 3.14 + - xena: + dependency: 3.14 + - wallaby: + dependency: 3.13 + +- project: + name: 'functest-dep-pull' + <<: *functest-dep-params + jobs: + - 'functest-{tag}-dep-pull' + +- job-template: + name: 'functest-{tag}-dep-rmi' + parameters: + - functest-node: + node: '{node}' + builders: + - functest-remove-images: + <<: *functest-dep + +- project: + name: 'functest-dep-rmi' + <<: *functest-dep-params + jobs: + - 'functest-{tag}-dep-rmi' + +- builder: + name: functest-tox + builders: + - shell: | + set +x + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 dist-upgrade -y + sudo DEBIAN_FRONTEND=noninteractive \ + apt-get -o DPkg::Lock::Timeout=300 install software-properties-common gpg -y + sudo add-apt-repository -y ppa:deadsnakes/ppa + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 install \ + libxml2-dev libxslt-dev libffi-dev libjpeg-dev \ + python3.10 python3.10-dev python3.10-distutils \ + python3.9 python3.9-dev python3.9-distutils \ + python3.8 python3.8-dev python3.8-distutils \ + python3-pip enchant-2 -y + sudo pip3 install tox + + tox + +- job-template: + name: 'functest-{tag}-tox' scm: - functest-scm: ref: $GERRIT_REFSPEC + triggers: + - functest-patchset-created: + branch: '{branch}' + parameters: + - functest-node: + node: '{node}' builders: - - functest-build-containers: - <<: *functest-build-containers - ref: $GERRIT_REFSPEC + - functest-tox: + +- project: + name: functest-tox + <<: *functest-params + jobs: + - 'functest-{tag}-tox' - job-template: - name: 'functest-{repo}-{container}-{tag}-check' + name: 'functest-opnfv-functest-core-{tag}-gate' parameters: - - functest-slave: - slave: '{slave}' - - functest-branch: - branch: '{branch}' + - functest-node: + node: '{node}' scm: - functest-scm: - ref: $branch + ref: $GERRIT_REFSPEC builders: - functest-build-containers: <<: *functest-build-containers - ref: $branch - -- project: - name: 'functest-_-alpine-3.12-rmi' - repo: _ - port: - container: alpine - tag: '3.12' - slave: master - jobs: - - 'functest-{repo}-{container}-{tag}-rmi' - -- project: - name: 'functest-_-alpine-3.12-pull' - repo: _ - port: - container: alpine - tag: '3.12' - slave: master - jobs: - - 'functest-{repo}-{container}-{tag}-pull' + ref: $GERRIT_REFSPEC + build_args: '{build_args}' - project: - name: functest-opnfv-functest-core-{tag}-build + name: functest-opnfv-functest-core-gate <<: *functest-params + repo: opnfv + port: container: functest-core ref_arg: BRANCH path: docker/core jobs: - - 'functest-{repo}-{container}-{tag}-gate' - - 'functest-{repo}-{container}-{tag}-check' + - 'functest-opnfv-functest-core-{tag}-gate' -- project: - name: functest-opnfv-functest-tempest-{tag}-build - <<: *functest-params - container: functest-tempest - ref_arg: BRANCH - path: docker/tempest - jobs: - - 'functest-{repo}-{container}-{tag}-gate' - - 'functest-{repo}-{container}-{tag}-check' - exclude: - - tag: latest - - tag: leguer - - tag: kali - - tag: jerma +- job-template: + name: 'functest-opnfv-functest-healthcheck-{tag}-gate' + parameters: + - functest-node: + node: '{node}' + scm: + - functest-scm: + ref: $GERRIT_REFSPEC + builders: + - functest-build-containers: + <<: *functest-build-containers + ref: $GERRIT_REFSPEC + build_args: '{build_args}' - project: - name: functest-opnfv-functest-healthcheck-{tag}-build + name: functest-opnfv-functest-healthcheck-gate <<: *functest-params + repo: opnfv + port: container: functest-healthcheck ref_arg: BRANCH path: docker/healthcheck jobs: - - 'functest-{repo}-{container}-{tag}-gate' - - 'functest-{repo}-{container}-{tag}-check' + - 'functest-opnfv-functest-healthcheck-{tag}-gate' + +- job-template: + name: 'functest-opnfv-functest-smoke-{tag}-gate' + parameters: + - functest-node: + node: '{node}' + scm: + - functest-scm: + ref: $GERRIT_REFSPEC + builders: + - functest-build-containers: + <<: *functest-build-containers + ref: $GERRIT_REFSPEC + build_args: '{build_args}' - project: - name: functest-opnfv-functest-smoke-{tag}-build + name: functest-opnfv-functest-smoke-gate <<: *functest-params + repo: opnfv + port: container: functest-smoke ref_arg: BRANCH path: docker/smoke jobs: - - 'functest-{repo}-{container}-{tag}-gate' - - 'functest-{repo}-{container}-{tag}-check' + - 'functest-opnfv-functest-smoke-{tag}-gate' + +- job-template: + name: 'functest-opnfv-functest-benchmarking-{tag}-gate' + parameters: + - functest-node: + node: '{node}' + scm: + - functest-scm: + ref: $GERRIT_REFSPEC + builders: + - functest-build-containers: + <<: *functest-build-containers + ref: $GERRIT_REFSPEC + build_args: '{build_args}' - project: - name: functest-opnfv-functest-benchmarking-{tag}-build + name: functest-opnfv-functest-benchmarking-gate <<: *functest-params + repo: opnfv + port: container: functest-benchmarking ref_arg: BRANCH path: docker/benchmarking jobs: - - 'functest-{repo}-{container}-{tag}-gate' - - 'functest-{repo}-{container}-{tag}-check' + - 'functest-opnfv-functest-benchmarking-{tag}-gate' -- project: - name: functest-opnfv-functest-benchmarking-cntt-{tag}-build - <<: *functest-params - container: functest-benchmarking-cntt - ref_arg: BRANCH - path: docker/benchmarking-cntt - jobs: - - 'functest-{repo}-{container}-{tag}-gate' - - 'functest-{repo}-{container}-{tag}-check' +- job-template: + name: 'functest-opnfv-functest-vnf-{tag}-gate' + parameters: + - functest-node: + node: '{node}' + scm: + - functest-scm: + ref: $GERRIT_REFSPEC + builders: + - functest-build-containers: + <<: *functest-build-containers + ref: $GERRIT_REFSPEC + build_args: '{build_args}' - project: - name: functest-opnfv-functest-vnf-{tag}-build + name: functest-opnfv-functest-vnf-gate <<: *functest-params + repo: opnfv + port: container: functest-vnf ref_arg: path: docker/vnf jobs: - - 'functest-{repo}-{container}-{tag}-gate' - - 'functest-{repo}-{container}-{tag}-check' + - 'functest-opnfv-functest-vnf-{tag}-gate' + +- job-template: + name: 'functest-opnfv-functest-smoke-cntt-{tag}-gate' + parameters: + - functest-node: + node: '{node}' + scm: + - functest-scm: + ref: $GERRIT_REFSPEC + builders: + - functest-build-containers: + <<: *functest-build-containers + ref: $GERRIT_REFSPEC + build_args: '{build_args}' - project: - name: functest-opnfv-functest-smoke-cntt-{tag}-build + name: functest-opnfv-functest-smoke-cntt-gate <<: *functest-params + repo: opnfv + port: container: functest-smoke-cntt ref_arg: BRANCH path: docker/smoke-cntt jobs: - - 'functest-{repo}-{container}-{tag}-gate' - - 'functest-{repo}-{container}-{tag}-check' + - 'functest-opnfv-functest-smoke-cntt-{tag}-gate' + +- job-template: + name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-gate' + parameters: + - functest-node: + node: '{node}' + scm: + - functest-scm: + ref: $GERRIT_REFSPEC + builders: + - functest-build-containers: + <<: *functest-build-containers + ref: $GERRIT_REFSPEC + build_args: '{build_args}' + +- project: + name: functest-opnfv-functest-benchmarking-cntt-gate + <<: *functest-params + repo: opnfv + port: + container: functest-benchmarking-cntt + ref_arg: BRANCH + path: docker/benchmarking-cntt + jobs: + - 'functest-opnfv-functest-benchmarking-cntt-{tag}-gate' + +- trigger: + name: functest-patchset-created + triggers: + - gerrit: + trigger-on: + - patchset-created-event + - comment-added-contains-event: + comment-contains-value: 'recheck' + - comment-added-contains-event: + comment-contains-value: 'reverify' + projects: + - project-compare-type: 'ANT' + project-pattern: 'functest' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' - job-template: - name: 'functest-{tag}-check' + name: 'functest-{tag}-review' project-type: multijob + triggers: + - functest-patchset-created: + branch: '{branch}' parameters: - - functest-slave: - slave: '{slave}' + - functest-node: + node: '{node}' - functest-build_tag: build_tag: '' - - functest-branch: - branch: '{branch}' - - functest-DEBUG: - DEBUG: 'true' - functest-EXTERNAL_NETWORK: EXTERNAL_NETWORK: public - functest-VOLUME_DEVICE_NAME: VOLUME_DEVICE_NAME: sdb - functest-IMAGE_PROPERTIES: IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi + # PyYAML and yamllint differ here + # see https://github.com/yaml/pyyaml/issues/234 + # yamllint disable rule:indentation properties: - build-blocker: - use-build-blocker: true - blocking-level: 'NODE' blocking-jobs: - - '^functest(-pi)?(-ovn)?-(arm.*-|amd64-)*[a-z]+-(daily|gate|check)$' + - ^functest-(pi-)*{tag}-(daily|docker|review)$ + # yamllint enable rule:indentation builders: - multijob: name: remove former images @@ -919,42 +1544,37 @@ - name: 'functest-opnfv-functest-vnf-{tag}-rmi' <<: *functest-jobs - multijob: - name: remove dependencies + name: remove dependency projects: - - name: 'functest-_-alpine-3.12-rmi' + - name: 'functest-{tag}-dep-rmi' <<: *functest-jobs - multijob: - name: pull dependencies + name: pull dependency projects: - - name: 'functest-_-alpine-3.12-pull' + - name: 'functest-{tag}-dep-pull' <<: *functest-jobs - multijob: name: build opnfv/functest-core projects: - - name: 'functest-opnfv-functest-core-{tag}-check' - <<: *functest-jobs - - multijob: - name: build opnfv/functest-tempest - projects: - - name: 'functest-opnfv-functest-tempest-{tag}-check' + - name: 'functest-opnfv-functest-core-{tag}-gate' <<: *functest-jobs - multijob: name: build containers projects: - - name: 'functest-opnfv-functest-healthcheck-{tag}-check' + - name: 'functest-opnfv-functest-healthcheck-{tag}-gate' <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-check' + - name: 'functest-opnfv-functest-smoke-{tag}-gate' <<: *functest-jobs - - name: 'functest-opnfv-functest-benchmarking-{tag}-check' + - name: 'functest-opnfv-functest-benchmarking-{tag}-gate' <<: *functest-jobs - - name: 'functest-opnfv-functest-vnf-{tag}-check' + - name: 'functest-opnfv-functest-vnf-{tag}-gate' <<: *functest-jobs - multijob: name: build cntt containers projects: - - name: 'functest-opnfv-functest-smoke-cntt-{tag}-check' + - name: 'functest-opnfv-functest-smoke-cntt-{tag}-gate' <<: *functest-jobs - - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-check' + - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-gate' <<: *functest-jobs - multijob: name: opnfv/functest-healthcheck:{tag} @@ -1000,8 +1620,6 @@ <<: *functest-jobs - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run' <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run' - <<: *functest-jobs - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run' <<: *functest-jobs - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run' @@ -1014,18 +1632,12 @@ <<: *functest-jobs - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run' <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run' - <<: *functest-jobs - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run' <<: *functest-jobs - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run' <<: *functest-jobs - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run' <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run' - <<: *functest-jobs - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run' <<: *functest-jobs - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run' @@ -1082,251 +1694,952 @@ <<: *functest-jobs - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run' <<: *functest-jobs + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-review' + <<: *functest-params + jobs: + - 'functest-{tag}-review' + +- view: + name: functest-review + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: ^functest-[a-z0-9.-]+-review$ + +- view: + name: functest-tox + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: ^functest-[a-z0-9.-]+-tox$ + +- builder: + name: functest-push-containers + builders: + - shell: | + set +x + if [ "{repo}" = "_" ]; then + image={container}:{tag} + elif [ "{port}" = "None" ]; then + image={repo}/{container}:{tag} + else + image={repo}:{port}/{container}:{tag} + fi + sudo docker push $image - trigger: - name: functest-patchset-created + name: functest-commit triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: 'functest' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - skip-vote: - successful: false - failed: false - unstable: false - notbuilt: false + - pollscm: + cron: "*/30 * * * *" + +- job-template: + name: 'functest-opnfv-functest-core-{tag}-build' + parameters: + - functest-node: + node: '{node}' + scm: + - functest-scm: + ref: '{branch}' + builders: + - functest-build-containers: + <<: *functest-build-containers + ref: '{branch}' + build_args: '{build_args}' + - functest-push-containers: + <<: *functest-build-containers + ref: '{branch}' + +- project: + name: functest-opnfv-functest-core-build + <<: *functest-params + repo: opnfv + container: functest-core + port: + ref_arg: BRANCH + path: docker/core + jobs: + - 'functest-opnfv-functest-core-{tag}-build' + +- job-template: + name: 'functest-opnfv-functest-healthcheck-{tag}-build' + parameters: + - functest-node: + node: '{node}' + scm: + - functest-scm: + ref: '{branch}' + builders: + - functest-build-containers: + <<: *functest-build-containers + ref: '{branch}' + build_args: '{build_args}' + - functest-push-containers: + <<: *functest-build-containers + ref: '{branch}' + +- project: + name: functest-opnfv-functest-healthcheck-build + <<: *functest-params + repo: opnfv + container: functest-healthcheck + port: + ref_arg: BRANCH + path: docker/healthcheck + jobs: + - 'functest-opnfv-functest-healthcheck-{tag}-build' + +- job-template: + name: 'functest-opnfv-functest-smoke-{tag}-build' + parameters: + - functest-node: + node: '{node}' + scm: + - functest-scm: + ref: '{branch}' + builders: + - functest-build-containers: + <<: *functest-build-containers + ref: '{branch}' + build_args: '{build_args}' + - functest-push-containers: + <<: *functest-build-containers + ref: '{branch}' + +- project: + name: functest-opnfv-functest-smoke-build + <<: *functest-params + repo: opnfv + container: functest-smoke + port: + ref_arg: BRANCH + path: docker/smoke + jobs: + - 'functest-opnfv-functest-smoke-{tag}-build' - job-template: - name: 'functest-{tag}-gate' + name: 'functest-opnfv-functest-benchmarking-{tag}-build' + parameters: + - functest-node: + node: '{node}' + scm: + - functest-scm: + ref: '{branch}' + builders: + - functest-build-containers: + <<: *functest-build-containers + ref: '{branch}' + build_args: '{build_args}' + - functest-push-containers: + <<: *functest-build-containers + ref: '{branch}' + +- project: + name: functest-opnfv-functest-benchmarking-build + <<: *functest-params + repo: opnfv + container: functest-benchmarking + port: + ref_arg: BRANCH + path: docker/benchmarking + jobs: + - 'functest-opnfv-functest-benchmarking-{tag}-build' + +- job-template: + name: 'functest-opnfv-functest-vnf-{tag}-build' + parameters: + - functest-node: + node: '{node}' + scm: + - functest-scm: + ref: '{branch}' + builders: + - functest-build-containers: + <<: *functest-build-containers + ref: '{branch}' + build_args: '{build_args}' + - functest-push-containers: + <<: *functest-build-containers + ref: '{branch}' + +- project: + name: functest-opnfv-functest-vnf-build + <<: *functest-params + repo: opnfv + container: functest-vnf + port: + ref_arg: + path: docker/vnf + jobs: + - 'functest-opnfv-functest-vnf-{tag}-build' + +- job-template: + name: 'functest-opnfv-functest-smoke-cntt-{tag}-build' + parameters: + - functest-node: + node: '{node}' + scm: + - functest-scm: + ref: '{branch}' + builders: + - functest-build-containers: + <<: *functest-build-containers + ref: '{branch}' + build_args: '{build_args}' + - functest-push-containers: + <<: *functest-build-containers + ref: '{branch}' + +- project: + name: functest-opnfv-functest-smoke-cntt-build + <<: *functest-params + repo: opnfv + container: functest-smoke-cntt + port: + ref_arg: BRANCH + path: docker/smoke-cntt + jobs: + - 'functest-opnfv-functest-smoke-cntt-{tag}-build' + +- job-template: + name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-build' + parameters: + - functest-node: + node: '{node}' + scm: + - functest-scm: + ref: '{branch}' + builders: + - functest-build-containers: + <<: *functest-build-containers + ref: '{branch}' + build_args: '{build_args}' + - functest-push-containers: + <<: *functest-build-containers + ref: '{branch}' + +- project: + name: functest-opnfv-functest-benchmarking-cntt-build + <<: *functest-params + repo: opnfv + container: functest-benchmarking-cntt + port: + ref_arg: BRANCH + path: docker/benchmarking-cntt + jobs: + - 'functest-opnfv-functest-benchmarking-cntt-{tag}-build' + +- job-template: + name: 'functest-{tag}-docker' project-type: multijob triggers: - - functest-patchset-created: - branch: '{branch}' + - functest-commit + scm: + - functest-scm: + ref: '{branch}' parameters: - - functest-slave: - slave: '{slave}' - - functest-build_tag: - build_tag: '' - - functest-DEBUG: - DEBUG: 'true' - - functest-EXTERNAL_NETWORK: - EXTERNAL_NETWORK: public - - functest-VOLUME_DEVICE_NAME: - VOLUME_DEVICE_NAME: sdb - - functest-IMAGE_PROPERTIES: - IMAGE_PROPERTIES: hw_scsi_model:virtio-scsi,hw_disk_bus:scsi + - functest-node: + node: '{node}' + # PyYAML and yamllint differ here + # see https://github.com/yaml/pyyaml/issues/234 + # yamllint disable rule:indentation properties: - build-blocker: - use-build-blocker: true - blocking-level: 'NODE' blocking-jobs: - - '^functest(-pi)?(-ovn)?-(arm.*-|amd64-)*[a-z]+-(daily|gate|check)$' + - ^functest-(pi-)*{tag}-(daily|docker|review)$ + # yamllint enable rule:indentation builders: - multijob: - name: remove former images - projects: - - name: 'functest-opnfv-functest-healthcheck-{tag}-rmi' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-rmi' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rmi' - <<: *functest-jobs - - name: 'functest-opnfv-functest-benchmarking-{tag}-rmi' - <<: *functest-jobs - - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rmi' - <<: *functest-jobs - - name: 'functest-opnfv-functest-vnf-{tag}-rmi' - <<: *functest-jobs - - multijob: - name: remove dependencies + name: remove dependency projects: - - name: 'functest-_-alpine-3.12-rmi' + - name: 'functest-{tag}-dep-rmi' <<: *functest-jobs - multijob: - name: pull dependencies + name: pull dependency projects: - - name: 'functest-_-alpine-3.12-pull' + - name: 'functest-{tag}-dep-pull' <<: *functest-jobs - multijob: name: build opnfv/functest-core projects: - - name: 'functest-opnfv-functest-core-{tag}-gate' - <<: *functest-jobs - - multijob: - name: build opnfv/functest-tempest - projects: - - name: 'functest-opnfv-functest-tempest-{tag}-gate' + - name: 'functest-opnfv-functest-core-{tag}-build' <<: *functest-jobs - multijob: name: build containers projects: - - name: 'functest-opnfv-functest-healthcheck-{tag}-gate' + - name: 'functest-opnfv-functest-healthcheck-{tag}-build' <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-gate' + - name: 'functest-opnfv-functest-smoke-{tag}-build' <<: *functest-jobs - - name: 'functest-opnfv-functest-benchmarking-{tag}-gate' + - name: 'functest-opnfv-functest-benchmarking-{tag}-build' <<: *functest-jobs - - name: 'functest-opnfv-functest-vnf-{tag}-gate' + - name: 'functest-opnfv-functest-vnf-{tag}-build' <<: *functest-jobs - multijob: name: build cntt containers projects: - - name: 'functest-opnfv-functest-smoke-cntt-{tag}-gate' + - name: 'functest-opnfv-functest-smoke-cntt-{tag}-build' <<: *functest-jobs - - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-gate' - <<: *functest-jobs - - multijob: - name: opnfv/functest-healthcheck:{tag} - projects: - - name: 'functest-opnfv-functest-healthcheck-{tag}-connection_check-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork1-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-healthcheck-{tag}-tenantnetwork2-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready1-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-healthcheck-{tag}-vmready2-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm1-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-healthcheck-{tag}-singlevm2-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_ssh-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-healthcheck-{tag}-vping_userdata-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-healthcheck-{tag}-cinder_test-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-healthcheck-{tag}-odl-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_smoke-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-healthcheck-{tag}-tempest_horizon-run' - <<: *functest-jobs - - multijob: - name: opnfv/functest-smoke:{tag} - projects: - - name: 'functest-opnfv-functest-smoke-{tag}-tempest_neutron-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cinder-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-tempest_keystone-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-tempest_heat-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-tempest_telemetry-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-rally_sanity-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-refstack_defcore-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-refstack_compute-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-refstack_object-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-refstack_platform-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-tempest_full-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-tempest_scenario-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-tempest_slow-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-patrole-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-patrole_admin-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-patrole_member-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-patrole_reader-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-networking-bgpvpn-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-networking-sfc-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-tempest_barbican-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-tempest_octavia-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-{tag}-tempest_cyborg-run' - <<: *functest-jobs - - multijob: - name: opnfv/functest-smoke-cntt:{tag} - projects: - - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_neutron_cntt-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_cinder_cntt-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_keystone_cntt-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_heat_cntt-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-cntt-{tag}-rally_sanity_cntt-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_full_cntt-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_scenario_cntt-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-smoke-cntt-{tag}-tempest_slow_cntt-run' - <<: *functest-jobs - - multijob: - name: opnfv/functest-benchmarking:{tag} - projects: - - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_full-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-benchmarking-{tag}-rally_jobs-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-benchmarking-{tag}-vmtp-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-benchmarking-{tag}-shaker-run' - <<: *functest-jobs - - multijob: - name: opnfv/functest-benchmarking-cntt:{tag} - projects: - - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_full_cntt-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-rally_jobs_cntt-run' - <<: *functest-jobs - - multijob: - name: opnfv/functest-vnf:{tag} - projects: - - name: 'functest-opnfv-functest-vnf-{tag}-cloudify-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-vnf-{tag}-cloudify_ims-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-vnf-{tag}-heat_ims-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-vnf-{tag}-vyos_vrouter-run' - <<: *functest-jobs - - name: 'functest-opnfv-functest-vnf-{tag}-juju_epc-run' + - name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-build' <<: *functest-jobs + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com - project: - name: 'functest' + name: 'functest-docker' <<: *functest-params jobs: - - 'functest-{tag}-daily' + - 'functest-{tag}-docker' + +- builder: + name: functest-trivy + builders: + - shell: | + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 install curl -y + + curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sudo sh -s -- -b . + if [ "{repo}" = "_" ]; then + image={container}:{tag} + elif [ "{port}" = "None" ]; then + image={repo}/{container}:{tag} + else + image={repo}:{port}/{container}:{tag} + fi + ./trivy image --exit-code 1 $image + +- job-template: + name: 'functest-opnfv-functest-core-{tag}-trivy' + triggers: + - timed: '@weekly' + parameters: + - functest-node: + node: '{node}' + builders: + - functest-trivy: + <<: *functest-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-opnfv-functest-core-trivy' + <<: *functest-params + repo: 'opnfv' + container: 'functest-core' + port: + jobs: + - 'functest-opnfv-functest-core-{tag}-trivy' + +- job-template: + name: 'functest-opnfv-functest-healthcheck-{tag}-trivy' + triggers: + - timed: '@weekly' + parameters: + - functest-node: + node: '{node}' + builders: + - functest-trivy: + <<: *functest-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-opnfv-functest-healthcheck-trivy' + <<: *functest-params + repo: 'opnfv' + container: 'functest-healthcheck' + port: + jobs: + - 'functest-opnfv-functest-healthcheck-{tag}-trivy' + +- job-template: + name: 'functest-opnfv-functest-smoke-{tag}-trivy' + triggers: + - timed: '@weekly' + parameters: + - functest-node: + node: '{node}' + builders: + - functest-trivy: + <<: *functest-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-opnfv-functest-smoke-trivy' + <<: *functest-params + repo: 'opnfv' + container: 'functest-smoke' + port: + jobs: + - 'functest-opnfv-functest-smoke-{tag}-trivy' + +- job-template: + name: 'functest-opnfv-functest-benchmarking-{tag}-trivy' + triggers: + - timed: '@weekly' + parameters: + - functest-node: + node: '{node}' + builders: + - functest-trivy: + <<: *functest-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-opnfv-functest-benchmarking-trivy' + <<: *functest-params + repo: 'opnfv' + container: 'functest-benchmarking' + port: + jobs: + - 'functest-opnfv-functest-benchmarking-{tag}-trivy' + +- job-template: + name: 'functest-opnfv-functest-vnf-{tag}-trivy' + triggers: + - timed: '@weekly' + parameters: + - functest-node: + node: '{node}' + builders: + - functest-trivy: + <<: *functest-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com - project: - name: 'functest-gate' + name: 'functest-opnfv-functest-vnf-trivy' <<: *functest-params + repo: 'opnfv' + container: 'functest-vnf' + port: jobs: - - 'functest-{tag}-check' - - 'functest-{tag}-gate' + - 'functest-opnfv-functest-vnf-{tag}-trivy' + +- job-template: + name: 'functest-opnfv-functest-smoke-cntt-{tag}-trivy' + triggers: + - timed: '@weekly' + parameters: + - functest-node: + node: '{node}' + builders: + - functest-trivy: + <<: *functest-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-opnfv-functest-smoke-cntt-trivy' + <<: *functest-params + repo: 'opnfv' + container: 'functest-smoke-cntt' + port: + jobs: + - 'functest-opnfv-functest-smoke-cntt-{tag}-trivy' + +- job-template: + name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-trivy' + triggers: + - timed: '@weekly' + parameters: + - functest-node: + node: '{node}' + builders: + - functest-trivy: + <<: *functest-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-opnfv-functest-benchmarking-cntt-trivy' + <<: *functest-params + repo: 'opnfv' + container: 'functest-benchmarking-cntt' + port: + jobs: + - 'functest-opnfv-functest-benchmarking-cntt-{tag}-trivy' + +- builder: + name: functest-grype + builders: + - shell: | + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 install curl -y + + curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sudo sh -s -- -b . + if [ "{repo}" = "_" ]; then + image={container}:{tag} + elif [ "{port}" = "None" ]; then + image={repo}/{container}:{tag} + else + image={repo}:{port}/{container}:{tag} + fi + ./grype -q $image + +- job-template: + name: 'functest-opnfv-functest-core-{tag}-grype' + triggers: + - timed: '@weekly' + parameters: + - functest-node: + node: '{node}' + builders: + - functest-grype: + <<: *functest-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-opnfv-functest-core-grype' + <<: *functest-params + repo: 'opnfv' + container: 'functest-core' + port: + jobs: + - 'functest-opnfv-functest-core-{tag}-grype' + +- job-template: + name: 'functest-opnfv-functest-healthcheck-{tag}-grype' + triggers: + - timed: '@weekly' + parameters: + - functest-node: + node: '{node}' + builders: + - functest-grype: + <<: *functest-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-opnfv-functest-healthcheck-grype' + <<: *functest-params + repo: 'opnfv' + container: 'functest-healthcheck' + port: + jobs: + - 'functest-opnfv-functest-healthcheck-{tag}-grype' + +- job-template: + name: 'functest-opnfv-functest-smoke-{tag}-grype' + triggers: + - timed: '@weekly' + parameters: + - functest-node: + node: '{node}' + builders: + - functest-grype: + <<: *functest-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-opnfv-functest-smoke-grype' + <<: *functest-params + repo: 'opnfv' + container: 'functest-smoke' + port: + jobs: + - 'functest-opnfv-functest-smoke-{tag}-grype' + +- job-template: + name: 'functest-opnfv-functest-benchmarking-{tag}-grype' + triggers: + - timed: '@weekly' + parameters: + - functest-node: + node: '{node}' + builders: + - functest-grype: + <<: *functest-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-opnfv-functest-benchmarking-grype' + <<: *functest-params + repo: 'opnfv' + container: 'functest-benchmarking' + port: + jobs: + - 'functest-opnfv-functest-benchmarking-{tag}-grype' + +- job-template: + name: 'functest-opnfv-functest-vnf-{tag}-grype' + triggers: + - timed: '@weekly' + parameters: + - functest-node: + node: '{node}' + builders: + - functest-grype: + <<: *functest-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-opnfv-functest-vnf-grype' + <<: *functest-params + repo: 'opnfv' + container: 'functest-vnf' + port: + jobs: + - 'functest-opnfv-functest-vnf-{tag}-grype' + +- job-template: + name: 'functest-opnfv-functest-smoke-cntt-{tag}-grype' + triggers: + - timed: '@weekly' + parameters: + - functest-node: + node: '{node}' + builders: + - functest-grype: + <<: *functest-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-opnfv-functest-smoke-cntt-grype' + <<: *functest-params + repo: 'opnfv' + container: 'functest-smoke-cntt' + port: + jobs: + - 'functest-opnfv-functest-smoke-cntt-{tag}-grype' + +- job-template: + name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-grype' + triggers: + - timed: '@weekly' + parameters: + - functest-node: + node: '{node}' + builders: + - functest-grype: + <<: *functest-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-opnfv-functest-benchmarking-cntt-grype' + <<: *functest-params + repo: 'opnfv' + container: 'functest-benchmarking-cntt' + port: + jobs: + - 'functest-opnfv-functest-benchmarking-cntt-{tag}-grype' + +- builder: + name: functest-sbom + builders: + - shell: | + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 install curl -y + + sudo mkdir -p ~/.docker + curl -sSfL https://raw.githubusercontent.com/docker/sbom-cli-plugin/main/install.sh | sudo sh -s -- + if [ "{repo}" = "_" ]; then + image={container}:{tag} + elif [ "{port}" = "None" ]; then + image={repo}/{container}:{tag} + else + image={repo}:{port}/{container}:{tag} + fi + sudo docker sbom $image + +- job-template: + name: 'functest-opnfv-functest-core-{tag}-sbom' + triggers: + - timed: '@weekly' + parameters: + - functest-node: + node: '{node}' + builders: + - functest-sbom: + <<: *functest-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-opnfv-functest-core-sbom' + <<: *functest-params + repo: 'opnfv' + container: 'functest-core' + port: + jobs: + - 'functest-opnfv-functest-core-{tag}-sbom' + +- job-template: + name: 'functest-opnfv-functest-healthcheck-{tag}-sbom' + triggers: + - timed: '@weekly' + parameters: + - functest-node: + node: '{node}' + builders: + - functest-sbom: + <<: *functest-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-opnfv-functest-healthcheck-sbom' + <<: *functest-params + repo: 'opnfv' + container: 'functest-healthcheck' + port: + jobs: + - 'functest-opnfv-functest-healthcheck-{tag}-sbom' + +- job-template: + name: 'functest-opnfv-functest-smoke-{tag}-sbom' + triggers: + - timed: '@weekly' + parameters: + - functest-node: + node: '{node}' + builders: + - functest-sbom: + <<: *functest-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-opnfv-functest-smoke-sbom' + <<: *functest-params + repo: 'opnfv' + container: 'functest-smoke' + port: + jobs: + - 'functest-opnfv-functest-smoke-{tag}-sbom' + +- job-template: + name: 'functest-opnfv-functest-benchmarking-{tag}-sbom' + triggers: + - timed: '@weekly' + parameters: + - functest-node: + node: '{node}' + builders: + - functest-sbom: + <<: *functest-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-opnfv-functest-benchmarking-sbom' + <<: *functest-params + repo: 'opnfv' + container: 'functest-benchmarking' + port: + jobs: + - 'functest-opnfv-functest-benchmarking-{tag}-sbom' + +- job-template: + name: 'functest-opnfv-functest-vnf-{tag}-sbom' + triggers: + - timed: '@weekly' + parameters: + - functest-node: + node: '{node}' + builders: + - functest-sbom: + <<: *functest-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-opnfv-functest-vnf-sbom' + <<: *functest-params + repo: 'opnfv' + container: 'functest-vnf' + port: + jobs: + - 'functest-opnfv-functest-vnf-{tag}-sbom' + +- job-template: + name: 'functest-opnfv-functest-smoke-cntt-{tag}-sbom' + triggers: + - timed: '@weekly' + parameters: + - functest-node: + node: '{node}' + builders: + - functest-sbom: + <<: *functest-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-opnfv-functest-smoke-cntt-sbom' + <<: *functest-params + repo: 'opnfv' + container: 'functest-smoke-cntt' + port: + jobs: + - 'functest-opnfv-functest-smoke-cntt-{tag}-sbom' + +- job-template: + name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-sbom' + triggers: + - timed: '@weekly' + parameters: + - functest-node: + node: '{node}' + builders: + - functest-sbom: + <<: *functest-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'functest-opnfv-functest-benchmarking-cntt-sbom' + <<: *functest-params + repo: 'opnfv' + container: 'functest-benchmarking-cntt' + port: + jobs: + - 'functest-opnfv-functest-benchmarking-cntt-{tag}-sbom' - view: - name: functest + name: functest-docker + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: ^functest-[a-z0-9.-]+-docker$ + +- view: + name: functest-trivy + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: (?!functest-kubernetes)(?!functest-pi)^functest-[a-z-0-9.]+-trivy$ + +- view: + name: functest-grype view-type: list columns: - status @@ -1335,10 +2648,10 @@ - last-success - last-failure - last-duration - regex: ^functest(-ovn)?-(amd64-)*[a-z]+-daily$ + regex: (?!functest-kubernetes)(?!functest-pi)^functest-[a-z-0-9.]+-grype$ - view: - name: functest-gate + name: functest-sbom view-type: list columns: - status @@ -1347,4 +2660,4 @@ - last-success - last-failure - last-duration - regex: ^functest(-ovn)?-(amd64-)*[a-z]+-gate$ + regex: (?!functest-kubernetes)(?!functest-pi)^functest-[a-z-0-9.]+-sbom$ diff --git a/jjb/functest/xtesting-ci-docker.yaml b/jjb/functest/xtesting-ci-docker.yaml new file mode 100644 index 000000000..c439d1484 --- /dev/null +++ b/jjb/functest/xtesting-ci-docker.yaml @@ -0,0 +1,189 @@ +--- +- builder: + name: xtesting-ci-docker-builder + builders: + - shell: | + cd {dir} + sudo docker build --pull -t {image} . + sudo docker push {image} + sudo docker system prune --all -f + +- builder: + name: xtesting-ci-docker-multiarch-builder + builders: + - shell: | + sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + git clone https://github.com/estesp/manifest-tool + (cd manifest-tool && git checkout v0.9.0 && \ + sudo -E make && sudo -E make install) + (cd {dir} && \ + sudo docker build --pull -t {image}:amd64-{tag} . && \ + sudo docker push {image}:amd64-{tag}) + (cd {dir} && \ + git checkout Dockerfile + sed -i -e "s|{from_amd64}|{to_arm64}|g" Dockerfile + sudo docker build --pull -t {image}:arm64-{tag} . && \ + sudo docker push {image}:arm64-{tag}) + (cd {dir} && \ + git checkout Dockerfile + sed -i -e "s|{from_amd64}|{to_arm}|g" Dockerfile + sudo docker build --pull -t {image}:arm-{tag} . && \ + sudo docker push {image}:arm-{tag}) + sudo manifest-tool push from-args \ + --platforms linux/amd64,linux/arm,linux/arm64 \ + --template {image}:ARCH-{tag} \ + --target {image}:{tag} + sudo docker system prune --all -f + +- scm: + name: xtesting-ci-docker-scm + scm: + - git: + url: https://github.com/collivier/xtesting-docker.git + git-config-name: + git-config-email: + +- trigger: + name: xtesting-ci-docker-trigger + triggers: + - pollscm: + cron: "H/30 * * * *" + - timed: '@daily' + +- parameter: + name: xtesting-ci-docker-parameter + parameters: + - label: + name: node + default: 'xtesting' + +- job-template: + name: xtesting-ci-docker-{stream} + scm: + - xtesting-ci-docker-scm + parameters: + - xtesting-ci-docker-parameter + triggers: + - xtesting-ci-docker-trigger + builders: + - xtesting-ci-docker-builder: + image: '{image}' + dir: '{dir}' + +- job-template: + name: xtesting-ci-docker-multitarch-{stream} + scm: + - xtesting-ci-docker-scm + parameters: + - xtesting-ci-docker-parameter + triggers: + - xtesting-ci-docker-trigger + builders: + - xtesting-ci-docker-multiarch-builder: + image: '{image}' + dir: '{dir}' + tag: '{tag}' + from_amd64: '{from_amd64}' + to_arm64: '{to_arm64}' + to_arm: '{to_arm}' + +- project: + name: xtesting-ci-docker + stream: + - jenkins-lts-slim: + dir: jenkins.debian + image: opnfv/xtesting-jenkins:lts-slim + - jenkins-lts-alpine: + dir: jenkins + image: opnfv/xtesting-jenkins:lts-alpine + - s3www-v0.5.3: + dir: s3www + image: opnfv/xtesting-s3www:v0.5.3 + jobs: + - xtesting-ci-docker-{stream} + +- project: + name: xtesting-ci-docker-multiarch + stream: + - jenkins-agent-debian: + dir: jenkins-agent + image: opnfv/xtesting-jenkins-agent + tag: 4.9-bullseye + from_amd64: debian:bullseye + to_arm64: arm64v8/debian:bullseye + to_arm: arm32v7/debian:bullseye + - jenkins-agent-ubuntu: + dir: jenkins-agent-ubuntu + image: opnfv/xtesting-jenkins-agent + tag: 4.9-jammy + from_amd64: ubuntu:jammy + to_arm64: arm64v8/ubuntu:jammy + to_arm: arm32v7/ubuntu:jammy + - jenkins-agent-auto: + dir: jenkins-agent-auto + image: opnfv/xtesting-jenkins-agent-auto + tag: 4.9-bullseye + from_amd64: opnfv/xtesting-jenkins-agent:4.9-bullseye + to_arm64: opnfv/xtesting-jenkins-agent:arm64-4.9-bullseye + to_arm: opnfv/xtesting-jenkins-agent:arm-4.9-bullseye + jobs: + - xtesting-ci-docker-multitarch-{stream} + +- builder: + name: xtesting-ci-docker-trivy-builder + builders: + - shell: | + curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sudo sh -s -- -b . + ./trivy image --exit-code 1 {image} + +- trigger: + name: xtesting-ci-docker-trivy-trigger + triggers: + - timed: '@daily' + +- parameter: + name: xtesting-ci-docker-trivy-parameter + parameters: + - label: + name: node + default: 'xtesting' + +- job-template: + name: 'xtesting-ci-docker-trivy-{stream}' + triggers: + - xtesting-ci-docker-trivy-trigger + parameters: + - xtesting-ci-docker-trivy-parameter + builders: + - xtesting-ci-docker-trivy-builder: + image: '{image}' + +- project: + name: 'xtesting-ci-docker-trivy' + stream: + - jenkins-lts-slim: + image: opnfv/xtesting-jenkins:lts-slim + - jenkins-lts-alpine: + image: opnfv/xtesting-jenkins:lts-alpine + - s3www-v0.5.3: + image: opnfv/xtesting-s3www:v0.5.3 + - xtesting-jenkins-agent-4.9-bullseye: + image: opnfv/xtesting-jenkins-agent:4.9-bullseye + - xtesting-jenkins-agent-4.9-jammy: + image: opnfv/xtesting-jenkins-agent:4.9-jammy + - xtesting-jenkins-agent-auto-4.9-bullseye: + image: opnfv/xtesting-jenkins-agent-auto:4.9-bullseye + jobs: + - 'xtesting-ci-docker-trivy-{stream}' + +- view: + name: xtesting-ci-docker + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: ^xtesting-ci-docker.*$ diff --git a/jjb/functest/xtesting-ci-vm.yaml b/jjb/functest/xtesting-ci-vm.yaml new file mode 100644 index 000000000..367598fe4 --- /dev/null +++ b/jjb/functest/xtesting-ci-vm.yaml @@ -0,0 +1,233 @@ +--- +- scm: + name: xtesting-ci-vm-scm + scm: + - git: + url: '{url}' + branches: + - '{ref}' + +- builder: + name: xtesting-ci-vm-builder + builders: + - shell: | + curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - + echo "deb https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee \ + /etc/apt/sources.list.d/google-cloud-sdk.list + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + DEBIAN_FRONTEND=noninteractive sudo apt-get \ + -o DPkg::Lock::Timeout=300 install python3-diskimage-builder -y + if [ "{project}" == "xtestingci" ]; then + export ELEMENTS_PATH=$(pwd)/elements + else + git init ansible-role-xtesting + (cd ansible-role-xtesting && + git fetch --tags https://github.com/collivier/ansible-role-xtesting.git {role-version} && + git checkout FETCH_HEAD) + export ELEMENTS_PATH=$(pwd)/elements:$(pwd)/ansible-role-xtesting/elements + fi + export DIB_XTESTINGCI_VERSION={role-version} + disk-image-create --image-size 20 -o {project}-{version}.qcow2 debian vm {project} + gsutil cp {project}-{version}.qcow2 gs://artifacts.opnfv.org/{project}/{project}-{version}.qcow2 + rm -rf {project}-{version}.qcow2 {project}-{version}.d + +- trigger: + name: xtesting-ci-vm-trigger + triggers: + - timed: '@weekly' + +- parameter: + name: xtesting-ci-vm-parameter + parameters: + - label: + name: node + default: 'opnfv-build' + +- job-template: + name: '{project}-{version}-vm' + scm: + - xtesting-ci-vm-scm: + url: '{url}' + ref: '{ref}' + triggers: + - xtesting-ci-vm-trigger + parameters: + - xtesting-ci-vm-parameter + properties: + - build-blocker: + use-build-blocker: true + blocking-level: 'NODE' + blocking-jobs: + - '^.*-vm$' + builders: + - xtesting-ci-vm-builder: + project: '{project}' + version: '{version}' + role-version: '{role-version}' + +- project: + name: 'xtesting-ci-vm' + project: + - xtestingci: + url: https://github.com/collivier/ansible-role-xtesting.git + - xtesting: + url: https://git.opnfv.org/functest-xtesting.git + - functest: + url: https://git.opnfv.org/functest.git + - functest-kubernetes: + url: https://git.opnfv.org/functest-kubernetes.git + version: + - latest: + ref: master + role-version: master + - '2023.2': + ref: stable/2023.2 + role-version: master + - '2023.1': + ref: stable/2023.1 + role-version: master + - zed: + ref: stable/zed + role-version: master + - yoga: + ref: stable/yoga + role-version: master + - xena: + ref: stable/xena + role-version: master + - wallaby: + ref: stable/wallaby + role-version: master + - leguer: + ref: stable/leguer + role-version: master + - kali: + ref: stable/kali + role-version: master + - jerma: + ref: stable/jerma + role-version: master + - v1.28: + ref: stable/v1.28 + role-version: master + - v1.27: + ref: stable/v1.27 + role-version: master + - v1.26: + ref: stable/v1.26 + role-version: master + - v1.25: + ref: stable/v1.25 + role-version: master + - v1.24: + ref: stable/v1.24 + role-version: master + - v1.23: + ref: stable/v1.23 + role-version: master + - v1.22: + ref: stable/v1.22 + role-version: master + exclude: + - project: xtestingci + version: '2023.2' + - project: functest + version: '2023.2' + - project: functest-kubernetes + version: '2023.2' + - project: xtestingci + version: '2023.1' + - project: functest + version: '2023.1' + - project: functest-kubernetes + version: '2023.1' + - project: xtestingci + version: zed + - project: functest-kubernetes + version: zed + - project: xtestingci + version: yoga + - project: functest-kubernetes + version: yoga + - project: xtestingci + version: xena + - project: functest-kubernetes + version: xena + - project: xtestingci + version: wallaby + - project: functest-kubernetes + version: wallaby + - project: xtestingci + version: leguer + - project: xtesting + version: leguer + - project: functest-kubernetes + version: leguer + - project: xtestingci + version: kali + - project: xtesting + version: kali + - project: functest-kubernetes + version: kali + - project: xtestingci + version: jerma + - project: xtesting + version: jerma + - project: functest-kubernetes + version: jerma + - project: xtestingci + version: v1.28 + - project: functest + version: v1.28 + - project: xtesting + version: v1.28 + - project: xtestingci + version: v1.27 + - project: functest + version: v1.27 + - project: xtesting + version: v1.27 + - project: xtestingci + version: v1.26 + - project: functest + version: v1.26 + - project: xtesting + version: v1.26 + - project: xtestingci + version: v1.25 + - project: functest + version: v1.25 + - project: xtesting + version: v1.25 + - project: xtestingci + version: v1.24 + - project: functest + version: v1.24 + - project: xtesting + version: v1.24 + - project: xtestingci + version: v1.23 + - project: functest + version: v1.23 + - project: xtesting + version: v1.23 + - project: xtestingci + version: v1.22 + - project: functest + version: v1.22 + - project: xtesting + version: v1.22 + jobs: + - '{project}-{version}-vm' + +- view: + name: xtesting-ci-vm + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: ^.*-vm$ diff --git a/jjb/functest/xtesting-ci.yaml b/jjb/functest/xtesting-ci.yaml new file mode 100644 index 000000000..9969d538b --- /dev/null +++ b/jjb/functest/xtesting-ci.yaml @@ -0,0 +1,184 @@ +--- +- builder: + name: xtesting-ci-tests + builders: + - shell: | + set +x + sudo apt-get -o DPkg::Lock::Timeout=300 update + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 install python3-pip docker.io podman -y + curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.17.0/kind-linux-amd64 + chmod +x ./kind + sudo mv ./kind /usr/local/bin/kind + kind delete clusters xtesting jenkins gitlab || true + sudo docker ps -aq |xargs sudo docker stop || true + sudo docker ps -aq |xargs sudo docker rm || true + sudo docker system prune -f --all || true + sudo rm -f /etc/systemd/system/docker.service.d/http-proxy.conf + sudo systemctl daemon-reload + sudo systemctl restart docker + sudo podman ps -aq |xargs sudo podman stop || true + sudo podman ps -aq |xargs sudo podman rm || true + sudo rm -rfv /data /tmp/xtesting* + sudo apt-get install ansible patch -y + rm -rf ~/.ansible/roles/collivier.xtesting + case {release} in + stable) + ansible-galaxy install -f collivier.xtesting ;; + *) + ansible-galaxy install -f git+https://github.com/collivier/ansible-role-xtesting.git,{release} + mv ~/.ansible/roles/ansible-role-xtesting ~/.ansible/roles/collivier.xtesting ;; + esac + (cd ~/.ansible/roles/collivier.xtesting; patch -p1 < tests/docker_config_json.patch) + ansible-galaxy collection install -f -r ~/.ansible/roles/collivier.xtesting/requirements.yml + ansible-playbook -vvvv ~/.ansible/roles/collivier.xtesting/tests/{playbook}.yml + +- builder: + name: xtesting-ci-tests-remote + builders: + - shell: | + set +x + ssh opnfv@10.200.140.224 << EOF + sudo apt-get -o DPkg::Lock::Timeout=300 update + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 install python3-pip docker.io podman -y + curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.17.0/kind-linux-amd64 + chmod +x ./kind + sudo mv ./kind /usr/local/bin/kind + kind delete clusters xtesting jenkins gitlab || true + sudo docker ps -aq |xargs sudo docker stop || true + sudo docker ps -aq |xargs sudo docker rm || true + sudo docker system prune -f --all || true + sudo rm -f /etc/systemd/system/docker.service.d/http-proxy.conf + sudo systemctl daemon-reload + sudo systemctl restart docker + sudo podman ps -aq |xargs sudo podman stop || true + sudo podman ps -aq |xargs sudo podman rm || true + sudo rm -rfv /data /tmp/xtesting* + EOF + sudo apt-get install ansible patch -y + rm -rf ~/.ansible/roles/collivier.xtesting + case {release} in + stable) + ansible-galaxy install -f collivier.xtesting ;; + *) + ansible-galaxy install -f git+https://github.com/collivier/ansible-role-xtesting.git,{release} + mv ~/.ansible/roles/ansible-role-xtesting ~/.ansible/roles/collivier.xtesting ;; + esac + (cd ~/.ansible/roles/collivier.xtesting; patch -p1 < tests/docker_config_json.patch) + ansible-galaxy collection install -f -r ~/.ansible/roles/collivier.xtesting/requirements.yml + sed -i "s/127.0.0.1/10.200.140.224/g" ~/.ansible/roles/collivier.xtesting/tests/{playbook}.yml + echo 10.200.140.224 ansible_host=10.200.140.224 ansible_user=opnfv > /tmp/inventory + ansible-playbook -i /tmp/inventory -vvvv ~/.ansible/roles/collivier.xtesting/tests/{playbook}.yml + +- parameter: + name: xtesting-ci-node + parameters: + - label: + name: node + default: '{node}' + +- job-template: + name: 'xtesting-ci-tests-{release}-{playbook}' + triggers: + - timed: '@daily' + parameters: + - xtesting-ci-node: + node: '{node}' + properties: + - build-blocker: + use-build-blocker: true + blocking-level: 'NODE' + blocking-jobs: + - '^xtesting-ci-tests-.*$' + builders: + - xtesting-ci-tests: + playbook: '{playbook}' + release: '{release}' + +- job-template: + name: 'xtesting-ci-tests-remote-{release}-{playbook}' + triggers: + - timed: '@daily' + parameters: + - xtesting-ci-node: + node: '{node}' + properties: + - build-blocker: + use-build-blocker: true + blocking-level: 'NODE' + blocking-jobs: + - '^xtesting-ci-tests-.*$' + builders: + - xtesting-ci-tests-remote: + playbook: '{playbook}' + release: '{release}' + +- playbook: &playbook + name: 'playbook' + playbook: + - all + - podman + - proxy + - proxy2 + - radosgw + - nexus + - repo + - twice + - macro + - branch + - jjb + - https + - https2 + - gitlab.insert + - jenkins_kind + - jenkins_kind2 + - gitlab_kind + - chainedci + - kubernetes0 + - kubernetes1 + - kubernetes2 + - proxy_kubernetes + - proxy_kubernetes2 + - k8s_jenkins_kind0 + - k8s_jenkins_kind1 + - k8s_jenkins_kind2 + - k8s_jenkins_kind3 + - k8s_gitlab0 + - k8s_gitlab1 + - k8s_gitlab_kind0 + - k8s_gitlab_kind1 + - k8s_gitlab_kind2 + - k8s_gitlab_kind3 + +- project: + name: xtesting-ci-tests + <<: *playbook + node: xtestingci + release: + - stable + - master + jobs: + - 'xtesting-ci-tests-{release}-{playbook}' + +- project: + name: xtesting-ci-tests-remote + <<: *playbook + node: xtesting + release: + - stable + - master + jobs: + - 'xtesting-ci-tests-remote-{release}-{playbook}' + +- view: + name: xtesting-ci + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: ^xtesting-ci-tests-.*$ diff --git a/jjb/functest/xtesting-docker.yaml b/jjb/functest/xtesting-docker.yaml deleted file mode 100644 index a2dec355d..000000000 --- a/jjb/functest/xtesting-docker.yaml +++ /dev/null @@ -1,259 +0,0 @@ ---- -############################################## -# job configuration for docker build and push -############################################## -- project: - - name: xtesting-docker - - project: functest-xtesting - - stream: - - master: - branch: '{stream}' - disabled: false - - leguer: - branch: 'stable/{stream}' - disabled: false - - kali: - branch: 'stable/{stream}' - disabled: false - - jerma: - branch: 'stable/{stream}' - disabled: false - - iruya: - branch: 'stable/{stream}' - disabled: false - - hunter: - branch: 'stable/{stream}' - disabled: false - - arch_tag: - - 'amd64': - slave_label: 'lf-build2' - - image: - - 'core' - - 'mts' - - exclude: - - stream: 'kali' - image: 'mts' - - stream: 'jerma' - image: 'mts' - - stream: 'iruya' - image: 'mts' - - stream: 'hunter' - image: 'mts' - - # settings for jobs run in multijob phases - build-job-settings: &build-job-settings - current-parameters: false - git-revision: true - node-parameters: false - predefined-parameters: | - PUSH_IMAGE=$PUSH_IMAGE - COMMIT_ID=$COMMIT_ID - GERRIT_REFNAME=$GERRIT_REFNAME - DOCKERFILE=$DOCKERFILE - kill-phase-on: FAILURE - abort-all-jobs: false - - manifest-job-settings: &manifest-job-settings - current-parameters: false - git-revision: true - node-parameters: false - predefined-parameters: - GERRIT_REFNAME=$GERRIT_REFNAME - kill-phase-on: FAILURE - abort-all-jobs: false - - # yamllint enable rule:key-duplicates - jobs: - - "xtesting-docker-{stream}" - - "xtesting-{image}-docker-build-{arch_tag}-{stream}" - - "xtesting-{image}-docker-manifest-{stream}" - -######################## -# job templates -######################## -- job-template: - name: 'xtesting-docker-{stream}' - - project-type: multijob - - disabled: '{obj:disabled}' - - parameters: - - xtesting-job-parameters: - project: '{project}' - branch: '{branch}' - slave_label: 'lf-build2' - arch_tag: 'amd64' - - properties: - - throttle: - max-per-node: 1 - option: 'project' - - scm: - - git-scm - - triggers: - - pollscm: - cron: "*/30 * * * *" - - gerrit-trigger-tag-created: - project: '{project}' - - builders: - - multijob: - name: 'build xtesting images' - execution-type: PARALLEL - projects: - - name: 'xtesting-core-docker-build-amd64-{stream}' - <<: *build-job-settings - - multijob: - name: 'publish xtesting manifests' - execution-type: PARALLEL - projects: - - name: 'xtesting-core-docker-manifest-{stream}' - <<: *manifest-job-settings - - multijob: - name: 'build xtesting-mts images' - execution-type: PARALLEL - projects: - - name: 'xtesting-mts-docker-build-amd64-{stream}' - <<: *build-job-settings - - multijob: - name: 'publish xtesting-mts manifests' - execution-type: PARALLEL - projects: - - name: 'xtesting-mts-docker-manifest-{stream}' - <<: *manifest-job-settings - - - publishers: - - 'xtesting-amd64-recipients' - -- job-template: - name: 'xtesting-{image}-docker-build-{arch_tag}-{stream}' - disabled: '{obj:disabled}' - parameters: - - xtesting-job-parameters: - project: '{project}' - branch: '{branch}' - slave_label: '{slave_label}' - arch_tag: '{arch_tag}' - scm: - - git-scm - builders: - - shell: | - #!/bin/bash -ex - sudo arch=amd64 amd64_dirs=docker/{image} arm64_dirs= arm_dirs= bash ./build.sh - exit $? - -- job-template: - name: 'xtesting-{image}-docker-manifest-{stream}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - label: - name: SLAVE_LABEL - default: 'lf-build2' - description: 'Slave label on Jenkins' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: PROJECT - default: "{project}" - description: "Project name used to enable job conditions" - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: REPO - default: "opnfv" - description: "Repository name for xtesting images" - - - disabled: '{obj:disabled}' - - builders: - - shell: | - #!/bin/bash -ex - case "{stream}" in - "master") - tag="latest" ;; - *) - tag="{stream}" ;; - esac - case "{image}" in - "core") - img="" ;; - *) - img="-{image}" ;; - esac - sudo manifest-tool push from-args \ - --platforms linux/amd64 \ - --template $REPO/xtesting$img:ARCH-$tag \ - --target $REPO/xtesting$img:$tag - exit $? - -- parameter: - name: xtesting-job-parameters - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - label: - name: SLAVE_LABEL - default: '{slave_label}' - description: 'Slave label on Jenkins' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: PUSH_IMAGE - default: "true" - description: "To enable/disable pushing the image to Dockerhub." - - string: - name: COMMIT_ID - default: "" - description: "commit id to make a snapshot docker image" - - string: - name: GERRIT_REFNAME - default: "" - description: "Docker tag to be built, e.g. refs/tags/5.0.0, refs/tags/opnfv-5.0.0, refs/tags/5.0.RC1" - - string: - name: DOCKERFILE - default: "Dockerfile" - description: "Dockerfile to use for creating the image." - - string: - name: ARCH_TAG - default: "{arch_tag}" - description: "If set, this value will be added to the docker image tag as a prefix" - - string: - name: PROJECT - default: "{project}" - description: "Project name used to enable job conditions" - - string: - name: REPO - default: "opnfv" - description: "Repository name for xtesting images" - -# publisher macros -- publisher: - name: 'xtesting-amd64-recipients' - publishers: - - email: - recipients: > - jalausuch@suse.com morgan.richomme@orange.com - cedric.ollivier@orange.com feng.xiaowei@zte.com.cn - juha.kosonen@nokia.com wangwulin@huawei.com - valentin.boucher@kontron.com diff --git a/jjb/functest/xtesting-pi.yaml b/jjb/functest/xtesting-pi.yaml index ef4609f6c..86ac98f30 100644 --- a/jjb/functest/xtesting-pi.yaml +++ b/jjb/functest/xtesting-pi.yaml @@ -1,74 +1,116 @@ --- -- xtesting-pi-jobs: &xtesting-pi-jobs - name: 'xtesting-pi-jobs' - current-parameters: true +- xtesting-pi-containers: &xtesting-pi-containers + name: 'xtesting-pi-containers' + repo: '{repo}' + port: '{port}' + container: '{container}' + tag: '{tag}' - xtesting-pi-params: &xtesting-pi-params name: 'xtesting-pi-params' + tag: + - latest: + node: opnfv-build + - 2023.2: + node: opnfv-build + - 2023.1: + node: opnfv-build + - zed: + node: opnfv-build + - yoga: + node: opnfv-build + - xena: + node: opnfv-build + - wallaby: + node: opnfv-build + - arm-latest: + node: opnfv-build + - arm-2.23.2: + node: opnfv-build + - arm-2.23.1: + node: opnfv-build + - arm-zed: + node: opnfv-build + - arm-yoga: + node: opnfv-build + - arm-xena: + node: opnfv-build + - arm-wallaby: + node: opnfv-build + - arm64-latest: + node: opnfv-build + - arm64-2023.2: + node: opnfv-build + - arm64-2023.1: + node: opnfv-build + - arm64-zed: + node: opnfv-build + - arm64-yoga: + node: opnfv-build + - arm64-xena: + node: opnfv-build + - arm64-wallaby: + node: opnfv-build + +- xtesting-pi-ollivier-xtesting-params: &xtesting-pi-ollivier-xtesting-params + name: 'xtesting-pi-ollivier-xtesting-params' repo: 'ollivier' + container: 'xtesting' port: tag: - latest: - branch: master - slave: lf-virtual1 - - leguer: - branch: stable/leguer - slave: lf-virtual1 - - kali: - branch: stable/kali - slave: lf-virtual1 - - jerma: - branch: stable/jerma - slave: lf-virtual1 - - iruya: - branch: stable/iruya - slave: lf-virtual1 - - hunter: - branch: stable/hunter - slave: lf-virtual1 + node: opnfv-build + - 2023.2: + node: opnfv-build + - 2023.1: + node: opnfv-build + - zed: + node: opnfv-build + - yoga: + node: opnfv-build + - xena: + node: opnfv-build + - wallaby: + node: opnfv-build - arm-latest: - branch: master - slave: lf-virtual1 - - arm-leguer: - branch: stable/leguer - slave: lf-virtual1 - - arm-kali: - branch: stable/kali - slave: lf-virtual1 - - arm-jerma: - branch: stable/jerma - slave: lf-virtual1 - - arm-iruya: - branch: stable/iruya - slave: lf-virtual1 - - arm-hunter: - branch: stable/hunter - slave: lf-virtual1 + node: opnfv-build + - arm-2.23.2: + node: opnfv-build + - arm-2.23.1: + node: opnfv-build + - arm-zed: + node: opnfv-build + - arm-yoga: + node: opnfv-build + - arm-xena: + node: opnfv-build + - arm-wallaby: + node: opnfv-build - arm64-latest: - branch: master - slave: lf-virtual1 - - arm64-leguer: - branch: stable/leguer - slave: lf-virtual1 - - arm64-kali: - branch: stable/kali - slave: lf-virtual1 - - arm64-jerma: - branch: stable/jerma - slave: lf-virtual1 - - arm64-iruya: - branch: stable/iruya - slave: lf-virtual1 - - arm64-hunter: - branch: stable/hunter - slave: lf-virtual1 + node: opnfv-build + - arm64-2023.2: + node: opnfv-build + - arm64-2023.1: + node: opnfv-build + - arm64-zed: + node: opnfv-build + - arm64-yoga: + node: opnfv-build + - arm64-xena: + node: opnfv-build + - arm64-wallaby: + node: opnfv-build + +- xtesting-pi-jobs: &xtesting-pi-jobs + name: 'xtesting-pi-jobs' + current-parameters: true - parameter: - name: xtesting-pi-slave + name: xtesting-pi-node parameters: - label: - name: slave - default: '{slave}' + name: node + default: '{node}' - parameter: name: xtesting-pi-build_tag @@ -76,33 +118,16 @@ - random-string: name: build_tag -- parameter: - name: xtesting-pi-branch - parameters: - - string: - name: branch - default: '{branch}' - -- parameter: - name: xtesting-pi-DEBUG - parameters: - - string: - name: DEBUG - default: 'true' - -- xtesting-pi-containers: &xtesting-pi-containers - name: 'xtesting-pi-containers' - repo: '{repo}' - port: '{port}' - container: '{container}' - tag: '{tag}' - - xtesting-pi-run-containers: &xtesting-pi-run-containers name: 'xtesting-pi-run-containers' <<: *xtesting-pi-containers - test: '{test}' privileged: '{privileged}' + volumes: '{volumes}' + env: '{env}' network: '{network}' + uid: '{uid}' + gid: '{gid}' + published_ports: '{published_ports}' - builder: name: xtesting-pi-pull-containers @@ -123,7 +148,22 @@ builders: - shell: | set +x - [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true + volumes=; + if [ "{volumes}" != "None" ]; then + for i in $(echo {volumes} | tr -d '[]' |sed "s/, / /g" ); \ + do volumes="-v $i $volumes"; done + fi + env=; + if [ "{env}" != "None" ]; then + for i in $(eval echo {env} | tr -d '[]' |sed "s/, / /g" ); \ + do env="-e $i $env"; done + fi + published_ports=; + if [ "{published_ports}" != "None" ]; then + for i in $(echo {published_ports} | tr -d '[]' |sed "s/, / /g" ); \ + do published_ports="-p $i $published_ports"; done + fi + [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true if [ "{repo}" = "_" ]; then image={container}:{tag} elif [ "{port}" = "None" ]; then @@ -131,19 +171,23 @@ else image={repo}:{port}/{container}:{tag} fi + sudo mkdir -p $WORKSPACE/results + sudo chown {uid}:{gid} $WORKSPACE/results sudo docker run --rm \ --privileged={privileged} \ --network={network} \ + $volumes \ + $env \ + $published_ports \ -e S3_ENDPOINT_URL=https://storage.googleapis.com \ -e S3_DST_URL=s3://artifacts.opnfv.org/xtesting/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ -e HTTP_DST_URL=http://artifacts.opnfv.org/xtesting/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ + -v /home/opnfv/xtesting/.boto:/etc/boto.cfg \ -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \ - -e NODE_NAME=$slave \ + -e NODE_NAME=$node \ -e BUILD_TAG=$BUILD_TAG \ -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ - -e DEBUG=$DEBUG \ - -v /home/opnfv/xtesting/.boto:/root/.boto \ $image run_tests -t {test} -p -r - builder: @@ -160,99 +204,54 @@ fi sudo docker rmi $image || true - - job-template: - name: 'xtesting-pi-{repo}-{container}-{tag}-pull' + name: 'xtesting-pi-ollivier-xtesting-{tag}-pull' parameters: - - xtesting-pi-slave: - slave: '{slave}' + - xtesting-pi-node: + node: '{node}' builders: - xtesting-pi-pull-containers: <<: *xtesting-pi-containers - project: name: 'xtesting-pi-ollivier-xtesting-pull' - <<: *xtesting-pi-params - container: 'xtesting' + <<: *xtesting-pi-ollivier-xtesting-params jobs: - - 'xtesting-pi-{repo}-{container}-{tag}-pull' - -- project: - name: 'xtesting-pi-ollivier-xtesting-mts-pull' - <<: *xtesting-pi-params - container: 'xtesting-mts' - exclude: - - tag: hunter - - tag: iruya - - tag: jerma - - tag: kali - - tag: arm-hunter - - tag: arm-iruya - - tag: arm-jerma - - tag: arm-kali - - tag: arm-leguer - - tag: arm-latest - - tag: arm64-hunter - - tag: arm64-iruya - - tag: arm64-jerma - - tag: arm64-kali - jobs: - - 'xtesting-pi-{repo}-{container}-{tag}-pull' + - 'xtesting-pi-ollivier-xtesting-{tag}-pull' - job-template: - name: 'xtesting-pi-{repo}-{container}-{tag}-rmi' + name: 'xtesting-pi-ollivier-xtesting-{tag}-rmi' parameters: - - xtesting-pi-slave: - slave: '{slave}' + - xtesting-pi-node: + node: '{node}' builders: - xtesting-pi-remove-images: <<: *xtesting-pi-containers - project: name: 'xtesting-pi-ollivier-xtesting-rmi' - <<: *xtesting-pi-params - container: 'xtesting' + <<: *xtesting-pi-ollivier-xtesting-params jobs: - - 'xtesting-pi-{repo}-{container}-{tag}-rmi' - -- project: - name: 'xtesting-pi-ollivier-xtesting-mts-rmi' - <<: *xtesting-pi-params - container: 'xtesting-mts' - exclude: - - tag: hunter - - tag: iruya - - tag: jerma - - tag: kali - - tag: arm-hunter - - tag: arm-iruya - - tag: arm-jerma - - tag: arm-kali - - tag: arm-leguer - - tag: arm-latest - - tag: arm64-hunter - - tag: arm64-iruya - - tag: arm64-jerma - - tag: arm64-kali - jobs: - - 'xtesting-pi-{repo}-{container}-{tag}-rmi' + - 'xtesting-pi-ollivier-xtesting-{tag}-rmi' - job-template: - name: 'xtesting-pi-{repo}-{container}-{tag}-{test}-run' + name: 'xtesting-pi-ollivier-xtesting-{tag}-{test}-run' parameters: - - xtesting-pi-slave: - slave: '{slave}' + - xtesting-pi-node: + node: '{node}' - xtesting-pi-build_tag: build_tag: '' - - xtesting-pi-DEBUG: - DEBUG: 'true' builders: - xtesting-pi-run-containers: <<: *xtesting-pi-run-containers + test: '{test}' - project: name: 'xtesting-pi-ollivier-xtesting' - <<: *xtesting-pi-params + <<: *xtesting-pi-ollivier-xtesting-params + volumes: + env: + published_ports: container: 'xtesting' test: - first @@ -261,71 +260,41 @@ - fourth - fifth - sixth - exclude: - - tag: hunter - test: sixth - - tag: iruya - test: sixth - - tag: arm-hunter - test: sixth - - tag: arm-iruya - test: sixth - - tag: arm64-hunter - test: sixth - - tag: arm64-iruya - test: sixth + - eighth + - nineth privileged: 'false' network: bridge - jobs: - - 'xtesting-pi-{repo}-{container}-{tag}-{test}-run' - -- project: - name: 'xtesting-pi-ollivier-xtesting-mts' - <<: *xtesting-pi-params - container: 'xtesting-mts' - test: - - seventh + uid: 1000 + gid: 1000 exclude: - - tag: hunter - test: seventh - - tag: iruya - test: seventh - - tag: jerma - test: seventh - - tag: kali - test: seventh - - tag: arm-hunter - test: seventh - - tag: arm-iruya - test: seventh - - tag: arm-jerma - test: seventh - - tag: arm-kali - test: seventh - - tag: arm-leguer - test: seventh - - tag: arm-latest - test: seventh - - tag: arm64-hunter - test: seventh - - tag: arm64-iruya - test: seventh - - tag: arm64-jerma - test: seventh - - tag: arm64-kali - test: seventh - privileged: 'false' - network: bridge + - tag: wallaby + test: nineth + - tag: xena + test: nineth jobs: - - 'xtesting-pi-{repo}-{container}-{tag}-{test}-run' - + - 'xtesting-pi-ollivier-xtesting-{tag}-{test}-run' - builder: name: xtesting-pi-zip builders: - shell: | set +x - [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true + volumes=; + if [ "{volumes}" != "None" ]; then + for i in $(echo {volumes} | tr -d '[]' |sed "s/, / /g" ); \ + do volumes="-v $i $volumes"; done + fi + env=; + if [ "{env}" != "None" ]; then + for i in $(eval echo {env} | tr -d '[]' |sed "s/, / /g" ); \ + do env="-e $i $env"; done + fi + published_ports=; + if [ "{published_ports}" != "None" ]; then + for i in $(echo {published_ports} | tr -d '[]' |sed "s/, / /g" ); \ + do published_ports="-p $i $published_ports"; done + fi + [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true if [ "{repo}" = "_" ]; then image={container}:{tag} elif [ "{port}" = "None" ]; then @@ -333,35 +302,47 @@ else image={repo}:{port}/{container}:{tag} fi + sudo mkdir -p $WORKSPACE/results + sudo chown {uid}:{gid} $WORKSPACE/results sudo docker run --rm \ + --privileged={privileged} \ + --network={network} \ + $volumes \ + $env \ + $published_ports \ -e S3_ENDPOINT_URL=https://storage.googleapis.com \ -e S3_DST_URL=s3://artifacts.opnfv.org/xtesting \ -e HTTP_DST_URL=http://artifacts.opnfv.org/xtesting \ + -v /home/opnfv/xtesting/.boto:/etc/boto.cfg \ -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \ + -e NODE_NAME=$node \ -e BUILD_TAG=$BUILD_TAG \ -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ - -e DEBUG=$DEBUG \ - -v /home/opnfv/xtesting/.boto:/root/.boto \ $image zip_campaign - job-template: name: 'xtesting-pi-{tag}-zip' parameters: - - xtesting-pi-slave: - slave: '{slave}' + - xtesting-pi-node: + node: '{node}' - xtesting-pi-build_tag: build_tag: '' - - xtesting-pi-DEBUG: - DEBUG: 'true' builders: - xtesting-pi-zip: - <<: *xtesting-pi-containers + <<: *xtesting-pi-run-containers - project: - name: 'xtesting-pi-{tag}-zip' - <<: *xtesting-pi-params + name: 'xtesting-pi-zip' + <<: *xtesting-pi-ollivier-xtesting-params + volumes: + env: + published_ports: container: 'xtesting' + privileged: 'false' + network: bridge + uid: 1000 + gid: 1000 jobs: - 'xtesting-pi-{tag}-zip' @@ -371,33 +352,29 @@ triggers: - timed: '@daily' parameters: - - xtesting-pi-slave: - slave: '{slave}' + - xtesting-pi-node: + node: '{node}' - xtesting-pi-build_tag: build_tag: '' - - xtesting-pi-DEBUG: - DEBUG: 'true' + # PyYAML and yamllint differ here + # see https://github.com/yaml/pyyaml/issues/234 + # yamllint disable rule:indentation properties: - build-blocker: - use-build-blocker: true - blocking-level: 'NODE' blocking-jobs: - - '^xtesting-pi-{tag}-(daily|check|gate)$' + - ^xtesting-(pi-)*{tag}-(daily|docker|review)$ + # yamllint enable rule:indentation builders: - multijob: name: remove former images projects: - name: 'xtesting-pi-ollivier-xtesting-{tag}-rmi' <<: *xtesting-pi-jobs - - name: 'xtesting-pi-ollivier-xtesting-mts-{tag}-rmi' - <<: *xtesting-pi-jobs - multijob: name: pull containers projects: - name: 'xtesting-pi-ollivier-xtesting-{tag}-pull' <<: *xtesting-pi-jobs - - name: 'xtesting-pi-ollivier-xtesting-mts-{tag}-pull' - <<: *xtesting-pi-jobs - multijob: name: ollivier/xtesting:{tag} projects: @@ -413,20 +390,24 @@ <<: *xtesting-pi-jobs - name: 'xtesting-pi-ollivier-xtesting-{tag}-sixth-run' <<: *xtesting-pi-jobs - - multijob: - name: ollivier/xtesting-mts:{tag} - projects: - - name: 'xtesting-pi-ollivier-xtesting-mts-{tag}-seventh-run' + - name: 'xtesting-pi-ollivier-xtesting-{tag}-eighth-run' + <<: *xtesting-pi-jobs + - name: 'xtesting-pi-ollivier-xtesting-{tag}-nineth-run' <<: *xtesting-pi-jobs - multijob: name: dump all campaign data projects: - name: 'xtesting-pi-{tag}-zip' <<: *xtesting-pi-jobs - + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com - project: - name: 'xtesting-pi' + name: 'xtesting-pi-daily' <<: *xtesting-pi-params jobs: - 'xtesting-pi-{tag}-daily' @@ -441,4 +422,4 @@ - last-success - last-failure - last-duration - regex: ^xtesting-pi-(arm.*-|amd64-)*[a-z]+-daily$ + regex: ^xtesting-pi-[a-z-0-9.]+-daily$ diff --git a/jjb/functest/xtesting-project-jobs.yaml b/jjb/functest/xtesting-project-jobs.yaml deleted file mode 100644 index 1a42d413f..000000000 --- a/jjb/functest/xtesting-project-jobs.yaml +++ /dev/null @@ -1,86 +0,0 @@ ---- -- xtesting-project-params: &xtesting-project-params - name: 'xtesting-project-params' - tag: - - latest: - branch: master - slave: lf-virtual1 - - leguer: - branch: stable/leguer - slave: lf-virtual1 - - kali: - branch: stable/kali - slave: lf-virtual1 - - jerma: - branch: stable/jerma - slave: lf-virtual1 - - iruya: - branch: stable/iruya - slave: lf-virtual1 - - hunter: - branch: stable/hunter - slave: lf-virtual1 - -- builder: - name: xtesting-run-tox - builders: - - shell: tox - -- trigger: - name: xtesting-project-patchset-created - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: 'functest-xtesting' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - skip-vote: - successful: false - failed: false - unstable: false - notbuilt: false - -- parameter: - name: xtesting-project-slave - parameters: - - label: - name: slave - default: '{slave}' - -- scm: - name: xtesting-project-scm - scm: - - git: - url: https://gerrit.opnfv.org/gerrit/functest-xtesting - refspec: '+refs/changes/*:refs/changes/*' - branches: - - '{ref}' - -- job-template: - name: 'xtesting-run-tox-{tag}' - triggers: - - xtesting-project-patchset-created: - branch: '{branch}' - scm: - - xtesting-project-scm: - ref: $GERRIT_REFSPEC - parameters: - - xtesting-project-slave: - slave: '{slave}' - builders: - - xtesting-run-tox - -- project: - name: 'xtesting-run-tox' - <<: *xtesting-project-params - jobs: - - 'xtesting-run-tox-{tag}' diff --git a/jjb/functest/xtesting.yaml b/jjb/functest/xtesting.yaml index 640e3492b..fbd8ba445 100644 --- a/jjb/functest/xtesting.yaml +++ b/jjb/functest/xtesting.yaml @@ -1,38 +1,116 @@ --- -- xtesting-jobs: &xtesting-jobs - name: 'xtesting-jobs' - current-parameters: true +- xtesting-containers: &xtesting-containers + name: 'xtesting-containers' + repo: '{repo}' + port: '{port}' + container: '{container}' + tag: '{tag}' - xtesting-params: &xtesting-params name: 'xtesting-params' + tag: + - latest: + from: + build_args: + branch: master + node: opnfv-build + dependency: 3.17 + - 2023.2: + from: + build_args: + branch: stable/2023.2 + node: opnfv-build + dependency: 3.17 + - 2023.1: + from: + build_args: + branch: stable/2023.1 + node: opnfv-build + dependency: 3.17 + - zed: + from: + build_args: + branch: stable/zed + node: opnfv-build + dependency: 3.16 + - yoga: + from: + build_args: + branch: stable/yoga + node: opnfv-build + dependency: 3.16 + - xena: + from: + build_args: + branch: stable/xena + node: opnfv-build + dependency: 3.14 + - wallaby: + from: + build_args: + branch: stable/wallaby + node: opnfv-build + dependency: 3.13 + +- xtesting-opnfv-xtesting-params: &xtesting-opnfv-xtesting-params + name: 'xtesting-opnfv-xtesting-params' repo: 'opnfv' + container: 'xtesting' port: tag: - latest: + from: + build_args: branch: master - slave: lf-virtual1 - - leguer: - branch: stable/leguer - slave: lf-virtual1 - - kali: - branch: stable/kali - slave: lf-virtual1 - - jerma: - branch: stable/jerma - slave: lf-virtual1 - - iruya: - branch: stable/iruya - slave: lf-virtual1 - - hunter: - branch: stable/hunter - slave: lf-virtual1 + node: opnfv-build + dependency: 3.17 + - 2023.2: + from: + build_args: + branch: stable/2023.2 + node: opnfv-build + dependency: 3.17 + - 2023.1: + from: + build_args: + branch: stable/2023.1 + node: opnfv-build + dependency: 3.17 + - zed: + from: + build_args: + branch: stable/zed + node: opnfv-build + dependency: 3.16 + - yoga: + from: + build_args: + branch: stable/yoga + node: opnfv-build + dependency: 3.16 + - xena: + from: + build_args: + branch: stable/xena + node: opnfv-build + dependency: 3.14 + - wallaby: + from: + build_args: + branch: stable/wallaby + node: opnfv-build + dependency: 3.13 + +- xtesting-jobs: &xtesting-jobs + name: 'xtesting-jobs' + current-parameters: true - parameter: - name: xtesting-slave + name: xtesting-node parameters: - label: - name: slave - default: '{slave}' + name: node + default: '{node}' - parameter: name: xtesting-build_tag @@ -40,33 +118,16 @@ - random-string: name: build_tag -- parameter: - name: xtesting-branch - parameters: - - string: - name: branch - default: '{branch}' - -- parameter: - name: xtesting-DEBUG - parameters: - - string: - name: DEBUG - default: 'true' - -- xtesting-containers: &xtesting-containers - name: 'xtesting-containers' - repo: '{repo}' - port: '{port}' - container: '{container}' - tag: '{tag}' - - xtesting-run-containers: &xtesting-run-containers name: 'xtesting-run-containers' <<: *xtesting-containers - test: '{test}' privileged: '{privileged}' + volumes: '{volumes}' + env: '{env}' network: '{network}' + uid: '{uid}' + gid: '{gid}' + published_ports: '{published_ports}' - builder: name: xtesting-pull-containers @@ -87,7 +148,22 @@ builders: - shell: | set +x - [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true + volumes=; + if [ "{volumes}" != "None" ]; then + for i in $(echo {volumes} | tr -d '[]' |sed "s/, / /g" ); \ + do volumes="-v $i $volumes"; done + fi + env=; + if [ "{env}" != "None" ]; then + for i in $(eval echo {env} | tr -d '[]' |sed "s/, / /g" ); \ + do env="-e $i $env"; done + fi + published_ports=; + if [ "{published_ports}" != "None" ]; then + for i in $(echo {published_ports} | tr -d '[]' |sed "s/, / /g" ); \ + do published_ports="-p $i $published_ports"; done + fi + [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true if [ "{repo}" = "_" ]; then image={container}:{tag} elif [ "{port}" = "None" ]; then @@ -95,19 +171,23 @@ else image={repo}:{port}/{container}:{tag} fi + sudo mkdir -p $WORKSPACE/results + sudo chown {uid}:{gid} $WORKSPACE/results sudo docker run --rm \ --privileged={privileged} \ --network={network} \ + $volumes \ + $env \ + $published_ports \ -e S3_ENDPOINT_URL=https://storage.googleapis.com \ -e S3_DST_URL=s3://artifacts.opnfv.org/xtesting/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ -e HTTP_DST_URL=http://artifacts.opnfv.org/xtesting/$BUILD_TAG/$JOB_NAME-$BUILD_ID \ + -v /home/opnfv/xtesting/.boto:/etc/boto.cfg \ -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \ - -e NODE_NAME=$slave \ + -e NODE_NAME=$node \ -e BUILD_TAG=$BUILD_TAG \ -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ - -e DEBUG=$DEBUG \ - -v /home/opnfv/xtesting/.boto:/root/.boto \ $image run_tests -t {test} -p -r - builder: @@ -124,120 +204,54 @@ fi sudo docker rmi $image || true -- xtesting-build-containers: &xtesting-build-containers - name: 'xtesting-build-containers' - <<: *xtesting-containers - ref_arg: '{ref_arg}' - path: '{path}' - -- builder: - name: xtesting-build-containers - builders: - - shell: | - set +x - if [ "{repo}" = "_" ]; then - image={container}:{tag} - elif [ "{port}" = "None" ]; then - image={repo}/{container}:{tag} - else - image={repo}:{port}/{container}:{tag} - fi - if [ "{ref_arg}" = "None" ]; then - build_arg="" - else - build_arg="--build-arg {ref_arg}={ref}" - fi - case {tag} in - *latest|*leguer) - cd {path};; - *) - cd docker;; - esac - sudo docker build $build_arg \ - --pull=false --no-cache --force-rm=true \ - -t $image . - -- scm: - name: xtesting-scm - scm: - - git: - url: https://gerrit.opnfv.org/gerrit/functest-xtesting - refspec: '+refs/changes/*:refs/changes/*' - branches: - - '{ref}' - - job-template: - name: 'xtesting-{repo}-{container}-{tag}-pull' + name: 'xtesting-opnfv-xtesting-{tag}-pull' parameters: - - xtesting-slave: - slave: '{slave}' + - xtesting-node: + node: '{node}' builders: - xtesting-pull-containers: <<: *xtesting-containers - project: name: 'xtesting-opnfv-xtesting-pull' - <<: *xtesting-params - container: 'xtesting' + <<: *xtesting-opnfv-xtesting-params jobs: - - 'xtesting-{repo}-{container}-{tag}-pull' - -- project: - name: 'xtesting-opnfv-xtesting-mts-pull' - <<: *xtesting-params - container: 'xtesting-mts' - exclude: - - tag: hunter - - tag: iruya - - tag: jerma - - tag: kali - jobs: - - 'xtesting-{repo}-{container}-{tag}-pull' + - 'xtesting-opnfv-xtesting-{tag}-pull' - job-template: - name: 'xtesting-{repo}-{container}-{tag}-rmi' + name: 'xtesting-opnfv-xtesting-{tag}-rmi' parameters: - - xtesting-slave: - slave: '{slave}' + - xtesting-node: + node: '{node}' builders: - xtesting-remove-images: <<: *xtesting-containers - project: name: 'xtesting-opnfv-xtesting-rmi' - <<: *xtesting-params - container: 'xtesting' + <<: *xtesting-opnfv-xtesting-params jobs: - - 'xtesting-{repo}-{container}-{tag}-rmi' - -- project: - name: 'xtesting-opnfv-xtesting-mts-rmi' - <<: *xtesting-params - container: 'xtesting-mts' - exclude: - - tag: hunter - - tag: iruya - - tag: jerma - - tag: kali - jobs: - - 'xtesting-{repo}-{container}-{tag}-rmi' + - 'xtesting-opnfv-xtesting-{tag}-rmi' - job-template: - name: 'xtesting-{repo}-{container}-{tag}-{test}-run' + name: 'xtesting-opnfv-xtesting-{tag}-{test}-run' parameters: - - xtesting-slave: - slave: '{slave}' + - xtesting-node: + node: '{node}' - xtesting-build_tag: build_tag: '' - - xtesting-DEBUG: - DEBUG: 'true' builders: - xtesting-run-containers: <<: *xtesting-run-containers + test: '{test}' - project: name: 'xtesting-opnfv-xtesting' - <<: *xtesting-params + <<: *xtesting-opnfv-xtesting-params + volumes: + env: + published_ports: container: 'xtesting' test: - first @@ -246,42 +260,41 @@ - fourth - fifth - sixth - exclude: - - tag: hunter - test: sixth - - tag: iruya - test: sixth + - eighth + - nineth privileged: 'false' network: bridge - jobs: - - 'xtesting-{repo}-{container}-{tag}-{test}-run' - -- project: - name: 'xtesting-opnfv-xtesting-mts' - <<: *xtesting-params - container: 'xtesting-mts' - test: - - seventh + uid: 1000 + gid: 1000 exclude: - - tag: hunter - test: seventh - - tag: iruya - test: seventh - - tag: jerma - test: seventh - - tag: kali - test: seventh - privileged: 'false' - network: bridge + - tag: wallaby + test: nineth + - tag: xena + test: nineth jobs: - - 'xtesting-{repo}-{container}-{tag}-{test}-run' + - 'xtesting-opnfv-xtesting-{tag}-{test}-run' - builder: name: xtesting-zip builders: - shell: | set +x - [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true + volumes=; + if [ "{volumes}" != "None" ]; then + for i in $(echo {volumes} | tr -d '[]' |sed "s/, / /g" ); \ + do volumes="-v $i $volumes"; done + fi + env=; + if [ "{env}" != "None" ]; then + for i in $(eval echo {env} | tr -d '[]' |sed "s/, / /g" ); \ + do env="-e $i $env"; done + fi + published_ports=; + if [ "{published_ports}" != "None" ]; then + for i in $(echo {published_ports} | tr -d '[]' |sed "s/, / /g" ); \ + do published_ports="-p $i $published_ports"; done + fi + [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true if [ "{repo}" = "_" ]; then image={container}:{tag} elif [ "{port}" = "None" ]; then @@ -289,35 +302,47 @@ else image={repo}:{port}/{container}:{tag} fi + sudo mkdir -p $WORKSPACE/results + sudo chown {uid}:{gid} $WORKSPACE/results sudo docker run --rm \ + --privileged={privileged} \ + --network={network} \ + $volumes \ + $env \ + $published_ports \ -e S3_ENDPOINT_URL=https://storage.googleapis.com \ -e S3_DST_URL=s3://artifacts.opnfv.org/xtesting \ -e HTTP_DST_URL=http://artifacts.opnfv.org/xtesting \ + -v /home/opnfv/xtesting/.boto:/etc/boto.cfg \ -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \ -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \ + -e NODE_NAME=$node \ -e BUILD_TAG=$BUILD_TAG \ -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ - -e DEBUG=$DEBUG \ - -v /home/opnfv/xtesting/.boto:/root/.boto \ $image zip_campaign - job-template: name: 'xtesting-{tag}-zip' parameters: - - xtesting-slave: - slave: '{slave}' + - xtesting-node: + node: '{node}' - xtesting-build_tag: build_tag: '' - - xtesting-DEBUG: - DEBUG: 'true' builders: - xtesting-zip: - <<: *xtesting-containers + <<: *xtesting-run-containers - project: - name: 'xtesting-{tag}-zip' - <<: *xtesting-params + name: 'xtesting-zip' + <<: *xtesting-opnfv-xtesting-params + volumes: + env: + published_ports: container: 'xtesting' + privileged: 'false' + network: bridge + uid: 1000 + gid: 1000 jobs: - 'xtesting-{tag}-zip' @@ -327,33 +352,29 @@ triggers: - timed: '@daily' parameters: - - xtesting-slave: - slave: '{slave}' + - xtesting-node: + node: '{node}' - xtesting-build_tag: build_tag: '' - - xtesting-DEBUG: - DEBUG: 'true' + # PyYAML and yamllint differ here + # see https://github.com/yaml/pyyaml/issues/234 + # yamllint disable rule:indentation properties: - build-blocker: - use-build-blocker: true - blocking-level: 'NODE' blocking-jobs: - - '^xtesting-{tag}-(daily|check|gate)$' + - ^xtesting-(pi-)*{tag}-(daily|docker|review)$ + # yamllint enable rule:indentation builders: - multijob: name: remove former images projects: - name: 'xtesting-opnfv-xtesting-{tag}-rmi' <<: *xtesting-jobs - - name: 'xtesting-opnfv-xtesting-mts-{tag}-rmi' - <<: *xtesting-jobs - multijob: name: pull containers projects: - name: 'xtesting-opnfv-xtesting-{tag}-pull' <<: *xtesting-jobs - - name: 'xtesting-opnfv-xtesting-mts-{tag}-pull' - <<: *xtesting-jobs - multijob: name: opnfv/xtesting:{tag} projects: @@ -369,162 +390,215 @@ <<: *xtesting-jobs - name: 'xtesting-opnfv-xtesting-{tag}-sixth-run' <<: *xtesting-jobs - - multijob: - name: opnfv/xtesting-mts:{tag} - projects: - - name: 'xtesting-opnfv-xtesting-mts-{tag}-seventh-run' + - name: 'xtesting-opnfv-xtesting-{tag}-eighth-run' + <<: *xtesting-jobs + - name: 'xtesting-opnfv-xtesting-{tag}-nineth-run' <<: *xtesting-jobs - multijob: name: dump all campaign data projects: - name: 'xtesting-{tag}-zip' <<: *xtesting-jobs + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com -- job-template: - name: 'xtesting-{repo}-{container}-{tag}-gate' - parameters: - - xtesting-slave: - slave: '{slave}' - scm: - - xtesting-scm: - ref: $GERRIT_REFSPEC +- project: + name: 'xtesting-daily' + <<: *xtesting-params + jobs: + - 'xtesting-{tag}-daily' + +- view: + name: xtesting + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: ^xtesting-[a-z0-9.-]+-daily$ + +- xtesting-build-containers: &xtesting-build-containers + name: 'xtesting-build-containers' + <<: *xtesting-containers + ref_arg: '{ref_arg}' + path: '{path}' + build_args: '{build_args}' + from: '{from}' + +- builder: + name: xtesting-build-containers builders: - - xtesting-build-containers: - <<: *xtesting-build-containers - ref: $GERRIT_REFSPEC + - shell: | + set +x + if [ "{repo}" = "_" ]; then + image={container}:{tag} + elif [ "{port}" = "None" ]; then + image={repo}/{container}:{tag} + else + image={repo}:{port}/{container}:{tag} + fi + build_args="" + if [ "{build_args}" != "None" ]; then + for i in $(echo {build_args} | tr -d '[]' |sed "s/, / /g" ); \ + do build_args="--build-arg $i $build_args"; done + fi + if [ "{ref_arg}" != "None" ]; then + build_args="$build_args --build-arg {ref_arg}={ref}" + fi + cd {path} + if [ "{from}" != "None" ]; then + sed -i {from} Dockerfile + fi + sudo docker build $build_args \ + --pull=false --no-cache --force-rm=true \ + -t $image . + +- scm: + name: xtesting-scm + scm: + - git: + url: 'https://gerrit.opnfv.org/gerrit/functest-xtesting' + refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*' + branches: + - '{ref}' + +- xtesting-dep: &xtesting-dep + name: 'xtesting-containers' + repo: '{repo}' + container: '{container}' + port: '{port}' + tag: '{dependency}' - job-template: - name: 'xtesting-{repo}-{container}-{tag}-check' + name: 'xtesting-{tag}-dep-pull' parameters: - - xtesting-slave: - slave: '{slave}' - - xtesting-branch: - branch: '{branch}' - scm: - - xtesting-scm: - ref: $branch + - xtesting-node: + node: '{node}' builders: - - xtesting-build-containers: - <<: *xtesting-build-containers - ref: $branch + - xtesting-pull-containers: + <<: *xtesting-dep -- project: - name: 'xtesting-_-alpine-3.12-rmi' - repo: _ +- xtesting-dep-params: &xtesting-dep-params + name: 'xtesting-dep-params' + repo: '_' + container: 'alpine' port: - container: alpine - tag: '3.12' - slave: master - jobs: - - 'xtesting-{repo}-{container}-{tag}-rmi' + tag: + - latest: + dependency: 3.17 + - 2023.2: + dependency: 3.17 + - 2023.1: + dependency: 3.17 + - zed: + dependency: 3.16 + - yoga: + dependency: 3.16 + - xena: + dependency: 3.14 + - wallaby: + dependency: 3.13 - project: - name: 'xtesting-_-alpine-3.12-pull' - repo: _ - port: - container: alpine - tag: '3.12' - slave: master + name: 'xtesting-dep-pull' + <<: *xtesting-dep-params jobs: - - 'xtesting-{repo}-{container}-{tag}-pull' + - 'xtesting-{tag}-dep-pull' + +- job-template: + name: 'xtesting-{tag}-dep-rmi' + parameters: + - xtesting-node: + node: '{node}' + builders: + - xtesting-remove-images: + <<: *xtesting-dep - project: - name: xtesting-opnfv-xtesting-{tag}-build - <<: *xtesting-params - container: xtesting - ref_arg: BRANCH - path: docker/core + name: 'xtesting-dep-rmi' + <<: *xtesting-dep-params jobs: - - 'xtesting-{repo}-{container}-{tag}-gate' - - 'xtesting-{repo}-{container}-{tag}-check' + - 'xtesting-{tag}-dep-rmi' + +- builder: + name: xtesting-tox + builders: + - shell: | + set +x + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 dist-upgrade -y + sudo DEBIAN_FRONTEND=noninteractive \ + apt-get -o DPkg::Lock::Timeout=300 install software-properties-common gpg -y + sudo add-apt-repository -y ppa:deadsnakes/ppa + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 install \ + libxml2-dev libxslt-dev libffi-dev libjpeg-dev \ + python3.10 python3.10-dev python3.10-distutils \ + python3.9 python3.9-dev python3.9-distutils \ + python3.8 python3.8-dev python3.8-distutils \ + python3-pip enchant-2 -y + sudo pip3 install tox + + tox + +- job-template: + name: 'xtesting-{tag}-tox' + scm: + - xtesting-scm: + ref: $GERRIT_REFSPEC + triggers: + - xtesting-patchset-created: + branch: '{branch}' + parameters: + - xtesting-node: + node: '{node}' + builders: + - xtesting-tox: - project: - name: xtesting-opnfv-xtesting-mts-{tag}-build + name: xtesting-tox <<: *xtesting-params - container: xtesting-mts - ref_arg: BRANCH - path: docker/mts - exclude: - - tag: hunter - - tag: iruya - - tag: jerma - - tag: kali jobs: - - 'xtesting-{repo}-{container}-{tag}-gate' - - 'xtesting-{repo}-{container}-{tag}-check' + - 'xtesting-{tag}-tox' - job-template: - name: 'xtesting-{tag}-check' - project-type: multijob + name: 'xtesting-opnfv-xtesting-{tag}-gate' parameters: - - xtesting-slave: - slave: '{slave}' - - xtesting-build_tag: - build_tag: '' - - xtesting-branch: - branch: '{branch}' - - xtesting-DEBUG: - DEBUG: 'true' - properties: - - build-blocker: - use-build-blocker: true - blocking-level: 'NODE' - blocking-jobs: - - '^xtesting-{tag}-(daily|check|gate)$' + - xtesting-node: + node: '{node}' + scm: + - xtesting-scm: + ref: $GERRIT_REFSPEC builders: - - multijob: - name: remove former images - projects: - - name: 'xtesting-opnfv-xtesting-{tag}-rmi' - <<: *xtesting-jobs - - name: 'xtesting-opnfv-xtesting-mts-{tag}-rmi' - <<: *xtesting-jobs - - multijob: - name: remove dependencies - projects: - - name: 'xtesting-_-alpine-3.12-rmi' - <<: *xtesting-jobs - - multijob: - name: pull dependencies - projects: - - name: 'xtesting-_-alpine-3.12-pull' - <<: *xtesting-jobs - - multijob: - name: opnfv/xtesting - projects: - - name: 'xtesting-opnfv-xtesting-{tag}-check' - <<: *xtesting-jobs - - multijob: - name: opnfv/xtesting-mts - projects: - - name: 'xtesting-opnfv-xtesting-mts-{tag}-check' - <<: *xtesting-jobs - - multijob: - name: opnfv/xtesting:{tag} - projects: - - name: 'xtesting-opnfv-xtesting-{tag}-first-run' - <<: *xtesting-jobs - - name: 'xtesting-opnfv-xtesting-{tag}-second-run' - <<: *xtesting-jobs - - name: 'xtesting-opnfv-xtesting-{tag}-third-run' - <<: *xtesting-jobs - - name: 'xtesting-opnfv-xtesting-{tag}-fourth-run' - <<: *xtesting-jobs - - name: 'xtesting-opnfv-xtesting-{tag}-fifth-run' - <<: *xtesting-jobs - - name: 'xtesting-opnfv-xtesting-{tag}-sixth-run' - <<: *xtesting-jobs - - multijob: - name: opnfv/xtesting-mts:{tag} - projects: - - name: 'xtesting-opnfv-xtesting-mts-{tag}-seventh-run' - <<: *xtesting-jobs + - xtesting-build-containers: + <<: *xtesting-build-containers + ref: $GERRIT_REFSPEC + build_args: '{build_args}' + +- project: + name: xtesting-opnfv-xtesting-gate + <<: *xtesting-params + repo: opnfv + port: + container: xtesting + ref_arg: BRANCH + path: docker/core + jobs: + - 'xtesting-opnfv-xtesting-{tag}-gate' - trigger: name: xtesting-patchset-created triggers: - gerrit: - server-name: 'gerrit.opnfv.org' trigger-on: - patchset-created-event - comment-added-contains-event: @@ -537,48 +611,41 @@ branches: - branch-compare-type: 'ANT' branch-pattern: '**/{branch}' - skip-vote: - successful: false - failed: false - unstable: false - notbuilt: false - job-template: - name: 'xtesting-{tag}-gate' + name: 'xtesting-{tag}-review' project-type: multijob triggers: - xtesting-patchset-created: branch: '{branch}' parameters: - - xtesting-slave: - slave: '{slave}' + - xtesting-node: + node: '{node}' - xtesting-build_tag: build_tag: '' - - xtesting-DEBUG: - DEBUG: 'true' + # PyYAML and yamllint differ here + # see https://github.com/yaml/pyyaml/issues/234 + # yamllint disable rule:indentation properties: - build-blocker: - use-build-blocker: true - blocking-level: 'NODE' blocking-jobs: - - '^xtesting-{tag}-(daily|check|gate)$' + - ^xtesting-(pi-)*{tag}-(daily|docker|review)$ + # yamllint enable rule:indentation builders: - multijob: name: remove former images projects: - name: 'xtesting-opnfv-xtesting-{tag}-rmi' <<: *xtesting-jobs - - name: 'xtesting-opnfv-xtesting-mts-{tag}-rmi' - <<: *xtesting-jobs - multijob: - name: remove dependencies + name: remove dependency projects: - - name: 'xtesting-_-alpine-3.12-rmi' + - name: 'xtesting-{tag}-dep-rmi' <<: *xtesting-jobs - multijob: - name: pull dependencies + name: pull dependency projects: - - name: 'xtesting-_-alpine-3.12-pull' + - name: 'xtesting-{tag}-dep-pull' <<: *xtesting-jobs - multijob: name: opnfv/xtesting @@ -586,11 +653,6 @@ - name: 'xtesting-opnfv-xtesting-{tag}-gate' <<: *xtesting-jobs - multijob: - name: opnfv/xtesting-mts - projects: - - name: 'xtesting-opnfv-xtesting-mts-{tag}-gate' - <<: *xtesting-jobs - - multijob: name: opnfv/xtesting:{tag} projects: - name: 'xtesting-opnfv-xtesting-{tag}-first-run' @@ -605,27 +667,302 @@ <<: *xtesting-jobs - name: 'xtesting-opnfv-xtesting-{tag}-sixth-run' <<: *xtesting-jobs + - name: 'xtesting-opnfv-xtesting-{tag}-eighth-run' + <<: *xtesting-jobs + - name: 'xtesting-opnfv-xtesting-{tag}-nineth-run' + <<: *xtesting-jobs + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'xtesting-review' + <<: *xtesting-params + jobs: + - 'xtesting-{tag}-review' + +- view: + name: xtesting-review + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: ^xtesting-[a-z0-9.-]+-review$ + +- view: + name: xtesting-tox + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: ^xtesting-[a-z0-9.-]+-tox$ + +- builder: + name: xtesting-push-containers + builders: + - shell: | + set +x + if [ "{repo}" = "_" ]; then + image={container}:{tag} + elif [ "{port}" = "None" ]; then + image={repo}/{container}:{tag} + else + image={repo}:{port}/{container}:{tag} + fi + sudo docker push $image + +- trigger: + name: xtesting-commit + triggers: + - pollscm: + cron: "*/30 * * * *" + +- job-template: + name: 'xtesting-opnfv-xtesting-{tag}-build' + parameters: + - xtesting-node: + node: '{node}' + scm: + - xtesting-scm: + ref: '{branch}' + builders: + - xtesting-build-containers: + <<: *xtesting-build-containers + ref: '{branch}' + build_args: '{build_args}' + - xtesting-push-containers: + <<: *xtesting-build-containers + ref: '{branch}' + +- project: + name: xtesting-opnfv-xtesting-build + <<: *xtesting-params + repo: opnfv + container: xtesting + port: + ref_arg: BRANCH + path: docker/core + jobs: + - 'xtesting-opnfv-xtesting-{tag}-build' + +- job-template: + name: 'xtesting-{tag}-docker' + project-type: multijob + triggers: + - xtesting-commit + scm: + - xtesting-scm: + ref: '{branch}' + parameters: + - xtesting-node: + node: '{node}' + # PyYAML and yamllint differ here + # see https://github.com/yaml/pyyaml/issues/234 + # yamllint disable rule:indentation + properties: + - build-blocker: + blocking-jobs: + - ^xtesting-(pi-)*{tag}-(daily|docker|review)$ + # yamllint enable rule:indentation + builders: + - multijob: + name: remove dependency + projects: + - name: 'xtesting-{tag}-dep-rmi' + <<: *xtesting-jobs - multijob: - name: opnfv/xtesting-mts:{tag} + name: pull dependency projects: - - name: 'xtesting-opnfv-xtesting-mts-{tag}-seventh-run' + - name: 'xtesting-{tag}-dep-pull' <<: *xtesting-jobs + - multijob: + name: opnfv/xtesting + projects: + - name: 'xtesting-opnfv-xtesting-{tag}-build' + <<: *xtesting-jobs + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com - project: - name: 'xtesting' + name: 'xtesting-docker' <<: *xtesting-params jobs: - - 'xtesting-{tag}-daily' + - 'xtesting-{tag}-docker' + +- builder: + name: xtesting-trivy + builders: + - shell: | + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 install curl -y + + curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sudo sh -s -- -b . + if [ "{repo}" = "_" ]; then + image={container}:{tag} + elif [ "{port}" = "None" ]; then + image={repo}/{container}:{tag} + else + image={repo}:{port}/{container}:{tag} + fi + ./trivy image --exit-code 1 $image + +- job-template: + name: 'xtesting-opnfv-xtesting-{tag}-trivy' + triggers: + - timed: '@daily' + parameters: + - xtesting-node: + node: '{node}' + builders: + - xtesting-trivy: + <<: *xtesting-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com - project: - name: 'xtesting-gate' + name: 'xtesting-opnfv-xtesting-trivy' <<: *xtesting-params + repo: 'opnfv' + container: 'xtesting' + port: jobs: - - 'xtesting-{tag}-check' - - 'xtesting-{tag}-gate' + - 'xtesting-opnfv-xtesting-{tag}-trivy' + +- builder: + name: xtesting-grype + builders: + - shell: | + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 install curl -y + + curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sudo sh -s -- -b . + if [ "{repo}" = "_" ]; then + image={container}:{tag} + elif [ "{port}" = "None" ]; then + image={repo}/{container}:{tag} + else + image={repo}:{port}/{container}:{tag} + fi + ./grype -q $image + +- job-template: + name: 'xtesting-opnfv-xtesting-{tag}-grype' + triggers: + - timed: '@daily' + parameters: + - xtesting-node: + node: '{node}' + builders: + - xtesting-grype: + <<: *xtesting-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'xtesting-opnfv-xtesting-grype' + <<: *xtesting-params + repo: 'opnfv' + container: 'xtesting' + port: + jobs: + - 'xtesting-opnfv-xtesting-{tag}-grype' + +- builder: + name: xtesting-sbom + builders: + - shell: | + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 install curl -y + + sudo mkdir -p ~/.docker + curl -sSfL https://raw.githubusercontent.com/docker/sbom-cli-plugin/main/install.sh | sudo sh -s -- + if [ "{repo}" = "_" ]; then + image={container}:{tag} + elif [ "{port}" = "None" ]; then + image={repo}/{container}:{tag} + else + image={repo}:{port}/{container}:{tag} + fi + sudo docker sbom $image + +- job-template: + name: 'xtesting-opnfv-xtesting-{tag}-sbom' + triggers: + - timed: '@daily' + parameters: + - xtesting-node: + node: '{node}' + builders: + - xtesting-sbom: + <<: *xtesting-containers + publishers: + - email-ext: + failure: false + first-failure: true + fixed: true + recipients: cedric.ollivier@orange.com + +- project: + name: 'xtesting-opnfv-xtesting-sbom' + <<: *xtesting-params + repo: 'opnfv' + container: 'xtesting' + port: + jobs: + - 'xtesting-opnfv-xtesting-{tag}-sbom' - view: - name: xtesting + name: xtesting-docker + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: ^xtesting-[a-z0-9.-]+-docker$ + +- view: + name: xtesting-trivy + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: (?!xtesting-pi)^xtesting-[a-z-0-9.]+-trivy$ + +- view: + name: xtesting-grype view-type: list columns: - status @@ -634,10 +971,10 @@ - last-success - last-failure - last-duration - regex: ^xtesting-(amd64-)*[a-z]+-daily$ + regex: (?!xtesting-pi)^xtesting-[a-z-0-9.]+-grype$ - view: - name: xtesting-gate + name: xtesting-sbom view-type: list columns: - status @@ -646,4 +983,4 @@ - last-success - last-failure - last-duration - regex: ^xtesting-(amd64-)*[a-z]+-gate$ + regex: (?!xtesting-pi)^xtesting-[a-z-0-9.]+-sbom$ diff --git a/jjb/global-jjb/jjb b/jjb/global-jjb/jjb deleted file mode 120000 index 23c884f04..000000000 --- a/jjb/global-jjb/jjb +++ /dev/null @@ -1 +0,0 @@ -../../global-jjb/jjb
\ No newline at end of file diff --git a/jjb/global-jjb/shell b/jjb/global-jjb/shell deleted file mode 120000 index d37c43f86..000000000 --- a/jjb/global-jjb/shell +++ /dev/null @@ -1 +0,0 @@ -../../global-jjb/shell
\ No newline at end of file diff --git a/jjb/global/basic-jobs.yaml b/jjb/global/basic-jobs.yaml deleted file mode 100644 index d2c271105..000000000 --- a/jjb/global/basic-jobs.yaml +++ /dev/null @@ -1,46 +0,0 @@ ---- -## -# Basic Job Config -# -# This is used for project which don't have any jobs of substance -# defined yet, but still need 'Verified+1'. -## -- job-group: - name: '{project}-verify-basic' - - stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - - gambia: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - - jobs: - - '{project}-verify-{stream}' - -- job-template: - name: '{project}-verify-{stream}' - - disabled: '{obj:disabled}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-defaults' - - scm: - - git-scm-gerrit - - triggers: - - gerrit-trigger-patchset-created: - project: '{project}' - branch: '{branch}' - files: 'docs/**|.gitignore' - - builders: - - shell: | - echo "Nothing to verify!" diff --git a/jjb/global/installer-params.yaml b/jjb/global/installer-params.yaml deleted file mode 100644 index 163d9152b..000000000 --- a/jjb/global/installer-params.yaml +++ /dev/null @@ -1,140 +0,0 @@ ---- -- parameter: - name: 'apex-defaults' - parameters: - - string: - name: INSTALLER_IP - default: '192.168.X.X' - description: 'IP of the installer' - - string: - name: INSTALLER_TYPE - default: apex - description: 'Installer used for deploying OPNFV on this POD' - - string: - name: EXTERNAL_NETWORK - default: 'external' - description: 'external network for test' - -- parameter: - name: 'fuel-defaults' - parameters: - - string: - name: INSTALLER_IP - default: '10.20.0.2' - description: 'IP of the installer' - - string: - name: SSH_KEY - default: "/var/lib/opnfv/mcp.rsa" - description: 'Path to private SSH key to access environment nodes' - - string: - name: INSTALLER_TYPE - default: fuel - description: 'Installer used for deploying OPNFV on this POD' - - string: - name: EXTERNAL_NETWORK - default: 'floating_net' - description: 'external network for test' - - string: - name: GS_URL - default: '$GS_BASE{gs-pathname}' - description: "URL to Google Storage." - - string: - name: CI_DEBUG - default: 'false' - description: "Show debug output information" - -- parameter: - name: 'joid-defaults' - parameters: - - string: - name: INSTALLER_IP - default: '192.168.122.5' - description: 'IP of the installer' - - string: - name: INSTALLER_TYPE - default: joid - description: 'Installer used for deploying OPNFV on this POD' - - string: - name: MODEL - default: 'os' - description: 'Model to deploy (os|k8)' - - string: - name: OS_RELEASE - default: 'pike' - description: 'OpenStack release (mitaka|ocata|pike)' - - string: - name: EXTERNAL_NETWORK - default: ext-net - description: "External network used for Floating ips." - - string: - name: LAB_CONFIG - default: "$HOME/joid_config" - description: "Local lab config and Openstack openrc location" - - string: - name: MAAS_REINSTALL - default: 'false' - description: "Reinstall MAAS and Bootstrap before deploy [true/false]" - - string: - name: UBUNTU_DISTRO - default: 'xenial' - description: "Ubuntu distribution to use for Openstack (xenial)" - - string: - name: CPU_ARCHITECTURE - default: 'amd64' - description: "CPU Architecture to use for Ubuntu distro " - -- parameter: - name: 'daisy-defaults' - parameters: - - string: - name: INSTALLER_IP - default: '10.20.7.3' - description: 'IP of the installer' - - string: - name: INSTALLER_TYPE - default: daisy - description: 'Installer used for deploying OPNFV on this POD' - - string: - name: BRIDGE - default: 'br7' - description: 'pxe bridge for booting of Daisy master' - - string: - name: EXTERNAL_NETWORK - default: 'admin_external' - description: 'external network for test' - -- parameter: - name: 'infra-defaults' - parameters: - - string: - name: INSTALLER_IP - default: '192.168.122.2' - description: 'IP of the installer' - - string: - name: INSTALLER_TYPE - default: infra - description: 'Installer used for deploying OPNFV on this POD' - -- parameter: - name: 'netvirt-defaults' - parameters: - - string: - name: INSTALLER_IP - default: '192.168.X.X' - description: 'IP of the installer' - - string: - name: INSTALLER_TYPE - default: apex - description: 'Installer used for deploying OPNFV on this POD' - - string: - name: EXTERNAL_NETWORK - default: 'external' - description: 'external network for test' - -- parameter: - name: 'deploy-scenario' - parameters: - - string: - name: DEPLOY_SCENARIO - default: 'os-nosdn-nofeature-ha' - description: "OPNFV deployment scenario" diff --git a/jjb/global/installer-report.sh b/jjb/global/installer-report.sh deleted file mode 100755 index 6cd83f1f1..000000000 --- a/jjb/global/installer-report.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/bash -############################################################################## -# Copyright (c) 2017 ZTE Corporation and others. -# 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 -############################################################################## - -source $WORKSPACE/installer_track.sh - -gen_content() -{ - cat <<EOF -{ - "installer": "$INSTALLER", - "version": "$INSTALLER_VERSION", - "pod_name": "$NODE_NAME", - "job_name": "$JOB_NAME", - "build_id": "$BUILD_ID", - "scenario": "$DEPLOY_SCENARIO", - "upstream_job_name": "$UPSTREAM_JOB_NAME", - "upstream_build_id":"$UPSTREAM_BUILD_ID", - "criteria": "$PROVISION_RESULT", - "start_date": "$TIMESTAMP_START", - "stop_date": "$TIMESTAMP_END", - "details":"" -} -EOF -} - -echo "Installer: $INSTALLER provision result: $PROVISION_RESULT" -echo $(gen_content) - -set -o xtrace -curl -H "Content-Type: application/json" -X POST -v -d "$(gen_content)" \ - $TESTAPI_URL/deployresults || true - -# INFO -# postbuildscript plugin shall always return the original job running status, -# for the result returned from postbuildscript affects the CI pipeline. -if [ "$PROVISION_RESULT" == "PASS" ]; then - exit 0 -else - exit 1 -fi diff --git a/jjb/global/releng-macros.yaml b/jjb/global/releng-macros.yaml index b82fbea95..ea48cc80d 100644 --- a/jjb/global/releng-macros.yaml +++ b/jjb/global/releng-macros.yaml @@ -358,7 +358,8 @@ echo cat gerrit_comment.txt echo - ssh -p 29418 gerrit.opnfv.org \ + ssh -o 'PubkeyAcceptedKeyTypes +ssh-rsa' \ + -p 29418 fbot@gerrit.opnfv.org \ "gerrit review -p $GERRIT_PROJECT \ -m '$(cat gerrit_comment.txt)' \ $GERRIT_PATCHSET_REVISION \ @@ -399,93 +400,6 @@ - report-build-result-to-gerrit - builder: - name: lint-init - builders: - - shell: | - #!/bin/bash - # Ensure we start with a clean environment - rm -f bash-violation.log python-violation.log yaml-violation.log violation.log - git --no-pager diff --diff-filter=MCRAT --name-only HEAD^1 > modified_files - -- builder: - name: lint-report - builders: - - shell: | - #!/bin/bash - if [[ -s violation.log ]]; then - cat violation.log - echo "Reporting lint result...." - set -x - msg="Found syntax error and/or coding style violation(s) in the files modified by your patchset." - sed -i -e "1s#^#${msg}\n\n#" violation.log - cmd="gerrit review -p $GERRIT_PROJECT -m \"$(cat violation.log)\" $GERRIT_PATCHSET_REVISION --notify NONE" - ssh -p 29418 gerrit.opnfv.org "$cmd" - - # Make sure the caller job failed - exit 1 - fi - -- builder: - name: lint-bash-code - builders: - - shell: | - #!/bin/bash - echo "Checking bash code..." - for f in $(egrep '\.sh$' modified_files) - do - bash -n "$f" 2>> bash-violation.log - done - if [[ -s bash-violation.log ]]; then - echo -e "Bash syntax error(s)\n---" >> violation.log - sed -e 's/^/ /g' bash-violation.log >> violation.log - fi - -- builder: - name: lint-python-code - builders: - - shell: | - #!/bin/bash - # Install python package - sudo -H pip install "flake8==2.6.2" - - echo "Checking python code..." - for f in $(egrep '\.py$' modified_files) - do - flake8 "$f" >> python-violation.log - done - if [[ -s python-violation.log ]]; then - echo -e "Python violation(s)\n---" >> violation.log - sed -e 's/^/ /g' python-violation.log >> violation.log - fi - -- builder: - name: lint-yaml-code - builders: - - shell: | - #!/bin/bash - # sudo Install python packages - sudo -H pip install "yamllint==1.8.2" - - echo "Checking yaml file..." - for f in $(egrep '\.ya?ml$' modified_files) - do - yamllint "$f" >> yaml-violation.log - done - if [[ -s yaml-violation.log ]]; then - echo -e "YAML violation(s)\n---" >> violation.log - sed -e 's/^/ /g' yaml-violation.log >> violation.log - fi - -- builder: - name: lint-all-code - builders: - - lint-init - - lint-bash-code - - lint-python-code - - lint-yaml-code - - lint-report - -- builder: name: clean-workspace builders: - shell: | @@ -549,36 +463,3 @@ failure: true send-to: - recipients - -- publisher: - name: 'report-provision-result' - publishers: - - postbuildscript: - builders: - - role: BOTH - build-on: - - SUCCESS - build-steps: - - shell: | - echo "export PROVISION_RESULT=PASS" >> $WORKSPACE/installer_track.sh - echo "export INSTALLER=$INSTALLER_TYPE" >> $WORKSPACE/installer_track.sh - echo "export TIMESTAMP_END="\'`date '+%Y-%m-%d %H:%M:%S.%3N'`\' >> $WORKSPACE/installer_track.sh - - shell: - !include-raw: installer-report.sh - mark-unstable-if-failed: true - - postbuildscript: - builders: - - role: BOTH - build-on: - - ABORTED - - FAILURE - - NOT_BUILT - - UNSTABLE - build-steps: - - shell: | - echo "export PROVISION_RESULT=FAIL" >> $WORKSPACE/installer_track.sh - echo "export INSTALLER=$INSTALLER_TYPE" >> $WORKSPACE/installer_track.sh - echo "export TIMESTAMP_END="\'`date '+%Y-%m-%d %H:%M:%S.%3N'`\' >> $WORKSPACE/installer_track.sh - - shell: - !include-raw: installer-report.sh - mark-unstable-if-failed: true diff --git a/jjb/global/slave-params.yaml b/jjb/global/slave-params.yaml index bd8ae345b..7d0996bb6 100644 --- a/jjb/global/slave-params.yaml +++ b/jjb/global/slave-params.yaml @@ -1,561 +1,4 @@ --- -##################################################### -# Parameters for slaves using old labels -# This will be cleaned up once the new job structure and -# use of the new labels are in place -##################################################### -- parameter: - name: 'apex-baremetal-master-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'apex-baremetal-master' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: SSH_KEY - default: /root/.ssh/id_rsa - description: 'SSH key to use for Apex' - -- parameter: - name: 'apex-baremetal-hunter-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'apex-baremetal-master' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: SSH_KEY - default: /root/.ssh/id_rsa - description: 'SSH key to use for Apex' - -- parameter: - name: 'apex-baremetal-gambia-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'apex-baremetal-master' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: SSH_KEY - default: /root/.ssh/id_rsa - description: 'SSH key to use for Apex' - -- parameter: - name: 'apex-baremetal-fraser-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'apex-baremetal-master' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: SSH_KEY - default: /root/.ssh/id_rsa - description: 'SSH key to use for Apex' - -- parameter: - name: 'apex-baremetal-euphrates-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'apex-baremetal-master' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: SSH_KEY - default: /root/.ssh/id_rsa - description: 'SSH key to use for Apex' - -- parameter: - name: 'apex-baremetal-danube-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'apex-baremetal-danube' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: SSH_KEY - default: /root/.ssh/id_rsa - description: 'SSH key to use for Apex' - - -- parameter: - name: 'apex-virtual-master-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'apex-virtual-master' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: SSH_KEY - default: /root/.ssh/id_rsa - description: 'SSH key to use for Apex' - -- parameter: - name: 'apex-virtual-hunter-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'apex-virtual-master' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: SSH_KEY - default: /root/.ssh/id_rsa - description: 'SSH key to use for Apex' - -- parameter: - name: 'apex-virtual-gambia-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'apex-virtual-master' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: SSH_KEY - default: /root/.ssh/id_rsa - description: 'SSH key to use for Apex' - -- parameter: - name: 'apex-virtual-fraser-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'apex-virtual-master' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: SSH_KEY - default: /root/.ssh/id_rsa - description: 'SSH key to use for Apex' - -- parameter: - name: 'apex-virtual-euphrates-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'apex-virtual-master' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: SSH_KEY - default: /root/.ssh/id_rsa - description: 'SSH key to use for Apex' - -- parameter: - name: 'apex-virtual-danube-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'apex-virtual-danube' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: SSH_KEY - default: /root/.ssh/id_rsa - description: 'SSH key to use for Apex' - -- parameter: - name: 'lf-pod1-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - lf-pod1 - default-slaves: - - lf-pod1 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: SSH_KEY - default: /root/.ssh/id_rsa - description: 'SSH key to use for Apex' - -- parameter: - name: 'lf-pod3-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - lf-pod3 - default-slaves: - - lf-pod3 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: SSH_KEY - default: /root/.ssh/id_rsa - description: 'SSH key to use for Apex' - -- parameter: - name: 'lf-pod4-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - lf-pod4 - default-slaves: - - lf-pod4 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: SSH_KEY - default: /root/.ssh/id_rsa - description: 'SSH key to use for Apex' - -- parameter: - name: 'lf-pod5-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - lf-pod5 - default-slaves: - - lf-pod5 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: SSH_KEY - default: /root/.ssh/id_rsa - description: 'SSH key to use for Apex' - -##################################################### -# Parameters for CI baremetal PODs -##################################################### -- parameter: - name: 'apex-baremetal-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'apex-baremetal' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: SSH_KEY - default: /root/.ssh/id_rsa - description: 'SSH key to use for Apex' - -- parameter: - name: 'fuel-baremetal-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'fuel-baremetal' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - -- parameter: - name: 'armband-baremetal-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'armband-baremetal' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - -- parameter: - name: 'auto-baremetal-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'auto-baremetal' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - -- parameter: - name: 'joid-baremetal-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'joid-baremetal' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: EXTERNAL_NETWORK - default: ext-net - description: "External network floating ips" - -- parameter: - name: 'daisy-baremetal-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - zte-pod2 - default-slaves: - - zte-pod2 - - label: - name: SLAVE_LABEL - default: 'daisy-baremetal' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: INSTALLER_IP - default: '10.20.7.3' - description: 'IP of the installer' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - -##################################################### -# Parameters for CI virtual PODs -##################################################### -- parameter: - name: 'apex-virtual-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'apex-virtual' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: SSH_KEY - default: /root/.ssh/id_rsa - description: 'SSH key to use for Apex' - -- parameter: - name: 'fuel-virtual-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'fuel-virtual' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - -- parameter: - name: 'armband-virtual-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'armband-virtual' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - -- parameter: - name: 'joid-virtual-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'joid-virtual' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - -- parameter: - name: 'daisy-virtual-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - zte-virtual1 - - zte-virtual2 - default-slaves: - - zte-virtual1 - - label: - name: SLAVE_LABEL - default: 'daisy-virtual' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: INSTALLER_IP - default: '10.20.11.2' - description: 'IP of the installer' - - string: - name: BRIDGE - default: 'daisy1' - description: 'pxe bridge for booting of Daisy master' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - -- parameter: - name: 'functest-virtual-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'functest-virtual' - all-nodes: false - node-eligibility: 'ignore-offline' - -##################################################### -# Parameters for build slaves -##################################################### -- parameter: - name: 'opnfv-build-centos-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'opnfv-build-centos' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: BUILD_DIRECTORY - default: $WORKSPACE/build_output - description: "Directory where the build artifact will be located upon the completion of the build." - -- parameter: - name: 'opnfv-build-ubuntu-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'opnfv-build-ubuntu' - description: 'Slave label on Jenkins' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: BUILD_DIRECTORY - default: $WORKSPACE/build_output - description: "Directory where the build artifact will be located upon the completion of the build." - -- parameter: - name: 'lf-virtual1-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'lf-virtual1' - description: 'Slave label on Jenkins' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: BUILD_DIRECTORY - default: $WORKSPACE/build_output - description: "Directory where the build artifact will be located upon the completion of the build." - -- parameter: - name: 'laas-dashboard-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'laas-dashboard' - description: 'Slave label on Jenkins' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: BUILD_DIRECTORY - default: $WORKSPACE/build_output - description: "Directory where the build artifact will be located upon the completion of the build." - - parameter: name: 'opnfv-build-defaults' parameters: @@ -575,62 +18,11 @@ description: "Directory where the build artifact will be located upon the completion of the build." - parameter: - name: 'lf-build2-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'lf-build2' - description: 'Slave label on Jenkins' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: BUILD_DIRECTORY - default: $WORKSPACE/build_output - description: "Directory where the build artifact will be located upon the completion of the build." - -- parameter: - name: 'ericsson-build4-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'ericsson-build4' - description: 'Slave label on Jenkins' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: BUILD_DIRECTORY - default: $WORKSPACE/build_output - description: "Directory where the build artifact will be located upon the completion of the build." - -- parameter: - name: 'huawei-build-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - huawei-build - default-slaves: - - huawei-build - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - -- parameter: - name: 'opnfv-build-ubuntu-arm-defaults' + name: 'opnfv-build-ubuntu-defaults' parameters: - label: name: SLAVE_LABEL - default: 'opnfv-build-ubuntu-arm' + default: 'anuket-build' description: 'Slave label on Jenkins' all-nodes: false node-eligibility: 'ignore-offline' @@ -643,88 +35,6 @@ default: $WORKSPACE/build_output description: "Directory where the build artifact will be located upon the completion of the build." -##################################################### -# Parameters for none-CI PODs -##################################################### -- parameter: - name: 'cengn-pod1-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - cengn-pod1 - default-slaves: - - cengn-pod1 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - -- parameter: - name: 'intel-pod1-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - intel-pod1 - default-slaves: - - intel-pod1 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - -- parameter: - name: 'intel-pod2-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - intel-pod2 - default-slaves: - - intel-pod2 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: SSH_KEY - default: /root/.ssh/id_rsa - description: 'SSH key to use for Apex' - -- parameter: - name: 'intel-pod9-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - intel-pod9 - default-slaves: - - intel-pod9 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - -- parameter: - name: 'intel-pod10-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - intel-pod10 - default-slaves: - - intel-pod10 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - parameter: name: 'intel-pod12-defaults' parameters: @@ -739,568 +49,3 @@ name: GIT_BASE default: https://gerrit.opnfv.org/gerrit/$PROJECT description: 'Git URL to use on this Jenkins Slave' - -- parameter: - name: 'intel-pod18-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - intel-pod18 - default-slaves: - - intel-pod18 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - -- parameter: - name: 'itri-pod1-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - itri-pod1 - default-slaves: - - itri-pod1 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: INSTALLER_IP - default: '10.20.0.2' - description: 'IP of the installer' - -- parameter: - name: 'huawei-pod3-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - huawei-pod3 - default-slaves: - - huawei-pod3 - - label: - name: SLAVE_LABEL - default: 'huawei-test' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - -- parameter: - name: 'huawei-pod4-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - huawei-pod4 - default-slaves: - - huawei-pod4 - - label: - name: SLAVE_LABEL - default: 'huawei-test' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - -- parameter: - name: 'intel-pod8-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - intel-pod8 - default-slaves: - - intel-pod8 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - -- parameter: - name: 'intel-pod17-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - intel-pod17 - default-slaves: - - intel-pod17 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - -- parameter: - name: 'huawei-virtual5-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'huawei-virtual5' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - -- parameter: - name: 'huawei-virtual7-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - huawei-virtual7 - default-slaves: - - huawei-virtual7 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - -- parameter: - name: 'huawei-pod7-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - huawei-pod7 - default-slaves: - - huawei-pod7 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - -- parameter: - name: 'zte-pod1-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - zte-pod1 - default-slaves: - - zte-pod1 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: INSTALLER_IP - default: '10.20.6.2' - description: 'IP of the installer' - - string: - name: BRIDGE - default: 'br6' - description: 'pxe bridge for booting of Fuel master' - -- parameter: - name: 'zte-pod2-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - zte-pod2 - default-slaves: - - zte-pod2 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: INSTALLER_IP - default: '10.20.7.3' - description: 'IP of the installer' - - string: - name: BRIDGE - default: 'br7' - description: 'pxe bridge for booting of Daisy master' - -- parameter: - name: 'zte-pod3-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - zte-pod3 - default-slaves: - - zte-pod3 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: INSTALLER_IP - default: '10.20.0.2' - description: 'IP of the installer' - - string: - name: BRIDGE - default: 'br0' - description: 'pxe bridge for booting of Daisy master' - -- parameter: - name: 'zte-pod9-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - zte-pod9 - default-slaves: - - zte-pod9 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: INSTALLER_IP - default: '10.20.7.2' - description: 'IP of the installer' - - string: - name: BRIDGE - default: 'br0' - description: 'pxe bridge for booting of Daisy master' - -- parameter: - name: zte-virtual5-defaults - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - zte-virtual5 - default-slaves: - - zte-virtual5 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - -- parameter: - name: zte-virtual6-defaults - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - zte-virtual6 - default-slaves: - - zte-virtual6 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - -- parameter: - name: 'juniper-pod1-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - juniper-pod1 - default-slaves: - - juniper-pod1 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: CEPH_DISKS - default: /srv - description: "Disks to use by ceph (comma separated list)" - -- parameter: - name: 'orange-pod1-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - orange-pod1 - default-slaves: - - orange-pod1 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - -- parameter: - name: 'orange-pod2-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - orange-pod2 - default-slaves: - - orange-pod2 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - -- parameter: - name: 'orange-pod5-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - orange-pod5 - default-slaves: - - orange-pod5 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - -- parameter: - name: 'dell-pod1-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - dell-pod1 - default-slaves: - - dell-pod1 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - -- parameter: - name: 'dell-pod2-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - dell-pod2 - default-slaves: - - dell-pod2 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - -- parameter: - name: 'nokia-pod1-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - nokia-pod1 - default-slaves: - - nokia-pod1 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: SSH_KEY - default: /root/.ssh/id_rsa - description: 'SSH key to use for Apex' - -- parameter: - name: 'intel-virtual6-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - intel-virtual6 - default-slaves: - - intel-virtual6 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - -- parameter: - name: 'intel-virtual10-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - intel-virtual10 - default-slaves: - - intel-virtual10 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - -- parameter: - name: 'doctor-slave-parameter' - parameters: - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - -- parameter: - name: 'ericsson-virtual5-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'ericsson-virtual5' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://git.opendaylight.org/gerrit/p/$PROJECT.git - description: 'Git URL to use on this Jenkins Slave' - -- parameter: - name: 'ericsson-virtual12-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'ericsson-virtual12' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - -- parameter: - name: 'ericsson-virtual13-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'ericsson-virtual13' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - -- parameter: - name: 'ericsson-virtual-pod1bl01-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'ericsson-virtual-pod1bl01' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - -- parameter: - name: 'odl-netvirt-virtual-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'odl-netvirt-virtual' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - -- parameter: - name: 'odl-netvirt-virtual-intel-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'odl-netvirt-virtual-intel' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - -- parameter: - name: 'flex-pod1-defaults' - parameters: - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - flex-pod1 - default-slaves: - - flex-pod1 - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - -##################################################### -# These slaves are just dummy slaves for sandbox jobs -##################################################### -- parameter: - name: 'sandbox-baremetal-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'sandbox-baremetal' - description: 'Slave label on Jenkins' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: BUILD_DIRECTORY - default: $WORKSPACE/build_output - description: "Directory where the build artifact will be located upon the completion of the build." - -- parameter: - name: 'sandbox-virtual-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'sandbox-virtual' - description: 'Slave label on Jenkins' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: BUILD_DIRECTORY - default: $WORKSPACE/build_output - description: "Directory where the build artifact will be located upon the completion of the build." - -- parameter: - name: 'dummy-pod1-defaults' - parameters: - - label: - name: SLAVE_LABEL - default: 'dummy-pod1' - description: 'Slave label on Jenkins' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - string: - name: BUILD_DIRECTORY - default: $WORKSPACE/build_output - description: "Directory where the build artifact will be located upon the completion of the build." diff --git a/jjb/kuberef/Vagrantfile b/jjb/kuberef/Vagrantfile deleted file mode 100644 index 61132f57b..000000000 --- a/jjb/kuberef/Vagrantfile +++ /dev/null @@ -1,70 +0,0 @@ -# -*- 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 deleted file mode 100755 index 084eac91c..000000000 --- a/jjb/kuberef/kuberef-run-linting.sh +++ /dev/null @@ -1,130 +0,0 @@ -#!/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 -############################################################################## - -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 - *suse*|rhel|centos|fedora) - pkgs="ShellCheck" - ;; - ubuntu|debian) - pkgs="shellcheck" - ;; - esac -fi -if ! command -v pip; then - 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 - # shellcheck disable=SC2086 - sudo -H -E zypper install -y --no-recommends $pkgs - ;; - ubuntu|debian) - sudo apt-get update - # 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) - if ! sudo "$PKG_MANAGER" repolist | grep "epel/"; then - sudo -H -E "$PKG_MANAGER" -q -y install epel-release - fi - sudo "$PKG_MANAGER" updateinfo --assumeyes - # 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 -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 deleted file mode 100644 index 92f29d096..000000000 --- a/jjb/kuberef/kuberef-verify-jobs.yaml +++ /dev/null @@ -1,58 +0,0 @@ ---- -- project: - name: kuberef-verify - project: kuberef - stream: - - master: - branch: '{stream}' - - jerma: &jerma - branch: 'stable/{stream}' - disabled: false - jobs: - - '{project}-verify-lint-{stream}' - -- job-template: - name: '{project}-verify-lint-{stream}' - 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' - trigger-on: - - patchset-created-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: 'kuberef' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - skip-vote: - successful: false - failed: false - unstable: false - notbuilt: false - builders: - - kubref-run-linting - -- builder: - name: kubref-run-linting - builders: - - shell: - !include-raw: ./kuberef-run-linting.sh diff --git a/jjb/kuberef/kuberef-views.yaml b/jjb/kuberef/kuberef-views.yaml deleted file mode 100644 index 7b19c2df6..000000000 --- a/jjb/kuberef/kuberef-views.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- project: - name: kuberef-view - views: - - project-view - project-name: kuberef diff --git a/jjb/kuberef/tox.ini b/jjb/kuberef/tox.ini deleted file mode 100644 index 328a05df0..000000000 --- a/jjb/kuberef/tox.ini +++ /dev/null @@ -1,28 +0,0 @@ -#!/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" diff --git a/jjb/laas/laas.yml b/jjb/laas/laas.yml index 12b5eeb2d..197495475 100644 --- a/jjb/laas/laas.yml +++ b/jjb/laas/laas.yml @@ -1,4 +1,22 @@ --- +- parameter: + name: 'laas-dashboard-defaults' + parameters: + - label: + name: SLAVE_LABEL + default: 'laas-dashboard' + description: 'Slave label on Jenkins' + all-nodes: false + node-eligibility: 'ignore-offline' + - string: + name: GIT_BASE + default: https://gerrit.opnfv.org/gerrit/$PROJECT + description: 'Git URL to use on this Jenkins Slave' + - string: + name: BUILD_DIRECTORY + default: $WORKSPACE/build_output + description: "Directory where the build artifact will be located upon the completion of the build." + - project: name: laas-dashboard-jobs @@ -14,21 +32,6 @@ - 'laas-dashboard-backup' - 'laas-dashboard-deploy' -- project: - name: laas-dashboard-verify - - project: 'laas' - project-name: 'laas' - build-days-to-keep: 7 - - stream: - - master - - disabled: false - - jobs: - - 'gerrit-tox-verify' - - job-template: name: 'laas-dashboard-backup' diff --git a/jjb/nfvbench/nfvbench-rtd-jobs.yaml b/jjb/nfvbench/nfvbench-rtd-jobs.yaml deleted file mode 100644 index 5ff94834a..000000000 --- a/jjb/nfvbench/nfvbench-rtd-jobs.yaml +++ /dev/null @@ -1,20 +0,0 @@ ---- -- project: - name: nfvbench-rtd - project: nfvbench - project-name: nfvbench - - project-pattern: 'nfvbench' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-nfvbench/47376/' - rtd-token: '7d77b15615ffe7906f1f20e245c80dc0a0f97e47' - - stream: - - master: - branch: '{stream}' - disabled: false - - gambia: - branch: 'stable/{stream}' - disabled: false - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/nfvbench/nfvbench-views.yaml b/jjb/nfvbench/nfvbench-views.yaml index 6175a4427..4884adb78 100644 --- a/jjb/nfvbench/nfvbench-views.yaml +++ b/jjb/nfvbench/nfvbench-views.yaml @@ -1,6 +1,12 @@ --- -- project: - name: nfvbench-view - views: - - project-view - project-name: nfvbench +- view: + name: nfvbench + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: ^nfvbench-.* diff --git a/jjb/nfvbench/nfvbench.yaml b/jjb/nfvbench/nfvbench.yaml index 18e2fc0a1..bb5083b4d 100644 --- a/jjb/nfvbench/nfvbench.yaml +++ b/jjb/nfvbench/nfvbench.yaml @@ -14,11 +14,13 @@ gs-pathname: '' docker-tag: 'latest' disabled: false - - gambia: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - docker-tag: 'stable' - disabled: false + +- parameter: + name: nfvbench-parameter + parameters: + - label: + name: node + default: 'opnfv-build' - job-template: name: 'nfvbench-build-{stream}' @@ -35,7 +37,7 @@ default: https://gerrit.opnfv.org/gerrit/$PROJECT description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW." # yamllint enable rule:line-length - - 'opnfv-build-ubuntu-defaults' + - nfvbench-parameter scm: - git-scm-gerrit @@ -45,6 +47,8 @@ server-name: 'gerrit.opnfv.org' trigger-on: - change-merged-event + - comment-added-contains-event: + comment-contains-value: 'remerge' projects: - project-compare-type: 'ANT' project-pattern: '{project}' @@ -72,7 +76,7 @@ default: https://gerrit.opnfv.org/gerrit/$PROJECT description: "Used for overriding the GIT URL coming from Global Jenkins configuration in case if the stuff is done on none-LF HW." # yamllint enable rule:line-length - - 'opnfv-build-ubuntu-defaults' + - nfvbench-parameter scm: - git-scm-gerrit @@ -85,6 +89,10 @@ exclude-drafts: 'false' exclude-trivial-rebase: 'false' exclude-no-code-change: 'false' + - comment-added-contains-event: + comment-contains-value: 'recheck' + - comment-added-contains-event: + comment-contains-value: 'reverify' projects: - project-compare-type: 'ANT' project-pattern: '{project}' @@ -94,7 +102,25 @@ builders: - shell: | - sudo pip install tox-pip-version + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 dist-upgrade -y + sudo DEBIAN_FRONTEND=noninteractive \ + apt-get -o DPkg::Lock::Timeout=300 install software-properties-common gpg -y + sudo add-apt-repository -y ppa:deadsnakes/ppa + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 install \ + libxml2-dev libxslt-dev libffi-dev libjpeg-dev \ + python3.8 python3.8-dev python3.8-distutils \ + python3-pip -y cd $WORKSPACE && tox + curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - + echo "deb https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee \ + /etc/apt/sources.list.d/google-cloud-sdk.list + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 install \ + google-cloud-sdk python3-venv -y cd $WORKSPACE/nfvbenchvm/dib bash verify-image.sh -v diff --git a/jjb/openci/create-ape.sh b/jjb/openci/create-ape.sh deleted file mode 100755 index 7c9b46cc6..000000000 --- a/jjb/openci/create-ape.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2018 Ericsson AB and others. -# 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 -############################################################################## -set -o errexit -set -o nounset -set -o pipefail - -# workaround for https://github.com/pypa/virtualenv/issues/1029 -export PS1=${PS1:-} - -# This script creates ArtifactPublishedEvent - -git clone https://gitlab.openci.io/openci/prototypes.git -cd prototypes/federated-cicd -virtualenv openci_publish -cd openci_publish -source bin/activate -python setup.py install - -# generate event body -cat <<EOF > ./json_body.txt -{ - "type": "$PUBLISH_EVENT_TYPE", - "id": "$(uuidgen)", - "time": "$(date -u +%Y-%m-%d_%H:%M:%SUTC)", - "buildUrl": "$BUILD_URL", - "branch": "master", - "origin": "$PUBLISH_EVENT_ORIGIN", - "artifactLocation": "$ARTIFACT_LOCATION", - "confidenceLevel": "$CONFIDENCE_LEVEL" -} -EOF - -echo "Constructed $PUBLISH_EVENT_TYPE" -echo "--------------------------------------------" -cat ./json_body.txt -echo "--------------------------------------------" - -python openci_publish -H 129.192.69.55 -U ${ACTIVEMQ_USER} -p ${ACTIVEMQ_PASSWORD} -n openci.prototype -B ./json_body.txt - -deactivate diff --git a/jjb/openci/create-cde.sh b/jjb/openci/create-cde.sh deleted file mode 100755 index 9780119ce..000000000 --- a/jjb/openci/create-cde.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2018 Ericsson AB and others. -# 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 -############################################################################## -set -o errexit -set -o nounset -set -o pipefail - -export PS1=${PS1:-} - -# This script creates CompositionDefinedEvent - -git clone https://gitlab.openci.io/openci/prototypes.git -cd prototypes/federated-cicd -virtualenv openci_publish -cd openci_publish -source bin/activate -python setup.py install - -# generate event body -cat <<EOF > ./json_body.txt -{ - "type": "$PUBLISH_EVENT_TYPE", - "id": "$(uuidgen)", - "time": "$(date -u +%Y-%m-%d_%H:%M:%SUTC)", - "buildUrl": "$BUILD_URL", - "branch": "master", - "origin": "$PUBLISH_EVENT_ORIGIN", - "scenario": "$DEPLOY_SCENARIO", - "compositionName": "$DEPLOY_SCENARIO", - "compositionMetadataUrl": "$SCENARIO_METADATA_LOCATION" -} -EOF - -echo "Constructed $PUBLISH_EVENT_TYPE" -echo "--------------------------------------------" -cat ./json_body.txt -echo "--------------------------------------------" - -python openci_publish -H 129.192.69.55 -U ${ACTIVEMQ_USER} -p ${ACTIVEMQ_PASSWORD} -n openci.prototype -B ./json_body.txt - -deactivate diff --git a/jjb/openci/create-clme.sh b/jjb/openci/create-clme.sh deleted file mode 100755 index 2ece019b0..000000000 --- a/jjb/openci/create-clme.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2018 Ericsson AB and others. -# 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 -############################################################################## -set -o errexit -set -o nounset -set -o pipefail - -export PS1=${PS1:-} - -# This script creates ConfidenceLevelModifiedEvent - -git clone https://gitlab.openci.io/openci/prototypes.git -cd prototypes/federated-cicd -virtualenv openci_publish -cd openci_publish -source bin/activate -python setup.py install - -# generate event body -cat <<EOF > ./json_body.txt -{ - "type": "$PUBLISH_EVENT_TYPE", - "id": "$(uuidgen)", - "time": "$(date -u +%Y-%m-%d_%H:%M:%SUTC)", - "buildUrl": "$BUILD_URL", - "branch": "master", - "origin": "$PUBLISH_EVENT_ORIGIN", - "scenario": "$DEPLOY_SCENARIO", - "compositionName": "$DEPLOY_SCENARIO", - "compositionMetadataUrl": "$SCENARIO_METADATA_LOCATION", - "confidenceLevel": "$CONFIDENCE_LEVEL" -} -EOF - -echo "Constructed $PUBLISH_EVENT_TYPE" -echo "--------------------------------------------" -cat ./json_body.txt -echo "--------------------------------------------" - -python openci_publish -H 129.192.69.55 -U ${ACTIVEMQ_USER} -p ${ACTIVEMQ_PASSWORD} -n openci.prototype -B ./json_body.txt - -deactivate diff --git a/jjb/openci/openci-odl-daily-jobs.yaml b/jjb/openci/openci-odl-daily-jobs.yaml deleted file mode 100644 index bdaca5742..000000000 --- a/jjb/openci/openci-odl-daily-jobs.yaml +++ /dev/null @@ -1,81 +0,0 @@ ---- -- project: - name: openci-odl - - project: '{name}' - - stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - - jobs: - - 'openci-odl-autorelease-daily-{stream}' - - 'openci-odl-promote-daily-{stream}' - -# This job gets triggered manually for the demo purposes. -# -# In prototype, either what this job does needs to be integrated to -# ODL autorelease job or triggered by the upstream autorelease job. -- job-template: - name: 'openci-odl-autorelease-daily-{stream}' - - disabled: '{obj:disabled}' - - concurrent: false - - parameters: - - string: - name: PUBLISH_EVENT_TYPE - default: ArtifactPublishedEvent - description: 'The type of the event this job publishes' - - string: - name: PUBLISH_EVENT_ORIGIN - default: ODL - description: 'Originating community' - - string: - name: ARTIFACT_LOCATION - default: https://url/to/artifact/on/odl/nexus/$BUILD_NUMBER - description: 'The location of the artifact on ODL Nexus' - - string: - name: CONFIDENCE_LEVEL - default: "'autorelease': 'SUCCESS'" - description: 'The confidence level the published artifact gained' - - 'opnfv-build-defaults' - - builders: - - shell: - !include-raw-escape: ./create-ape.sh - -# This job gets triggered by a ConfidenceLevelModifiedEvent published -# by OPNFV jobs so ODL can promote the autorelease artifact even further. -# -# This job is created for the demo purposes and might not be there for -# the prototype. -- job-template: - name: 'openci-odl-promote-daily-{stream}' - - disabled: '{obj:disabled}' - - concurrent: false - - parameters: - - 'opnfv-build-defaults' - - triggers: - - jms-messaging: - provider-name: openci.activemq - selector: | - JMSType = 'ConfidenceLevelModifiedEvent' and JMSOrigin = 'OPNFV' and JMSScenario = 'os-odl-nofeature-ha' - - builders: - - shell: | - #!/bin/bash - - echo - echo "Triggered by $type" - echo "----------------------------------" - echo $CI_MESSAGE - echo "----------------------------------" - echo " Promoted ODL Autorelease artifact as release candidate!" diff --git a/jjb/openci/openci-onap-daily-jobs.yaml b/jjb/openci/openci-onap-daily-jobs.yaml deleted file mode 100644 index 88589d8ac..000000000 --- a/jjb/openci/openci-onap-daily-jobs.yaml +++ /dev/null @@ -1,81 +0,0 @@ ---- -- project: - name: openci-onap - - project: '{name}' - - stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - - jobs: - - 'openci-onap-autorelease-daily-{stream}' - - 'openci-onap-promote-daily-{stream}' - -# This job gets triggered manually for the demo purposes. -# -# In prototype, either what this job does needs to be integrated to -# ONAP autorelease job or triggered by the upstream autorelease job. -- job-template: - name: 'openci-onap-autorelease-daily-{stream}' - - disabled: '{obj:disabled}' - - concurrent: false - - parameters: - - string: - name: PUBLISH_EVENT_TYPE - default: ArtifactPublishedEvent - description: 'The type of the event this job publishes' - - string: - name: PUBLISH_EVENT_ORIGIN - default: ONAP - description: 'Originating community' - - string: - name: ARTIFACT_LOCATION - default: https://url/to/artifact/on/onap/nexus/$BUILD_NUMBER - description: 'The location of the artifact on ONAP Nexus' - - string: - name: CONFIDENCE_LEVEL - default: "'autorelease': 'SUCCESS'" - description: 'The confidence level the published artifact gained' - - 'opnfv-build-defaults' - - builders: - - shell: - !include-raw-escape: ./create-ape.sh - -# This job gets triggered by a ConfidenceLevelModifiedEvent published -# by OPNFV jobs so ONAP can promote the autorelease artifact even further. -# -# This job is created for the demo purposes and might not be there for -# the prototype. -- job-template: - name: 'openci-onap-promote-daily-{stream}' - - disabled: '{obj:disabled}' - - concurrent: false - - parameters: - - 'opnfv-build-defaults' - - triggers: - - jms-messaging: - provider-name: openci.activemq - selector: | - JMSType = 'ConfidenceLevelModifiedEvent' and JMSOrigin = 'OPNFV' and JMSScenario = 'k8-nosdn-onap-ha' - - builders: - - shell: | - #!/bin/bash - - echo - echo "Triggered by $type" - echo "----------------------------------" - echo $CI_MESSAGE - echo "----------------------------------" - echo " Promoted ONAP Autorelease artifact as release candidate!" diff --git a/jjb/openci/openci-opnfv-daily-jobs.yaml b/jjb/openci/openci-opnfv-daily-jobs.yaml deleted file mode 100644 index 020171bc2..000000000 --- a/jjb/openci/openci-opnfv-daily-jobs.yaml +++ /dev/null @@ -1,135 +0,0 @@ ---- -- project: - name: openci-opnfv - - project: '{name}' - - stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - - scenario: - - 'os-odl-nofeature-ha': - origin: ODL - - 'k8-nosdn-onap-ha': - origin: ONAP - - jobs: - - 'openci-opnfv-{scenario}-compose-daily-{stream}' - - 'openci-opnfv-{scenario}-test-daily-{stream}' - -- job-template: - name: 'openci-opnfv-{scenario}-compose-daily-{stream}' - - disabled: '{obj:disabled}' - - concurrent: false - - parameters: - - string: - name: PUBLISH_EVENT_TYPE - default: CompositionDefinedEvent - description: 'The type of the event this job publishes' - - string: - name: PUBLISH_EVENT_ORIGIN - default: OPNFV - description: 'Originating community' - - string: - name: DEPLOY_SCENARIO - default: '{scenario}' - description: 'The scenario that is composed' - - string: - name: SCENARIO_METADATA_LOCATION - default: https://url/to/scenario/metadata/on/opnfv/artifact/repo/$BUILD_NUMBER - description: 'The location of the scenario metadata' - - label: - name: SLAVE_LABEL - default: 'xci-virtual' - all-nodes: false - node-eligibility: 'ignore-offline' - - wrappers: - - credentials-binding: - - username-password-separated: - credential-id: openci-connect-activemq - username: ACTIVEMQ_USER - password: ACTIVEMQ_PASSWORD - - workspace-cleanup - - triggers: - - jms-messaging: - provider-name: openci.activemq - selector: JMSType = 'ArtifactPublishedEvent' and JMSOrigin = '{origin}' - - builders: - - shell: | - #!/bin/bash - - echo - echo "Triggered by $type" - echo "----------------------------------" - echo $CI_MESSAGE - echo "----------------------------------" - - shell: - !include-raw-escape: ./create-cde.sh - -- job-template: - name: 'openci-opnfv-{scenario}-test-daily-{stream}' - - disabled: '{obj:disabled}' - - concurrent: false - - parameters: - - string: - name: PUBLISH_EVENT_TYPE - default: ConfidenceLevelModifiedEvent - description: 'The type of the event this job publishes' - - string: - name: PUBLISH_EVENT_ORIGIN - default: OPNFV - description: 'Originating community' - - string: - name: DEPLOY_SCENARIO - default: '{scenario}' - description: 'The scenario that is composed' - - string: - name: SCENARIO_METADATA_LOCATION - default: https://url/to/scenario/metadata/on/opnfv/artifact/repo/$BUILD_NUMBER - description: 'The location of the scenario metadata' - - string: - name: CONFIDENCE_LEVEL - default: "'opnfvdaily': 'SUCCESS'" - description: 'The confidence level the published artifact gained' - - label: - name: SLAVE_LABEL - default: 'xci-virtual' - all-nodes: false - node-eligibility: 'ignore-offline' - - wrappers: - - credentials-binding: - - username-password-separated: - credential-id: openci-connect-activemq - username: ACTIVEMQ_USER - password: ACTIVEMQ_PASSWORD - - workspace-cleanup - - triggers: - - jms-messaging: - provider-name: openci.activemq - selector: JMSType = 'CompositionDefinedEvent' and JMSOrigin = 'OPNFV' and JMSScenario = '{scenario}' - - builders: - - shell: | - #!/bin/bash - - echo - echo "Triggered by $type" - echo "----------------------------------" - echo $CI_MESSAGE - echo "----------------------------------" - - shell: - !include-raw-escape: ./create-clme.sh diff --git a/jjb/openci/openci-views.yaml b/jjb/openci/openci-views.yaml deleted file mode 100644 index 08cff7c28..000000000 --- a/jjb/openci/openci-views.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- project: - name: openci-view - views: - - project-view - project-name: openci diff --git a/jjb/opnfvdocs/docs-rtd.yaml b/jjb/opnfvdocs/docs-rtd.yaml deleted file mode 100644 index e680747ef..000000000 --- a/jjb/opnfvdocs/docs-rtd.yaml +++ /dev/null @@ -1,88 +0,0 @@ ---- -- project: - name: docs-rtd - project: 'opnfvdocs' - project-name: 'opnfvdocs' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfvdocsdemo/79560/' - rtd-token: 'a96c3622a270344cf9bf3f73b0dfa04f59fc59c0' - project-pattern: 'opnfvdocs' - jobs: - - '{project-name}-rtd-jobs' - - 'docs-merge-rtd-{stream}' - - 'docs-verify-rtd-{stream}' - - stream: - - master: - branch: 'master' - - iruya: - branch: 'stable/{stream}' - - jerma: - branch: 'stable/{stream}' - -- job-template: - name: 'docs-merge-rtd-{stream}' - - project-type: freestyle - - parameters: - - label: - name: SLAVE_LABEL - default: 'lf-build2' - description: 'Slave label on Jenkins' - all-nodes: false - node-eligibility: 'ignore-offline' - - project-parameter: - project: '{project}' - branch: '{branch}' - - triggers: - - gerrit-trigger-change-merged: - project: '**' - branch: '{branch}' - files: 'docs/**/*.*' - - builders: - - 'remove-old-docs-from-opnfv-artifacts' - -- job-template: - name: 'docs-verify-rtd-{stream}' - - project-type: freestyle - - parameters: - - label: - name: SLAVE_LABEL - default: 'lf-build2' - description: 'Slave label on Jenkins' - all-nodes: false - node-eligibility: 'ignore-offline' - - project-parameter: - project: '{project}' - branch: '{branch}' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/opnfvdocs - description: 'Git URL to use on this Jenkins Slave' - - scm: - - git-scm-with-submodules: - branch: '{branch}' - - triggers: - - gerrit-trigger-patchset-created: - server: 'gerrit.opnfv.org' - project: 'opnfvdocs' - branch: '{branch}' - files: 'docs/**' - - builders: - - shell: | - sudo -H pip install virtualenv - virtualenv $WORKSPACE/venv - . $WORKSPACE/venv/bin/activate - pip install --upgrade pip - pip freeze - pip install tox - sed -i s,\-b\ html,\-b\ singlehtml,g tox.ini - tox -edocs - - 'upload-review-docs' diff --git a/jjb/opnfvdocs/opnfvdocs-views.yaml b/jjb/opnfvdocs/opnfvdocs-views.yaml index 27645f9ec..f33c728ed 100644 --- a/jjb/opnfvdocs/opnfvdocs-views.yaml +++ b/jjb/opnfvdocs/opnfvdocs-views.yaml @@ -1,6 +1,12 @@ --- -- project: - name: opnfvdocs-view - views: - - project-view - project-name: opnfvdocs +- view: + name: opnfvdocs + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: ^opnfvdocs-.* diff --git a/jjb/opnfvdocs/opnfvdocs.yaml b/jjb/opnfvdocs/opnfvdocs.yaml index 22d67d637..3047a740e 100644 --- a/jjb/opnfvdocs/opnfvdocs.yaml +++ b/jjb/opnfvdocs/opnfvdocs.yaml @@ -1,113 +1,62 @@ --- -######################## -# Job configuration for opnfvdocs -######################## -- project: - - name: opnfvdocs - - project: '{name}' - - jobs: - - 'opnfvdocs-verify-shellcheck-{stream}' - - 'opnfvdocs-merge-shellcheck-{stream}' - - stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - - hunter: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - -######################## -# job templates -######################## - -- job-template: - name: 'opnfvdocs-verify-shellcheck-{stream}' - - disabled: '{obj:disabled}' - - parameters: - - project-parameter: - project: $GERRIT_PROJECT - branch: '{branch}' - - string: - name: GIT_CLONE_BASE - default: ssh://gerrit.opnfv.org:29418 - description: "Used for overriding the GIT URL coming from parameters macro." - - 'opnfv-build-defaults' - +- scm: + name: opnfvdocs-scm scm: - - git-scm-gerrit - + - git: + url: 'https://gerrit.opnfv.org/gerrit/opnfvdocs' + refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*' + branches: + - '{ref}' + +- builder: + name: opnfvdocs-lint-bash-code + builders: + - shell: | + #!/bin/bash + echo "Checking bash code..." + for f in $(egrep '\.sh$' modified_files) + do + bash -n "$f" 2>> bash-violation.log + done + if [[ -s bash-violation.log ]]; then + echo -e "Bash syntax error(s)\n---" >> violation.log + sed -e 's/^/ /g' bash-violation.log >> violation.log + fi + +- trigger: + name: opnfvdocs-patchset-created triggers: - gerrit: - server-name: 'gerrit.opnfv.org' trigger-on: - - patchset-created-event: - exclude-drafts: 'false' - exclude-trivial-rebase: 'false' - exclude-no-code-change: 'false' - - draft-published-event + - patchset-created-event - comment-added-contains-event: comment-contains-value: 'recheck' - comment-added-contains-event: comment-contains-value: 'reverify' projects: - - project-compare-type: 'REG_EXP' - project-pattern: '{project}' + - project-compare-type: 'ANT' + project-pattern: 'opnfvdocs' branches: - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - skip-vote: - successful: true - failed: true - unstable: true - notbuilt: true - - builders: - - lint-bash-code + branch-pattern: master + - branch-compare-type: 'ANT' + branch-pattern: stable/nile - job-template: - name: 'opnfvdocs-merge-shellcheck-{stream}' - - disabled: '{obj:disabled}' - + name: opnfvdocs-verify-shellcheck parameters: - - project-parameter: - project: $GERRIT_PROJECT - branch: '{branch}' - - string: - name: GIT_CLONE_BASE - default: ssh://gerrit.opnfv.org:29418 - description: "Used for overriding the GIT URL coming from parameters macro." - - string: - name: GS_URL - default: '$GS_BASE{gs-pathname}' - description: "Directory where the build artifact will be located upon\ - \ the completion of the build." - - 'opnfv-build-defaults' - + - label: + name: node + default: opnfv-build scm: - - git-scm - + - opnfvdocs-scm: + ref: $GERRIT_REFSPEC triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - change-merged-event - - comment-added-contains-event: - comment-contains-value: 'remerge' - projects: - - project-compare-type: 'REG_EXP' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - + - opnfvdocs-patchset-created builders: - - lint-bash-code + - opnfvdocs-lint-bash-code + +- project: + name: opnfvdocs + jobs: + - opnfvdocs-verify-shellcheck diff --git a/jjb/opnfvtsc/opnfvtsc-rtd-jobs.yaml b/jjb/opnfvtsc/opnfvtsc-rtd-jobs.yaml deleted file mode 100644 index b1923f458..000000000 --- a/jjb/opnfvtsc/opnfvtsc-rtd-jobs.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -- project: - name: opnfvtsc-rtd - project: opnfvtsc - project-name: opnfvtsc - - gerrit-skip-vote: true - project-pattern: 'opnfvtsc' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-opnfvtsc/47400/' - rtd-token: 'b8cbc26c46f1b1bd98adbf8c4488787a58d68fdd' - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/opnfvtsc/opnfvtsc-views.yaml b/jjb/opnfvtsc/opnfvtsc-views.yaml deleted file mode 100644 index 7c2929557..000000000 --- a/jjb/opnfvtsc/opnfvtsc-views.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- project: - name: opnfvtsc-view - views: - - project-view - project-name: opnfvtsc diff --git a/jjb/ovn4nfv/golang-make-test.sh b/jjb/ovn4nfv/golang-make-test.sh deleted file mode 100644 index 7ed463277..000000000 --- a/jjb/ovn4nfv/golang-make-test.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2018 Intel Corporation. -# 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 -############################################################################## -set -o errexit -set -o pipefail - -source /etc/os-release || source /usr/lib/os-release -case ${ID,,} in - ubuntu|debian) - sudo add-apt-repository -y ppa:longsleep/golang-backports - sudo apt-get update - sudo apt-get install -y build-essential golang-go - sudo apt-get -y clean && sudo apt-get -y autoremove - ;; -esac - -echo "Running unit tests in Go ${golang_version} ..." -cd $WORKSPACE -make test diff --git a/jjb/ovn4nfv/ovn4nfv-k8s-plugins-project-jobs.yaml b/jjb/ovn4nfv/ovn4nfv-k8s-plugins-project-jobs.yaml deleted file mode 100644 index 849be93c1..000000000 --- a/jjb/ovn4nfv/ovn4nfv-k8s-plugins-project-jobs.yaml +++ /dev/null @@ -1,109 +0,0 @@ ---- -- project: - name: ovn4nfv-k8s-plugin-project-jobs - - project: 'ovn4nfv-k8s-plugin' - - jobs: - - 'ovn4nfv-k8s-plugin-verify-{stream}' - - 'ovn4nfv-k8s-plugin-merge-{stream}' - - stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - -################################ -# job templates -################################ - -- job-template: - name: 'ovn4nfv-k8s-plugin-verify-{stream}' - - disabled: '{obj:disabled}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - opnfv-build-defaults - - scm: - - git-scm-gerrit - - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event: - exclude-drafts: 'false' - exclude-trivial-rebase: 'false' - exclude-no-code-change: 'false' - - draft-published-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - - wrappers: - - ssh-agent-wrapper - - timeout: - timeout: 30 - fail: true - - builders: - - ovn4nfv-k8s-plugin-unit-tests-golang - -- job-template: - name: 'ovn4nfv-k8s-plugin-merge-{stream}' - - disabled: '{obj:disabled}' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - opnfv-build-defaults - - scm: - - git-scm - - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - change-merged-event - - comment-added-contains-event: - comment-contains-value: 'remerge' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - - wrappers: - - ssh-agent-wrapper - - timeout: - timeout: 30 - fail: true - - builders: - - ovn4nfv-k8s-plugin-unit-tests-golang - -################################ -# job builders -################################ - -- builder: - name: ovn4nfv-k8s-plugin-unit-tests-golang - builders: - - shell: - !include-raw: ./golang-make-test.sh diff --git a/jjb/pharos/check-jinja2.yaml b/jjb/pharos/check-jinja2.yaml deleted file mode 100644 index e3f0df78a..000000000 --- a/jjb/pharos/check-jinja2.yaml +++ /dev/null @@ -1,98 +0,0 @@ ---- -######################## -# Job configuration to validate jinja2 files -######################## -- project: - - name: validate-pdf-templates - - project: 'pharos' - - jobs: - - 'validate-pdf-jinja2-templates-{stream}' - - stream: - - master: - branch: '{stream}' - disabled: false - - fraser: &fraser - branch: 'stable/{stream}' - disabled: false - - euphrates: - branch: 'stable/{stream}' - disabled: false - -######################## -# job templates -######################## - -- job-template: - name: 'validate-pdf-jinja2-templates-{stream}' - - disabled: '{obj:disabled}' - - concurrent: true - - parameters: - - project-parameter: - project: $GERRIT_PROJECT - branch: '{branch}' - - node: - name: SLAVE_NAME - description: Slave to execute jnija template test - default-slaves: - - lf-build1 - allowed-multiselect: true - ignore-offline-nodes: true - - scm: - - git-scm-gerrit - - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event: - exclude-drafts: 'false' - exclude-trivial-rebase: 'false' - exclude-no-code-change: 'false' - - draft-published-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'REG_EXP' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: '**/*.yaml' - - compare-type: ANT - pattern: 'config/utils/*.py' - - compare-type: ANT - pattern: 'config/installers/**/*.j2' - - compare-type: ANT - pattern: 'check-*.sh' - skip-vote: - successful: false - failed: false - unstable: false - notbuilt: false - - builders: - - check-pdf-jinja - - check-pdf-schema - -- builder: - name: check-pdf-jinja - builders: - - shell: | - $WORKSPACE/config/utils/check-jinja2.sh -- builder: - name: check-pdf-schema - builders: - - shell: | - $WORKSPACE/config/utils/check-schema.sh diff --git a/jjb/pharos/pharos-rtd-jobs.yaml b/jjb/pharos/pharos-rtd-jobs.yaml deleted file mode 100644 index 60bcd8a00..000000000 --- a/jjb/pharos/pharos-rtd-jobs.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -- project: - name: pharos-rtd - project: pharos - project-name: pharos - - project-pattern: 'pharos' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-pharos/47385/' - rtd-token: '12cb789478d0c3577fb62c610232b3113d3a16ad' - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/pharos/pharos-views.yaml b/jjb/pharos/pharos-views.yaml deleted file mode 100644 index e413632a8..000000000 --- a/jjb/pharos/pharos-views.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- project: - name: pharos-view - views: - - project-view - project-name: pharos diff --git a/jjb/pharos/pharos.yaml b/jjb/pharos/pharos.yaml deleted file mode 100644 index 0b5119657..000000000 --- a/jjb/pharos/pharos.yaml +++ /dev/null @@ -1,11 +0,0 @@ ---- -- project: - name: pharos - - project: - - '{name}' - - disabled: false - - jobs: - - '{project}-verify-basic' diff --git a/jjb/releng/artifact-cleanup.yaml b/jjb/releng/artifact-cleanup.yaml deleted file mode 100644 index 2a250618c..000000000 --- a/jjb/releng/artifact-cleanup.yaml +++ /dev/null @@ -1,41 +0,0 @@ ---- -- project: - name: releng-artifact-cleanup - - project: 'releng' - - jobs: - - 'releng-artifact-cleanup-daily-{stream}' - - stream: - - master: - branch: '{stream}' - gs-pathname: '' - - -- job-template: - name: 'releng-artifact-cleanup-daily-{stream}' - - # Job template for daily builders - # - # Required Variables: - # stream: branch with - in place of / (eg. stable) - # branch: branch (eg. stable) - node: master - - disabled: false - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - scm: - - git-scm - - triggers: - - timed: 'H H * * *' - - builders: - - shell: | - $WORKSPACE/utils/retention_script.sh diff --git a/jjb/releng/branch-or-tag.sh b/jjb/releng/branch-or-tag.sh index 0fdb24fca..f9767eca1 100755 --- a/jjb/releng/branch-or-tag.sh +++ b/jjb/releng/branch-or-tag.sh @@ -8,6 +8,7 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## set -e -o pipefail +set -x GIT_URL=${GIT_URL:-https://gerrit.opnfv.org/gerrit} STREAM=${STREAM:-'nostream'} @@ -16,7 +17,7 @@ RELEASE_FILES=$(git diff HEAD^1 --name-only -- "releases/$STREAM") echo "--> Verifying $RELEASE_FILES." for release_file in $RELEASE_FILES; do # Verify the release file schema - python releases/scripts/verify_schema.py \ + python3 releases/scripts/verify_schema.py \ -s releases/schema.yaml \ -y $release_file done @@ -29,12 +30,11 @@ for release_file in $RELEASE_FILES; do if [ -n "$branch_actual" ]; then echo "$repo refs/heads/$branch already exists at $branch_actual" - echo "RUN releng-release-create-venv.sh" source jjb/releng/releng-release-tagging.sh else echo "This is a branching job" source jjb/releng/releng-release-create-branch.sh fi - done < <(python releases/scripts/repos.py -b -f "$release_file") + done < <(python3 releases/scripts/repos.py -b -f "$release_file") done diff --git a/jjb/releng/opnfv-docker-arm.yaml b/jjb/releng/opnfv-docker-arm.yaml deleted file mode 100644 index 8a10a28b6..000000000 --- a/jjb/releng/opnfv-docker-arm.yaml +++ /dev/null @@ -1,215 +0,0 @@ ---- -############################################## -# job configuration for docker build and push -############################################## - -- project: - - name: opnfv-docker-arm - - master: &master - stream: master - branch: '{stream}' - disabled: false - euphrates: &euphrates - stream: euphrates - branch: 'stable/{stream}' - disabled: false - hunter: &hunter - stream: hunter - branch: 'stable/{stream}' - disabled: false - iruya: &iruya - stream: iruya - branch: 'stable/{stream}' - disabled: false - jerma: &jerma - stream: jerma - branch: 'stable/{stream}' - disabled: false - dovetail-arm-receivers: &dovetail-arm-receivers - receivers: > - cristina.pauna@enea.com - alexandru.avadanii@enea.com - storperf-arm-receivers: &storperf-arm-receivers - receivers: > - cristina.pauna@enea.com - alexandru.avadanii@enea.com - mbeierl@vmware.com - other-receivers: &other-receivers - receivers: '' - - dockerfile: "Dockerfile" - dockerdir: "docker" - docker_repo_name: "opnfv/{project}_aarch64" - arch_tag: "" - extra_build_args: "" - - # yamllint disable rule:key-duplicates - dockerrepo: - # projects with jobs for master - - 'dovetail': - project: 'dovetail' - <<: *master - <<: *dovetail-arm-receivers - - 'storperf-master': - project: 'storperf' - dockerdir: 'docker/storperf-master' - docker_repo_name: 'opnfv/storperf-master' - arch_tag: 'aarch64' - <<: *master - <<: *storperf-arm-receivers - - 'storperf-graphite': - project: 'storperf' - dockerdir: 'docker/storperf-graphite' - docker_repo_name: 'opnfv/storperf-graphite' - arch_tag: 'aarch64' - <<: *master - <<: *storperf-arm-receivers - - 'storperf-httpfrontend': - project: 'storperf' - dockerdir: 'docker/storperf-httpfrontend' - docker_repo_name: 'opnfv/storperf-httpfrontend' - arch_tag: 'aarch64' - <<: *master - <<: *storperf-arm-receivers - - 'storperf-reporting': - project: 'storperf' - dockerdir: 'docker/storperf-reporting' - docker_repo_name: 'opnfv/storperf-reporting' - arch_tag: 'aarch64' - <<: *master - <<: *storperf-arm-receivers - - 'storperf-swaggerui': - project: 'storperf' - dockerdir: 'docker/storperf-swaggerui' - docker_repo_name: 'opnfv/storperf-swaggerui' - arch_tag: 'aarch64' - <<: *master - <<: *storperf-arm-receivers - - 'storperf-workloadagent': - project: 'storperf' - dockerdir: 'docker/storperf-workloadagent' - docker_repo_name: 'opnfv/storperf-workloadagent' - arch_tag: 'aarch64' - <<: *master - <<: *storperf-arm-receivers - - # projects with jobs for stable/euphrates - - 'dovetail': - project: 'dovetail' - <<: *euphrates - <<: *dovetail-arm-receivers - - # projects with jobs for stable/iruya - - 'storperf-master': - project: 'storperf' - dockerdir: 'docker/storperf-master' - docker_repo_name: 'opnfv/storperf-master' - arch_tag: 'aarch64' - <<: *iruya - <<: *storperf-arm-receivers - - 'storperf-graphite': - project: 'storperf' - dockerdir: 'docker/storperf-graphite' - docker_repo_name: 'opnfv/storperf-graphite' - arch_tag: 'aarch64' - <<: *iruya - <<: *storperf-arm-receivers - - 'storperf-httpfrontend': - project: 'storperf' - dockerdir: 'docker/storperf-httpfrontend' - docker_repo_name: 'opnfv/storperf-httpfrontend' - arch_tag: 'aarch64' - <<: *iruya - <<: *storperf-arm-receivers - - 'storperf-reporting': - project: 'storperf' - dockerdir: 'docker/storperf-reporting' - docker_repo_name: 'opnfv/storperf-reporting' - arch_tag: 'aarch64' - <<: *iruya - <<: *storperf-arm-receivers - - 'storperf-swaggerui': - project: 'storperf' - dockerdir: 'docker/storperf-swaggerui' - docker_repo_name: 'opnfv/storperf-swaggerui' - arch_tag: 'aarch64' - <<: *iruya - <<: *storperf-arm-receivers - - 'storperf-workloadagent': - project: 'storperf' - dockerdir: 'docker/storperf-workloadagent' - docker_repo_name: 'opnfv/storperf-workloadagent' - arch_tag: 'aarch64' - <<: *iruya - <<: *storperf-arm-receivers - - # yamllint enable rule:key-duplicates - jobs: - - '{dockerrepo}-docker-build-arm-push-{stream}' - -######################## -# job templates -######################## -- job-template: - name: '{dockerrepo}-docker-build-arm-push-{stream}' - - disabled: '{obj:disabled}' - - parameters: ¶meters - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-ubuntu-arm-defaults' - - string: - name: PUSH_IMAGE - default: "true" - description: "To enable/disable pushing the image to Dockerhub." - - string: - name: DOCKER_REPO_NAME - default: "{docker_repo_name}" - description: "Dockerhub repo to be pushed to." - - string: - name: GERRIT_REFNAME - default: "" - description: "Docker tag to be built, e.g. refs/tags/5.0.0, refs/tags/opnfv-5.0.0, refs/tags/5.0.RC1" - - string: - name: DOCKER_DIR - default: "{dockerdir}" - description: "Directory containing files needed by the Dockerfile" - - string: - name: DOCKERFILE - default: "{dockerfile}" - description: "Dockerfile to use for creating the image." - - string: - name: ARCH_TAG - default: "{arch_tag}" - description: "If set, this value will be added to the docker image tag" - - string: - name: EXTRA_BUILD_ARGS - default: "{extra_build_args}" - description: "Whitespace separated key=value pairs. If set, these args will be used to build docker image" - - properties: - - throttle: - max-per-node: 1 - option: 'project' - - scm: - - git-scm - - builders: &builders - - shell: - !include-raw-escape: ./opnfv-docker.sh - - triggers: - - pollscm: - cron: "*/30 * * * *" - - gerrit-trigger-tag-created: - project: '{project}' - - publishers: - - email: - recipients: '{receivers}' - - email-jenkins-admins-on-failure diff --git a/jjb/releng/opnfv-docker-custom.yaml b/jjb/releng/opnfv-docker-custom.yaml deleted file mode 100644 index e564ab5ef..000000000 --- a/jjb/releng/opnfv-docker-custom.yaml +++ /dev/null @@ -1,111 +0,0 @@ ---- -######################## -# Job configuration for opnfv-docker-custom -######################## -- project: - - name: opnfv-docker-custom - - project: '{name}' - - jobs: - - 'opnfv-docker-custom-verify-{stream}' - - 'opnfv-docker-custom-merge-{stream}' - - stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - - danube: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - -######################## -# job templates -######################## - -- job-template: - name: 'opnfv-docker-custom-verify-{stream}' - - disabled: '{obj:disabled}' - - parameters: - - project-parameter: - project: $GERRIT_PROJECT - branch: '{branch}' - - scm: - - git-scm-gerrit - - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event: - exclude-drafts: 'false' - exclude-trivial-rebase: 'false' - exclude-no-code-change: 'false' - - draft-published-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'REG_EXP' - project-pattern: 'disabled' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: 'docker/**' - - builders: - - verify-docker - -- job-template: - name: 'opnfv-docker-custom-merge-{stream}' - - disabled: '{obj:disabled}' - - parameters: - - project-parameter: - project: $GERRIT_PROJECT - branch: '{branch}' - - scm: - - git-scm - - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - change-merged-event - - comment-added-contains-event: - comment-contains-value: 'remerge' - projects: - - project-compare-type: 'REG_EXP' - project-pattern: 'disabled' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: 'docker/**' - - builders: - - merge-docker - -- builder: - name: verify-docker - builders: - - shell: | - /bin/bash $WORKSPACE/verify-docker.sh - -- builder: - name: merge-docker - builders: - - shell: | - /bin/bash $WORKSPACE/merge-docker.sh diff --git a/jjb/releng/opnfv-docker.sh b/jjb/releng/opnfv-docker.sh deleted file mode 100644 index 40e0ed6e2..000000000 --- a/jjb/releng/opnfv-docker.sh +++ /dev/null @@ -1,168 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2016 Ericsson AB and others. -# 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 -############################################################################## -set -o errexit -set -o nounset -set -o pipefail - - -echo "Using Docker $(docker --version) on $NODE_NAME" -echo "Starting Docker build for $DOCKER_REPO_NAME ..." -echo "--------------------------------------------------------" -echo - -function remove_containers_images() -{ - # Remove previous running containers if exist - # - # $ docker ps -a - # CONTAINER ID IMAGE COMMAND ... - # 6a796ed40b8e opnfv/example-tasks:latest "/bin/bash" ... - # 99fcb59f4787 opnfv/example-tasks-base:latest "/bin/bash" ... - # cc5eee16b995 opnfv/example-tasks-k8s "/bin/bash" ... - # - # Cut image name by leading space and ending space or colon(tag) - if [[ -n "$(docker ps -a | grep " $DOCKER_REPO_NAME[ :]")" ]]; then - echo "Removing existing $DOCKER_REPO_NAME containers..." - docker ps -a | grep " $DOCKER_REPO_NAME[ :]" | awk '{print $1}' | xargs docker rm -f - t=60 - # Wait max 60 sec for containers to be removed - while [[ $t -gt 0 ]] && [[ -n "$(docker ps| grep " $DOCKER_REPO_NAME[ :]")" ]]; do - sleep 1 - let t=t-1 - done - fi - - - # Remove existing images if exist - # - # $ docker images - # REPOSITORY TAG IMAGE ID ... - # opnfv/example-tasks latest 6501569fd328 ... - # opnfv/example-tasks-base latest 8764fe29c434 ... - # opnfv/example-tasks-k8s latest 61094cac9e65 ... - # - # Cut image name by start of line and ending space - if [[ -n "$(docker images | grep "^$DOCKER_REPO_NAME ")" ]]; then - echo "Docker images to remove:" - docker images | head -1 && docker images | grep "^$DOCKER_REPO_NAME " - image_ids=($(docker images | grep "^$DOCKER_REPO_NAME " | awk '{print $3}')) - for id in "${image_ids[@]}"; do - if [[ -n "$(docker images|grep "^$DOCKER_REPO_NAME "|grep $id)" ]]; then - echo "Removing docker image $DOCKER_REPO_NAME:$id..." - docker rmi -f $id - fi - done - fi -} - - -count=30 # docker build jobs might take up to ~30 min -while [[ -n `ps -ef| grep 'docker build' | grep $DOCKER_REPO_NAME | grep -v grep` ]]; do - echo "Build or cleanup of $DOCKER_REPO_NAME in progress. Waiting..." - sleep 60 - count=$(( $count - 1 )) - if [ $count -eq 0 ]; then - echo "Timeout. Aborting..." - exit 1 - fi -done - -# Remove the existing containers and images before building -remove_containers_images - -DOCKER_PATH=$WORKSPACE/$DOCKER_DIR - -cd $DOCKER_PATH || exit 1 -HOST_ARCH="$(uname -m)" -#If there is a patch for other arch then x86, apply the patch and -#replace Dockerfile file -dockerfile_patch="Dockerfile.${HOST_ARCH}.patch" -if [[ -f "${dockerfile_patch}" ]]; then - patch -f Dockerfile -p1 < "${dockerfile_patch}" -fi - -# Get tag version -echo "Current branch: $BRANCH" - -BUILD_BRANCH=$BRANCH - -GERRIT_REFNAME=${GERRIT_REFNAME:-''} -RELEASE_VERSION=${GERRIT_REFNAME/refs\/tags\/} - -# If we're being triggered by a comment-added job, then extract the tag -# from the comment and use that as the release version. -# Expected comment format: retag opnfv-x.y.z -if [[ "${GERRIT_EVENT_TYPE:-}" == "comment-added" ]]; then - RELEASE_VERSION=$(echo "$GERRIT_EVENT_COMMENT_TEXT" | grep 'retag' | awk '{print $2}') -fi - -if [[ "$BRANCH" == "master" ]]; then - DOCKER_TAG="latest" -fi - -if [[ "$BRANCH" =~ "stable" ]]; then - DOCKER_TAG="stable" -fi - -if [[ -n "${RELEASE_VERSION-}" ]]; then - DOCKER_TAG=${RELEASE_VERSION} - if git checkout ${RELEASE_VERSION}; then - echo "Successfully checked out the git tag ${RELEASE_VERSION}" - else - echo "The tag ${RELEASE_VERSION} doesn't exist in the repository. Existing tags are:" - git tag - exit 1 - fi -fi - -if [[ -n "${COMMIT_ID-}" && -n "${RELEASE_VERSION-}" ]]; then - DOCKER_TAG=$RELEASE_VERSION - BUILD_BRANCH=$COMMIT_ID -fi - -ARCH_BUILD_ARG="" -ARCH_TAG=${ARCH_TAG:-} -if [[ -n "${ARCH_TAG}" ]]; then - DOCKER_TAG=${ARCH_TAG}-${DOCKER_TAG} - ARCH_BUILD_ARG="--build-arg ARCH=${ARCH_TAG}" -fi - -EXTRA_BUILD_ARGS=${EXTRA_BUILD_ARGS:-} -if [ -n "${EXTRA_BUILD_ARGS}" ]; then - EXTRA_BUILD_ARGS=" "$(echo ${EXTRA_BUILD_ARGS}) - EXTRA_BUILD_ARGS=${EXTRA_BUILD_ARGS// / --build-arg } -fi - -# Start the build -echo "Building docker image: $DOCKER_REPO_NAME:$DOCKER_TAG" -echo "--------------------------------------------------------" -echo -cmd="docker build --pull=true --no-cache -t $DOCKER_REPO_NAME:$DOCKER_TAG --build-arg BRANCH=$BUILD_BRANCH - $ARCH_BUILD_ARG $EXTRA_BUILD_ARGS - -f $DOCKERFILE $DOCKER_PATH" - -echo ${cmd} -${cmd} - - -# list the images -echo "Available images are:" -docker images - -# Push image to Dockerhub -if [[ "$PUSH_IMAGE" == "true" ]]; then - echo "Pushing $DOCKER_REPO_NAME:$DOCKER_TAG to the docker registry..." - echo "--------------------------------------------------------" - echo - docker push $DOCKER_REPO_NAME:$DOCKER_TAG -fi - -# Remove the existing containers and images after building -remove_containers_images diff --git a/jjb/releng/opnfv-docker.yaml b/jjb/releng/opnfv-docker.yaml deleted file mode 100644 index b0cbd3685..000000000 --- a/jjb/releng/opnfv-docker.yaml +++ /dev/null @@ -1,424 +0,0 @@ ---- -############################################## -# job configuration for docker build and push -############################################## - -- project: - - name: opnfv-docker - - master: &master - stream: master - branch: '{stream}' - disabled: false - hunter: &hunter - stream: hunter - branch: 'stable/{stream}' - disabled: false - iruya: &iruya - stream: iruya - branch: 'stable/{stream}' - disabled: false - jerma: &jerma - stream: jerma - branch: 'stable/{stream}' - disabled: false - laas-receivers: &laas_receivers - receivers: > - pberberian@iol.unh.edu - sbergeron@iol.unh.edu - storperf-receivers: &storperf-receivers - receivers: > - mbeierl@vmware.com - other-receivers: &other-receivers - receivers: '' - - dockerfile: "Dockerfile" - dockerdir: "docker" - arch_tag: "" - extra_build_args: "" - - # This is the dockerhub repo the image will be pushed to as - # 'opnfv/{dockerrepo}. See: DOCKER_REPO_NAME parameter. - # 'project' is the OPNFV repo we expect to contain the Dockerfile - # yamllint disable rule:key-duplicates - dockerrepo: - # projects with jobs for master - - 'releng-anteater': - project: 'releng-anteater' - <<: *master - <<: *other-receivers - - 'barometer-collectd': - project: 'barometer' - dockerdir: 'docker/barometer-collectd' - <<: *master - <<: *other-receivers - - 'barometer-collectd-experimental': - project: 'barometer' - dockerdir: '.' - dockerfile: 'docker/barometer-collectd-experimental/Dockerfile' - <<: *master - <<: *other-receivers - - 'barometer-collectd-latest': - project: 'barometer' - dockerdir: '.' - dockerfile: 'docker/barometer-collectd-latest/Dockerfile' - <<: *master - <<: *other-receivers - - 'barometer-dma': - project: 'barometer' - dockerdir: 'docker/barometer-dma' - <<: *master - <<: *other-receivers - - 'barometer-grafana': - project: 'barometer' - dockerdir: 'docker/barometer-grafana' - <<: *master - <<: *other-receivers - - 'barometer-influxdb': - project: 'barometer' - dockerdir: 'docker/barometer-influxdb' - <<: *master - <<: *other-receivers - - 'barometer-kafka': - project: 'barometer' - dockerdir: 'docker/barometer-kafka' - <<: *master - <<: *other-receivers - - 'barometer-ves': - project: 'barometer' - dockerdir: 'docker/barometer-ves' - <<: *master - <<: *other-receivers - - 'barometer-snmp': - project: 'barometer' - dockerdir: 'docker/barometer-snmp' - <<: *master - <<: *other-receivers - - 'clover': - project: 'clover' - dockerdir: '.' - dockerfile: 'docker/Dockerfile' - <<: *master - <<: *other-receivers - - 'clover-ns-nginx-lb': - project: 'clover' - dockerdir: 'samples/services/nginx/docker' - dockerfile: 'subservices/lb/Dockerfile' - <<: *master - <<: *other-receivers - - 'clover-ns-nginx-proxy': - project: 'clover' - dockerdir: 'samples/services/nginx/docker' - dockerfile: 'subservices/proxy/Dockerfile' - <<: *master - <<: *other-receivers - - 'clover-ns-nginx-server': - project: 'clover' - dockerdir: 'samples/services/nginx/docker' - dockerfile: 'subservices/server/Dockerfile' - <<: *master - <<: *other-receivers - - 'clover-ns-snort-ids': - project: 'clover' - dockerdir: 'samples/services/snort_ids/docker' - dockerfile: 'Dockerfile' - <<: *master - <<: *other-receivers - - 'clover-controller': - project: 'clover' - dockerdir: 'clover/controller' - dockerfile: 'docker/Dockerfile' - <<: *master - <<: *other-receivers - - 'clover-collector': - project: 'clover' - dockerdir: 'clover/collector' - dockerfile: 'docker/Dockerfile' - <<: *master - <<: *other-receivers - - 'clover-jmeter-master': - project: 'clover' - dockerdir: 'clover/tools/jmeter' - dockerfile: 'jmeter-master/Dockerfile' - <<: *master - <<: *other-receivers - - 'clover-jmeter-slave': - project: 'clover' - dockerdir: 'clover/tools/jmeter' - dockerfile: 'jmeter-slave/Dockerfile' - <<: *master - <<: *other-receivers - - 'clover-sample-app': - project: 'clover' - dockerdir: 'samples/scenarios/sample_app' - dockerfile: 'Dockerfile' - <<: *master - <<: *other-receivers - - 'clover-ns-modsecurity-crs': - project: 'clover' - dockerdir: 'samples/services/modsecurity/docker' - dockerfile: 'Dockerfile' - <<: *master - <<: *other-receivers - - 'clover-spark': - project: 'clover' - dockerdir: 'clover/spark/docker/clover-spark' - dockerfile: 'Dockerfile' - <<: *master - <<: *other-receivers - - 'clover-spark-submit': - project: 'clover' - dockerdir: 'clover/spark/docker/spark-submit' - dockerfile: 'Dockerfile' - <<: *master - <<: *other-receivers - - 'clover-clovisor': - project: 'clover' - dockerdir: 'clover/clovisor' - dockerfile: 'Dockerfile' - <<: *master - <<: *other-receivers - - 'dovetail': - project: 'dovetail' - <<: *master - <<: *other-receivers - - 'dovetail-webportal-api': - project: 'dovetail-webportal' - dockerfile: 'Dockerfile.api' - <<: *master - <<: *other-receivers - - 'dovetail-webportal-web': - project: 'dovetail-webportal' - dockerfile: 'Dockerfile.web' - <<: *master - <<: *other-receivers - - 'dovetail-webportal-web-onap': - project: 'dovetail-webportal' - dockerfile: 'Dockerfile.web' - extra_build_args: 'CONTAINER=onap GUI=onap-ui' - <<: *master - <<: *other-receivers - - 'nfvbench': - project: 'nfvbench' - <<: *master - <<: *other-receivers - - 'laas-dashboard': - project: 'laas' - dockerdir: '.' - dockerfile: 'web/Dockerfile' - <<: *master - <<: *laas_receivers - - 'laas-celery': - project: 'laas' - dockerdir: '.' - dockerfile: 'worker/Dockerfile' - <<: *master - <<: *laas_receivers - - 'storperf-master': - project: 'storperf' - dockerdir: 'docker/storperf-master' - arch_tag: 'x86_64' - <<: *master - <<: *storperf-receivers - - 'storperf-graphite': - project: 'storperf' - dockerdir: 'docker/storperf-graphite' - arch_tag: 'x86_64' - <<: *master - <<: *storperf-receivers - - 'storperf-httpfrontend': - project: 'storperf' - dockerdir: 'docker/storperf-httpfrontend' - arch_tag: 'x86_64' - <<: *master - <<: *storperf-receivers - - 'storperf-reporting': - project: 'storperf' - dockerdir: 'docker/storperf-reporting' - arch_tag: 'x86_64' - <<: *master - <<: *storperf-receivers - - 'storperf-swaggerui': - project: 'storperf' - dockerdir: 'docker/storperf-swaggerui' - arch_tag: 'x86_64' - <<: *master - <<: *storperf-receivers - - 'storperf-workloadagent': - project: 'storperf' - dockerdir: 'docker/storperf-workloadagent' - arch_tag: 'x86_64' - <<: *master - <<: *storperf-receivers - - 'samplevnf': - project: 'samplevnf' - dockerdir: 'VNFs/DPPD-PROX/helper-scripts/rapid' - <<: *master - <<: *other-receivers - - # projects with jobs for hunter - - 'dovetail': - project: 'dovetail' - <<: *hunter - <<: *other-receivers - - # projects with jobs for iruya - - 'storperf-master': - project: 'storperf' - dockerdir: 'docker/storperf-master' - arch_tag: 'x86_64' - <<: *iruya - <<: *storperf-receivers - - 'storperf-graphite': - project: 'storperf' - dockerdir: 'docker/storperf-graphite' - arch_tag: 'x86_64' - <<: *iruya - <<: *storperf-receivers - - 'storperf-httpfrontend': - project: 'storperf' - dockerdir: 'docker/storperf-httpfrontend' - arch_tag: 'x86_64' - <<: *iruya - <<: *storperf-receivers - - 'storperf-reporting': - project: 'storperf' - dockerdir: 'docker/storperf-reporting' - arch_tag: 'x86_64' - <<: *iruya - <<: *storperf-receivers - - 'storperf-swaggerui': - project: 'storperf' - dockerdir: 'docker/storperf-swaggerui' - arch_tag: 'x86_64' - <<: *iruya - <<: *storperf-receivers - - 'storperf-workloadagent': - project: 'storperf' - dockerdir: 'docker/storperf-workloadagent' - arch_tag: 'x86_64' - <<: *iruya - <<: *storperf-receivers - - # projects with jobs for jerma - - 'barometer-collectd': - project: 'barometer' - dockerdir: 'docker/barometer-collectd' - <<: *jerma - <<: *other-receivers - - 'barometer-collectd-experimental': - project: 'barometer' - dockerdir: '.' - dockerfile: 'docker/barometer-collectd-experimental/Dockerfile' - <<: *jerma - <<: *other-receivers - - 'barometer-collectd-latest': - project: 'barometer' - dockerdir: '.' - dockerfile: 'docker/barometer-collectd-latest/Dockerfile' - <<: *jerma - <<: *other-receivers - - 'barometer-dma': - project: 'barometer' - dockerdir: 'docker/barometer-dma' - <<: *jerma - <<: *other-receivers - - 'barometer-grafana': - project: 'barometer' - dockerdir: 'docker/barometer-grafana' - <<: *jerma - <<: *other-receivers - - 'barometer-influxdb': - project: 'barometer' - dockerdir: 'docker/barometer-influxdb' - <<: *jerma - <<: *other-receivers - - 'barometer-kafka': - project: 'barometer' - dockerdir: 'docker/barometer-kafka' - <<: *jerma - <<: *other-receivers - - 'barometer-ves': - project: 'barometer' - dockerdir: 'docker/barometer-ves' - <<: *jerma - <<: *other-receivers - - 'barometer-snmp': - project: 'barometer' - dockerdir: 'docker/barometer-snmp' - <<: *jerma - <<: *other-receivers - - # yamllint enable rule:key-duplicates - jobs: - - "{dockerrepo}-docker-build-push-{stream}" - -######################## -# job templates -######################## -- job-template: - name: '{dockerrepo}-docker-build-push-{stream}' - - disabled: '{obj:disabled}' - - parameters: ¶meters - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-ubuntu-defaults' - - string: - name: PUSH_IMAGE - default: "true" - description: "To enable/disable pushing the image to Dockerhub." - - string: - name: DOCKER_REPO_NAME - default: "opnfv/{dockerrepo}" - description: "Dockerhub repo to be pushed to." - - string: - name: DOCKER_DIR - default: "{dockerdir}" - description: "Directory containing files needed by the Dockerfile" - - string: - name: COMMIT_ID - default: "" - description: "commit id to make a snapshot docker image" - - string: - name: GERRIT_REFNAME - default: "" - description: "Docker tag to be built, e.g. refs/tags/5.0.0, refs/tags/opnfv-5.0.0, refs/tags/5.0.RC1" - - string: - name: DOCKERFILE - default: "{dockerfile}" - description: "Dockerfile to use for creating the image." - - string: - name: ARCH_TAG - default: "{arch_tag}" - description: "If set, this value will be added to the docker image tag as a prefix" - - string: - name: EXTRA_BUILD_ARGS - default: "{extra_build_args}" - description: "Whitespace separated key=value pairs. If set, these args will be used to build docker image" - - properties: - - throttle: - max-per-node: 1 - option: 'project' - - scm: - - git-scm - - builders: &builders - - shell: - !include-raw-escape: ./opnfv-docker.sh - - triggers: - - pollscm: - cron: "*/30 * * * *" - - gerrit-trigger-tag-created: - project: '{project}' - - publishers: - - email: - recipients: '{receivers}' - - email-jenkins-admins-on-failure diff --git a/jjb/releng/opnfv-lint.yaml b/jjb/releng/opnfv-lint.yaml deleted file mode 100644 index dcd262aa5..000000000 --- a/jjb/releng/opnfv-lint.yaml +++ /dev/null @@ -1,189 +0,0 @@ ---- -######################## -# Job configuration for opnfv-lint -######################## -- project: - - name: opnfv-lint - - project: opnfv-lint - - jobs: - - 'opnfv-lint-verify-{stream}' - - 'opnfv-yamllint-verify-{stream}' - - 'opnfv-pylint-verify-{stream}' - - stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - - fraser: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - - danube: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - -######################## -# job templates -######################## - -- job-template: - name: 'opnfv-lint-verify-{stream}' - - disabled: '{obj:disabled}' - - concurrent: true - - parameters: - - project-parameter: - project: $GERRIT_PROJECT - branch: '{branch}' - - node: - name: SLAVE_NAME - description: Slaves to execute yamllint - default-slaves: - - lf-build1 - - lf-build2 - allowed-multiselect: true - ignore-offline-nodes: true - - scm: - - git-scm-gerrit - - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event: - exclude-drafts: 'false' - exclude-trivial-rebase: 'false' - exclude-no-code-change: 'false' - - draft-published-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - projects: - - project-compare-type: 'REG_EXP' - project-pattern: 'releng|doctor|pharos' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: '**/*.py' - - compare-type: ANT - pattern: '**/*.sh' - - compare-type: ANT - pattern: '**/*.yml' - - compare-type: ANT - pattern: '**/*.yaml' - - builders: - - lint-all-code - -- job-template: - name: 'opnfv-pylint-verify-{stream}' - - disabled: '{obj:disabled}' - - concurrent: true - - parameters: - - project-parameter: - project: $GERRIT_PROJECT - branch: '{branch}' - - node: - name: SLAVE_NAME - description: Slaves to execute pylint - default-slaves: - - lf-build1 - - lf-build2 - allowed-multiselect: true - ignore-offline-nodes: true - - scm: - - git-scm-gerrit - - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event: - exclude-drafts: 'false' - exclude-trivial-rebase: 'false' - exclude-no-code-change: 'false' - - draft-published-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'REG_EXP' - project-pattern: 'sdnvpn|qtip|daisy|sfc|escalator' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: '**/*.py' - - builders: - - lint-init - - lint-python-code - - lint-report - -- job-template: - name: 'opnfv-yamllint-verify-{stream}' - - disabled: '{obj:disabled}' - - concurrent: true - - parameters: - - project-parameter: - project: $GERRIT_PROJECT - branch: '{branch}' - - node: - name: SLAVE_NAME - description: Slaves to execute yamllint - default-slaves: - - lf-build1 - - lf-build2 - allowed-multiselect: true - ignore-offline-nodes: true - - scm: - - git-scm-gerrit - - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event: - exclude-drafts: 'false' - exclude-trivial-rebase: 'false' - exclude-no-code-change: 'false' - - draft-published-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'REG_EXP' - project-pattern: 'armband|fuel|releng-anteater' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: '**/*.yml' - - compare-type: ANT - pattern: '**/*.yaml' - - builders: - - lint-init - - lint-yaml-code - - lint-report diff --git a/jjb/releng/opnfv-utils.yaml b/jjb/releng/opnfv-utils.yaml deleted file mode 100644 index f85606f7e..000000000 --- a/jjb/releng/opnfv-utils.yaml +++ /dev/null @@ -1,176 +0,0 @@ ---- -- project: - - name: opnfv-utils - - jobs: - - 'prune-docker-images' - - 'check-status-of-slaves' - - 'ansible-build-server' - - 'generate-artifacts-index-pages' - -######################## -# job templates -######################## -- job-template: - name: 'prune-docker-images' - - disabled: false - - concurrent: true - - parameters: - - node: - name: SLAVE_NAME - description: Slaves to prune docker images - default-slaves: - - arm-build3 - - arm-build4 - - arm-build5 - - ericsson-build4 - - lf-build2 - allowed-multiselect: true - ignore-offline-nodes: true - - builders: - - description-setter: - description: "Built on $NODE_NAME" - # yamllint disable rule:line-length - - shell: | - #!/bin/bash - sudo systemctl restart docker - (docker ps -q; docker ps -aq) | sort | uniq -u | xargs --no-run-if-empty docker rm - docker images -f dangling=true -q | xargs --no-run-if-empty docker rmi - - - # yamllint enable rule:line-length - triggers: - - timed: '@midnight' - -- job-template: - name: 'check-status-of-slaves' - - disabled: false - concurrent: true - - parameters: - - node: - name: SLAVE_NAME - description: 'script lives on master node' - default-slaves: - - lf-build2 - allowed-multiselect: false - ignore-offline-nodes: true - - project-parameter: - project: releng - branch: master - - scm: - - git-scm - - triggers: - - timed: '@midnight' - - builders: - - shell: | - cd $WORKSPACE/utils/ - bash slave-monitor-0.1.sh - -- job-template: - name: 'ansible-build-server' - - project-type: freestyle - - disabled: false - concurrent: true - - parameters: - - node: - name: SLAVE_NAME - description: Build Servers - default-slaves: - - lf-build1 - - lf-build2 - - lf-build3 - - ericsson-build4 - allowed-multiselect: true - ignore-offline-nodes: true - - project-parameter: - project: releng - branch: master - - scm: - - git-scm - - triggers: - - timed: '@midnight' - - builders: - - description-setter: - description: '$NODE_NAME' - - install-ansible - - run-ansible-build-server-playbook - - -- builder: - name: install-ansible - builders: - - shell: | - # Install ansible here - if [ -f /etc/centos-release ] \ - || [ -f /etc/redhat-release ] \ - || [ -f /etc/system-release ]; then - sudo yum -y install ansible - fi - if [ -f /etc/debian_version ] \ - || grep -qi ubuntu /etc/lsb-release \ - || grep -qi ubuntu /etc/os-release; then - sudo apt-get -y install ansible - fi - - -- builder: - name: run-ansible-build-server-playbook - builders: - - shell: | - # run playbook - sudo ansible-playbook -i \ - $WORKSPACE/utils/build-server-ansible/inventory.ini \ - $WORKSPACE/utils/build-server-ansible/main.yml - - -- job-template: - name: 'generate-artifacts-index-pages' - - project-type: freestyle - - disabled: false - - concurrent: false - - parameters: - - node: - name: SLAVE_NAME - description: Build Servers - default-slaves: - - lf-build2 - - project-parameter: - project: releng - branch: master - - scm: - - git-scm - - triggers: - - timed: '@hourly' - - builders: - - generate-artifact-html - - -- builder: - name: generate-artifact-html - builders: - - shell: | - cd $WORKSPACE/utils/ - ./artifacts.opnfv.org.sh diff --git a/jjb/releng/releng-info-vote.yaml b/jjb/releng/releng-info-vote.yaml deleted file mode 100644 index 83818585a..000000000 --- a/jjb/releng/releng-info-vote.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- project: - name: info-vote - build-node: lf-build2 - jobs: - - 'info-vote-verify' diff --git a/jjb/releng/releng-jobs.yaml b/jjb/releng/releng-jobs.yaml index 4a39333d4..309b7ce68 100644 --- a/jjb/releng/releng-jobs.yaml +++ b/jjb/releng/releng-jobs.yaml @@ -1,17 +1,496 @@ --- +- scm: + name: releng-scm + scm: + - git: + url: 'ssh://fbot@gerrit.opnfv.org:29418/releng' + refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*' + submodule: + recursive: true + branches: + - '{ref}' + +- trigger: + name: releng-patchset-created + triggers: + - gerrit: + trigger-on: + - patchset-created-event + - comment-added-contains-event: + comment-contains-value: 'recheck' + - comment-added-contains-event: + comment-contains-value: 'reverify' + projects: + - project-compare-type: 'ANT' + project-pattern: 'releng' + branches: + - branch-compare-type: 'ANT' + branch-pattern: 'master' + +- trigger: + name: releng-patchset-merged + triggers: + - gerrit: + trigger-on: + - change-merged-event + - comment-added-contains-event: + comment-contains-value: 'remerge' + projects: + - project-compare-type: 'ANT' + project-pattern: 'releng' + branches: + - branch-compare-type: 'ANT' + branch-pattern: 'master' + +- builder: + name: releng-jjb-verify + builders: + - shell: | + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 dist-upgrade -y + sudo DEBIAN_FRONTEND=noninteractive \ + apt-get -o DPkg::Lock::Timeout=300 install jenkins-job-builder -y + jenkins-jobs test --recursive -o tmp jjb + rm -rf tmp + +- builder: + name: releng-jjb-merge + builders: + - shell: | + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 dist-upgrade -y + sudo DEBIAN_FRONTEND=noninteractive \ + apt-get -o DPkg::Lock::Timeout=300 install jenkins-job-builder -y + jenkins-jobs update --recursive --delete-old jjb + +- parameter: + name: releng-jjb-node + parameters: + - label: + name: node + default: '{node}' + +- job-template: + name: releng-jjb-verify + triggers: + - releng-patchset-created + scm: + - releng-scm: + ref: $GERRIT_REFSPEC + parameters: + - releng-jjb-node: + node: opnfv-build + builders: + - releng-jjb-verify + +- project: + name: releng-jjb-verify + jobs: + - releng-jjb-verify + +- job-template: + name: releng-jjb-merge + triggers: + - releng-patchset-merged + scm: + - releng-scm: + ref: master + parameters: + - releng-jjb-node: + node: opnfv-build + builders: + - releng-jjb-merge + - project: - name: releng-builder-jobs - project: 'releng' - project-name: 'releng' - jjb-version: '2.5.0' - jjb-cache: "$WORKSPACE/.cache/jenkins_jobs" + name: releng-jjb-merge + jobs: + - releng-jjb-merge - build-timeout: 60 +- scm: + name: opnfv-scm + scm: + - git: + url: 'https://gerrit.opnfv.org/gerrit/{project}' + refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*' + submodule: + recursive: true + branches: + - '{ref}' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-releng/38594/' - rtd-token: '291c6a0109493b4457e566d06141212452c65784' - project-pattern: 'releng' +- trigger: + name: releng-tox-patchset-created + triggers: + - gerrit: + trigger-on: + - patchset-created-event + - comment-added-contains-event: + comment-contains-value: recheck + - comment-added-contains-event: + comment-contains-value: reverify + server-name: gerrit.opnfv.org + projects: + - project-compare-type: 'REG_EXP' + project-pattern: '^(?!functest).*' + branches: + - branch-compare-type: 'ANT' + branch-pattern: master + - branch-compare-type: 'ANT' + branch-pattern: stable/nile + - branch-compare-type: 'ANT' + branch-pattern: stable/moselle +- builder: + name: releng-tox + builders: + - shell: | + [ -f tox.ini ] || exit 0 + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 dist-upgrade -y + sudo DEBIAN_FRONTEND=noninteractive \ + apt-get -o DPkg::Lock::Timeout=300 install tox -y + tox --recreate + +- parameter: + name: releng-tox-node + parameters: + - label: + name: node + default: '{node}' + +- job-template: + name: releng-tox + triggers: + - releng-tox-patchset-created + scm: + - opnfv-scm: + ref: $GERRIT_REFSPEC + project: $GERRIT_PROJECT + parameters: + - releng-tox-node: + node: opnfv-build + builders: + - releng-tox + +- project: + name: releng-tox + jobs: + - releng-tox + +- project: + name: releng-release-jobs + stream: + - nile + - orinoco + - v1.22 + - v1.23 + - v1.24 + - v1.25 + - v1.26 + - v1.27 + - v1.28 + - v1.29 + - xena + - wallaby + - yoga + - zed + - '2023.1' + - '2023.2' jobs: - - '{project-name}-ci-jobs' - - '{project-name}-rtd-jobs' + - 'releng-release-{stream}-verify' + - 'releng-release-{stream}-merge' + +- parameter: + name: stream-parameter + parameters: + - string: + name: STREAM + default: '{stream}' + +- job-template: + name: 'releng-release-{stream}-verify' + scm: + - releng-scm: + ref: $GERRIT_REFSPEC + parameters: + - releng-jjb-node: + node: opnfv-build + - stream-parameter: + stream: '{stream}' + - string: + name: GIT_URL + default: ssh://fbot@gerrit.opnfv.org:29418/ + triggers: + - gerrit: + server-name: 'gerrit.opnfv.org' + trigger-on: + - patchset-created-event: + exclude-drafts: 'false' + exclude-trivial-rebase: 'false' + exclude-no-code-change: 'false' + - comment-added-contains-event: + comment-contains-value: 'recheck' + - comment-added-contains-event: + comment-contains-value: 'reverify' + projects: + - project-compare-type: 'ANT' + project-pattern: 'releng' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/master' + file-paths: + - compare-type: ANT + pattern: 'releases/{stream}/**' + - compare-type: ANT + pattern: 'releases/schema.yaml' + - compare-type: ANT + pattern: 'releases/scripts/verify_schema.py' + builders: + - shell: | + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 dist-upgrade -y + sudo DEBIAN_FRONTEND=noninteractive \ + apt-get -o DPkg::Lock::Timeout=300 install python3-pygerrit2 \ + python3-ruamel.yaml -y + - shell: !include-raw-escape: + - branch-or-tag.sh + +- job-template: + name: 'releng-release-{stream}-merge' + scm: + - releng-scm: + ref: $GERRIT_REFSPEC + parameters: + - releng-jjb-node: + node: opnfv-build + - stream-parameter: + stream: '{stream}' + - string: + name: GIT_URL + default: ssh://fbot@gerrit.opnfv.org:29418/ + triggers: + - gerrit: + trigger-on: + - change-merged-event + - comment-added-contains-event: + comment-contains-value: 'remerge' + projects: + - project-compare-type: 'ANT' + project-pattern: 'releng' + branches: + - branch-compare-type: 'ANT' + branch-pattern: 'master' + file-paths: + - compare-type: ANT + pattern: 'releases/{stream}/**' + builders: + - shell: | + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 dist-upgrade -y + sudo DEBIAN_FRONTEND=noninteractive \ + apt-get -o DPkg::Lock::Timeout=300 install python3-pygerrit2 \ + python3-ruamel.yaml -y + - shell: !include-raw-escape: + - branch-or-tag.sh + +- builder: + name: lint-init + builders: + - shell: | + #!/bin/bash + # Ensure we start with a clean environment + rm -f bash-violation.log python-violation.log yaml-violation.log violation.log + git --no-pager diff --diff-filter=MCRAT --name-only HEAD^1 > modified_files + +- builder: + name: lint-report + builders: + - shell: | + #!/bin/bash + if [[ -s violation.log ]]; then + cat violation.log + echo "Reporting lint result...." + set -x + msg="Found syntax error and/or coding style violation(s) in the files modified by your patchset." + sed -i -e "1s#^#${msg}\n\n#" violation.log + cmd="gerrit review -p $GERRIT_PROJECT -m \"$(cat violation.log)\" $GERRIT_PATCHSET_REVISION --notify NONE" + ssh -o 'PubkeyAcceptedKeyTypes +ssh-rsa' -p 29418 fbot@gerrit.opnfv.org "$cmd" + + # Make sure the caller job failed + exit 1 + fi + +- builder: + name: lint-bash-code + builders: + - shell: | + #!/bin/bash + echo "Checking bash code..." + for f in $(egrep '\.sh$' modified_files) + do + bash -n "$f" 2>> bash-violation.log + done + if [[ -s bash-violation.log ]]; then + echo -e "Bash syntax error(s)\n---" >> violation.log + sed -e 's/^/ /g' bash-violation.log >> violation.log + fi + +- builder: + name: lint-python-code + builders: + - shell: | + #!/bin/bash + + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 dist-upgrade -y + sudo DEBIAN_FRONTEND=noninteractive \ + apt-get -o DPkg::Lock::Timeout=300 install flake8 -y + + echo "Checking python code..." + for f in $(egrep '\.py$' modified_files) + do + flake8 "$f" >> python-violation.log + done + if [[ -s python-violation.log ]]; then + echo -e "Python violation(s)\n---" >> violation.log + sed -e 's/^/ /g' python-violation.log >> violation.log + fi + +- builder: + name: lint-yaml-code + builders: + - shell: | + #!/bin/bash + + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 dist-upgrade -y + sudo DEBIAN_FRONTEND=noninteractive \ + apt-get -o DPkg::Lock::Timeout=300 install yamllint -y + + echo "Checking yaml file..." + for f in $(egrep '\.ya?ml$' modified_files) + do + yamllint "$f" >> yaml-violation.log + done + if [[ -s yaml-violation.log ]]; then + echo -e "YAML violation(s)\n---" >> violation.log + sed -e 's/^/ /g' yaml-violation.log >> violation.log + fi + +- builder: + name: lint-all-code + builders: + - lint-init + - lint-bash-code + - lint-python-code + - lint-yaml-code + - lint-report + +- project: + name: releng-lint + jobs: + - 'releng-lint-verify' + +- job-template: + name: 'releng-lint-verify' + parameters: + - releng-jjb-node: + node: opnfv-build + scm: + - releng-scm: + ref: $GERRIT_REFSPEC + triggers: + - gerrit: + server-name: 'gerrit.opnfv.org' + trigger-on: + - patchset-created-event + - comment-added-contains-event: + comment-contains-value: recheck + - comment-added-contains-event: + comment-contains-value: reverify + projects: + - project-compare-type: 'ANT' + project-pattern: 'releng' + branches: + - branch-compare-type: 'ANT' + branch-pattern: 'master' + file-paths: + - compare-type: ANT + pattern: '**/*.py' + - compare-type: ANT + pattern: '**/*.sh' + - compare-type: ANT + pattern: '**/*.yml' + - compare-type: ANT + pattern: '**/*.yaml' + builders: + - lint-all-code + +- project: + name: releng-generate-artifacts-index-pages + jobs: + - releng-generate-artifacts-index-pages + +- job-template: + name: releng-generate-artifacts-index-pages + scm: + - releng-scm: + ref: master + parameters: + - releng-jjb-node: + node: opnfv-build + triggers: + - timed: '@daily' + builders: + - generate-artifact-html + +- builder: + name: generate-artifact-html + builders: + - shell: | + curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - + echo "deb https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee \ + /etc/apt/sources.list.d/google-cloud-sdk.list + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 install \ + google-cloud-sdk -y + cd $WORKSPACE/utils/ + ./artifacts.opnfv.org.sh + +- project: + name: releng-artifact-cleanup + jobs: + - releng-artifact-cleanup + +- job-template: + name: releng-artifact-cleanup + scm: + - releng-scm: + ref: master + parameters: + - releng-jjb-node: + node: opnfv-build + triggers: + - timed: '@daily' + builders: + - releng-artifact-cleanup + +- builder: + name: releng-artifact-cleanup + builders: + - shell: | + curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - + echo "deb https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee \ + /etc/apt/sources.list.d/google-cloud-sdk.list + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 install \ + google-cloud-sdk -y + $WORKSPACE/utils/retention_script.sh diff --git a/jjb/releng/releng-release-create-branch.sh b/jjb/releng/releng-release-create-branch.sh index 7e91d5ace..beb493b1a 100644 --- a/jjb/releng/releng-release-create-branch.sh +++ b/jjb/releng/releng-release-create-branch.sh @@ -14,7 +14,7 @@ STREAM=${STREAM:-'nostream'} RELEASE_FILES=$(git diff HEAD^1 --name-only -- "releases/$STREAM") # Configure the git user/email as we'll be pushing up changes -git config --global user.name "jenkins-ci" +git config --global user.name "fbot" git config --global user.email "jenkins-opnfv-ci@opnfv.org" # Ensure we are able to generate Commit-IDs for new patchsets @@ -44,8 +44,8 @@ fi run_merge(){ unset NEW_FILES if [[ $REF_EXISTS = true && "$JOB_NAME" =~ "merge" ]]; then - ssh -n -f -p 29418 gerrit.opnfv.org gerrit create-branch "$repo" "$branch" "$ref" - python releases/scripts/create_jobs.py -f $release_file + ssh -o 'PubkeyAcceptedKeyTypes +ssh-rsa' -n -f -p 29418 fbot@gerrit.opnfv.org gerrit create-branch "$repo" "$branch" "$ref" + python3 releases/scripts/create_jobs.py -f $release_file NEW_FILES=$(git status --porcelain --untracked=no | cut -c4-) fi if [ -n "$NEW_FILES" ]; then @@ -65,7 +65,7 @@ for release_file in $RELEASE_FILES; do else run_merge fi - done < <(python releases/scripts/repos.py -b -f "$release_file") + done < <(python3 releases/scripts/repos.py -b -f "$release_file") done } diff --git a/jjb/releng/releng-release-jobs.yaml b/jjb/releng/releng-release-jobs.yaml deleted file mode 100644 index 42a4d29e7..000000000 --- a/jjb/releng/releng-release-jobs.yaml +++ /dev/null @@ -1,125 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2018 The Linux Foundation and others. -# 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 -############################################################################## ---- -- project: - name: releng-release-jobs - - build-node: 'opnfv-build' - - stream: - - fraser - - gambia - - hunter - - iruya - - jerma - - kali - - leguer - - jobs: - - 'releng-release-{stream}-verify' - - 'releng-release-{stream}-merge' - - project: 'releng' - -- job-template: - name: 'releng-release-{stream}-verify' - - parameters: - - '{build-node}-defaults' - - stream-parameter: - stream: '{stream}' - - project-parameter: - project: '{project}' - branch: 'master' - - scm: - - git-scm-gerrit - - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event: - exclude-drafts: 'false' - exclude-trivial-rebase: 'false' - exclude-no-code-change: 'false' - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: 'releng' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/master' - file-paths: - - compare-type: ANT - pattern: 'releases/{stream}/**' - - compare-type: ANT - pattern: 'releases/schema.yaml' - - compare-type: ANT - pattern: 'releases/scripts/verify_schema.py' - - builders: - - shell: !include-raw-escape: - - releng-release-create-venv.sh - - branch-or-tag.sh - - publishers: - - email-jenkins-admins-on-failure - -- job-template: - name: 'releng-release-{stream}-merge' - - parameters: - - node: - name: SLAVE_NAME - description: 'Only run merge job on build1 or 2' - default-slaves: - - lf-build1 - - lf-build2 - allowed-multiselect: false - ignore-offline-nodes: true - - stream-parameter: - stream: '{stream}' - - project-parameter: - project: '{project}' - branch: 'master' - # Override GIT_URL so we can send patches back to Gerrit and - # modify repos - - string: - name: GIT_URL - default: ssh://$USER@gerrit.opnfv.org:29418/ - description: 'Git URL to use on this Jenkins Slave' - - scm: - - git-scm-gerrit - - triggers: - - gerrit-trigger-change-merged: - project: '{project}' - branch: 'master' - files: 'releases/{stream}/*' - - builders: - - shell: !include-raw-escape: - - releng-release-create-venv.sh - - branch-or-tag.sh - - publishers: - - email-jenkins-admins-on-failure - -- parameter: - name: stream-parameter - parameters: - - string: - name: STREAM - default: '{stream}' - description: "OPNFV Stable Stream" diff --git a/jjb/releng/releng-release-tagging.sh b/jjb/releng/releng-release-tagging.sh index 88927e54d..1fce35f6c 100644 --- a/jjb/releng/releng-release-tagging.sh +++ b/jjb/releng/releng-release-tagging.sh @@ -8,6 +8,7 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## set -e -o pipefail +set -x GIT_URL=${GIT_URL:-https://gerrit.opnfv.org/gerrit} STREAM=${STREAM:-'nostream'} @@ -48,7 +49,7 @@ for release_file in $RELEASE_FILES; do # If the tag doesn't exist and we're in a merge job, # everything has been verified up to this point and we # are ready to create the tag. - git config --global user.name "jenkins-ci" + git config --global user.name "fbot" git config --global user.email "jenkins-opnfv-ci@opnfv.org" echo "--> Creating $tag tag for $repo at $ref" git tag -am "$tag" $tag $ref @@ -62,5 +63,5 @@ for release_file in $RELEASE_FILES; do popd &> /dev/null echo "--> Done verifing $repo" - done < <(python releases/scripts/repos.py -f $release_file) + done < <(python3 releases/scripts/repos.py -f $release_file) done diff --git a/jjb/releng/releng-views.yaml b/jjb/releng/releng-views.yaml index 12dfbfe35..fbd69982d 100644 --- a/jjb/releng/releng-views.yaml +++ b/jjb/releng/releng-views.yaml @@ -1,7 +1,12 @@ --- -- project: - name: releng-view - views: - - common-view - view-name: releng - view-regex: ^releng.* +- view: + name: releng + view-type: list + columns: + - status + - weather + - job + - last-success + - last-failure + - last-duration + regex: ^releng-.* diff --git a/jjb/samplevnf/samplevnf-rtd-jobs.yaml b/jjb/samplevnf/samplevnf-rtd-jobs.yaml deleted file mode 100644 index 9c09c827e..000000000 --- a/jjb/samplevnf/samplevnf-rtd-jobs.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -- project: - name: samplevnf-rtd - project: samplevnf - project-name: samplevnf - - gerrit-skip-vote: true - project-pattern: 'samplevnf' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-samplevnf/47390/' - rtd-token: '133bd533bd10428c549c17967469b25e847f42f4' - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/samplevnf/samplevnf-views.yaml b/jjb/samplevnf/samplevnf-views.yaml deleted file mode 100644 index 26ea8068c..000000000 --- a/jjb/samplevnf/samplevnf-views.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- project: - name: samplevnf-view - views: - - project-view - project-name: samplevnf diff --git a/jjb/stor4nfv/stor4nfv-project.yaml b/jjb/stor4nfv/stor4nfv-project.yaml deleted file mode 100644 index 6e796cfd4..000000000 --- a/jjb/stor4nfv/stor4nfv-project.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -- project: - name: stor4nfv - - project: '{name}' - - jobs: - - '{project}-verify-basic' diff --git a/jjb/stor4nfv/stor4nfv-rtd-jobs.yaml b/jjb/stor4nfv/stor4nfv-rtd-jobs.yaml deleted file mode 100644 index 0383c77c7..000000000 --- a/jjb/stor4nfv/stor4nfv-rtd-jobs.yaml +++ /dev/null @@ -1,24 +0,0 @@ ---- -- project: - name: stor4nfv-rtd - project: stor4nfv - project-name: stor4nfv - - project-pattern: 'stor4nfv' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-stor4nfv/47394/' - rtd-token: '9c189b44cf08de75dc06253558cc86ed93982cbb' - - stream: - - master: - branch: '{stream}' - disabled: false - - hunter: &hunter - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - - gambia: - branch: 'stable/{stream}' - disabled: false - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/stor4nfv/stor4nfv-views.yaml b/jjb/stor4nfv/stor4nfv-views.yaml deleted file mode 100644 index 74ddd2eea..000000000 --- a/jjb/stor4nfv/stor4nfv-views.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- project: - name: stor4nfv-view - views: - - project-view - project-name: stor4nfv diff --git a/jjb/storperf/storperf-daily-jobs.yaml b/jjb/storperf/storperf-daily-jobs.yaml deleted file mode 100644 index b5f510c1d..000000000 --- a/jjb/storperf/storperf-daily-jobs.yaml +++ /dev/null @@ -1,178 +0,0 @@ ---- -################################### -# job configuration for storperf -################################### -- project: - name: storperf-daily - - project: storperf - - # ------------------------------- - # BRANCH ANCHORS - # ------------------------------- - master: &master - stream: master - branch: '{stream}' - gs-pathname: '' - docker-tag: 'latest' - hunter: &hunter - stream: hunter - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - docker-tag: 'stable' - # ------------------------------- - # POD, INSTALLER, AND BRANCH MAPPING - # ------------------------------- - # Installers using labels - # CI PODs - # This section should only contain the installers - # that have been switched using labels for slaves - # ------------------------------- - pod: - # # fuel CI PODs - # - baremetal: - # slave-label: fuel-baremetal - # installer: fuel - # <<: *master - # - virtual: - # slave-label: fuel-virtual - # installer: fuel - # <<: *master - # # joid CI PODs - # - baremetal: - # slave-label: joid-baremetal - # installer: joid - # <<: *master - # - virtual: - # slave-label: joid-virtual - # installer: joid - # <<: *master - # # apex CI PODs - # - virtual: - # slave-label: apex-virtual-master - # installer: apex - # <<: *master - - baremetal: - slave-label: apex-baremetal-master - installer: apex - <<: *master - - baremetal: - slave-label: apex-baremetal-master - installer: apex - <<: *hunter - ## armband CI PODs - # - armband-baremetal: - # slave-label: armband-baremetal - # installer: fuel - # <<: *master - # - armband-virtual: - # slave-label: armband-virtual - # installer: fuel - # <<: *master - ## daisy CI PODs - # - baremetal: - # slave-label: daisy-baremetal - # installer: daisy - # <<: *master - # - virtual: - # slave-label: daisy-virtual - # installer: daisy - # <<: *master - - jobs: - - 'storperf-{installer}-{pod}-daily-{stream}' - -################################ -# job template -################################ -- job-template: - name: 'storperf-{installer}-{pod}-daily-{stream}' - - concurrent: true - - properties: - - logrotate-default - - throttle: - enabled: true - max-per-node: 1 - option: 'project' - - wrappers: - - build-name: - name: '$BUILD_NUMBER Scenario: $DEPLOY_SCENARIO' - - timeout: - timeout: '45' - abort: true - - fix-workspace-permissions - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{installer}-defaults' - - '{slave-label}-defaults' - - string: - name: DEPLOY_SCENARIO - default: 'os-odl_l2-nofeature-ha' - - string: - name: DOCKER_TAG - default: '{docker-tag}' - description: 'Tag to pull docker image' - - string: - name: CLEAN_DOCKER_IMAGES - default: 'false' - description: 'Remove downloaded docker images (opnfv/storperf*:*)' - - string: - name: GS_PATHNAME - default: '{gs-pathname}' - description: "Version directory where the opnfv documents will be stored in gs repository" - - string: - name: DISK_TYPE - default: 'HDD' - description: 'The type of hard disk that Cinder uses' - - string: - name: VOLUME_SIZE - default: '2' - description: 'Size of Cinder volume (in GB)' - - string: - name: WORKLOADS - default: 'rw' - description: 'Workloads to run' - - string: - name: BLOCK_SIZES - default: '16384' - description: 'Block sizes for VM I/O operations' - - string: - name: QUEUE_DEPTHS - default: '4' - description: 'Number of simultaneous I/O operations to keep active' - - string: - name: STEADY_STATE_SAMPLES - default: '10' - description: 'Number of samples to use (1 per minute) to measure steady state' - - string: - name: TEST_CASE - choices: - - 'snia_steady_state' - description: 'The test case to run' - - scm: - - git-scm - - builders: - - description-setter: - description: "Built on $NODE_NAME" - - 'storperf-daily-builder' - -######################## -# builder macros -######################## -- builder: - name: storperf-daily-builder - builders: - - shell: | - #!/bin/bash - - cd $WORKSPACE - ./ci/daily.sh diff --git a/jjb/storperf/storperf-rtd-jobs.yaml b/jjb/storperf/storperf-rtd-jobs.yaml deleted file mode 100644 index e8ee7b985..000000000 --- a/jjb/storperf/storperf-rtd-jobs.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -- project: - name: storperf-rtd - project: storperf - project-name: storperf - - project-pattern: 'storperf' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-storperf/47395/' - rtd-token: '8a5c04ef90e5f32edc4e805a5018763cd25e9afc' - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/storperf/storperf-verify-jobs.yaml b/jjb/storperf/storperf-verify-jobs.yaml deleted file mode 100644 index 8c43e53e8..000000000 --- a/jjb/storperf/storperf-verify-jobs.yaml +++ /dev/null @@ -1,200 +0,0 @@ ---- -- project: - name: storperf-verify - - project: 'storperf' - - # ------------------------------- - # branches - # ------------------------------- - stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - docker-tag: 'latest' - - iruya: &iruya - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - docker-tag: 'stable' - # ------------------------------- - # patch verification phases - # ------------------------------- - phase: - - 'unit-test': - slave-label: 'opnfv-build-ubuntu' - - 'build-x86_64': - slave-label: 'opnfv-build-ubuntu' - - 'build-aarch64': - slave-label: 'opnfv-build-ubuntu-arm' - # ------------------------------- - # jobs - # ------------------------------- - jobs: - - 'storperf-verify-{stream}' - - 'storperf-verify-{phase}-{stream}' -# ------------------------------- -# job templates -# ------------------------------- -- job-template: - name: 'storperf-verify-{stream}' - - disabled: '{obj:disabled}' - - project-type: 'multijob' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-defaults' - - scm: - - git-scm-gerrit - - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event: - exclude-drafts: 'false' - exclude-trivial-rebase: 'false' - exclude-no-code-change: 'false' - - draft-published-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - - builders: - - shell: | - #!/bin/bash - - # we do nothing here as the main stuff will be done - # in phase jobs - echo "Triggering phase jobs!" - - multijob: - name: 'storperf-build-and-unittest' - execution-type: PARALLEL - projects: - - name: 'storperf-verify-unit-test-{stream}' - current-parameters: false - predefined-parameters: | - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - git-revision: true - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: false - - name: 'storperf-verify-build-x86_64-{stream}' - current-parameters: false - predefined-parameters: | - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - ARCH=x86_64 - git-revision: true - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: false - - name: 'storperf-verify-build-aarch64-{stream}' - current-parameters: false - predefined-parameters: | - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - ARCH=aarch64 - git-revision: true - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: false - -- job-template: - name: 'storperf-verify-{phase}-{stream}' - - disabled: '{obj:disabled}' - - wrappers: - - ssh-agent-wrapper - - build-timeout: - timeout: 60 - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - '{slave-label}-defaults' - - scm: - - git-scm-gerrit - - builders: - - 'storperf-verify-{phase}-builders-macro' - - publishers: - - 'storperf-verify-{phase}-publishers-macro' -# ------------------------------- -# builder macros -# ------------------------------- -- builder: - name: 'storperf-verify-unit-test-builders-macro' - builders: - - shell: | - $WORKSPACE/ci/verify.sh - -- builder: - name: 'storperf-verify-build-x86_64-builders-macro' - builders: - - shell: | - $WORKSPACE/ci/verify-build.sh - -- builder: - name: 'storperf-verify-build-aarch64-builders-macro' - builders: - - shell: | - $WORKSPACE/ci/verify-build.sh -# ------------------------------- -# publisher macros -# ------------------------------- -- publisher: - name: 'storperf-verify-unit-test-publishers-macro' - publishers: - - junit: - results: nosetests.xml - - cobertura: - report-file: "coverage.xml" - only-stable: "true" - health-auto-update: "true" - stability-auto-update: "true" - zoom-coverage-chart: "true" - targets: - - files: - healthy: 60 - unhealthy: 50 - failing: 40 - - method: - healthy: 60 - unhealthy: 50 - failing: 40 - - email-jenkins-admins-on-failure - -- publisher: - name: 'storperf-verify-build-x86_64-publishers-macro' - publishers: - - email-jenkins-admins-on-failure - -- publisher: - name: 'storperf-verify-build-aarch64-publishers-macro' - publishers: - - email-jenkins-admins-on-failure diff --git a/jjb/storperf/storperf-views.yaml b/jjb/storperf/storperf-views.yaml deleted file mode 100644 index cc687195b..000000000 --- a/jjb/storperf/storperf-views.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- project: - name: storperf - - common-view - view-name: storperf-view - view-regex: ^storperf.* diff --git a/jjb/storperf/storperf.yaml b/jjb/storperf/storperf.yaml deleted file mode 100644 index 7da934ddb..000000000 --- a/jjb/storperf/storperf.yaml +++ /dev/null @@ -1,78 +0,0 @@ ---- -- project: - name: storperf - - project: '{name}' - - jobs: - - 'storperf-merge-{stream}' - - stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - docker-tag: 'latest' - - hunter: &hunter - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - docker-tag: 'stable' - -- job-template: - name: 'storperf-merge-{stream}' - - node: opnfv-build-ubuntu - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - # yamllint disable rule:line-length - description: "Used for overriding the GIT URL coming from Global Jenkins\ - \ configuration in case if the stuff is done on none-LF HW." - # yamllint enable rule:line-length - - scm: - - git-scm - - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - change-merged-event - - comment-added-contains-event: - comment-contains-value: 'remerge' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - - builders: - - shell: | - $WORKSPACE/ci/merge.sh - - publishers: - - junit: - results: nosetests.xml - - cobertura: - report-file: "coverage.xml" - only-stable: "true" - health-auto-update: "true" - stability-auto-update: "true" - zoom-coverage-chart: "true" - targets: - - files: - healthy: 10 - unhealthy: 20 - failing: 30 - - method: - healthy: 50 - unhealthy: 40 - failing: 30 - - email-jenkins-admins-on-failure diff --git a/jjb/vswitchperf/vswitchperf-rtd-jobs.yaml b/jjb/vswitchperf/vswitchperf-rtd-jobs.yaml deleted file mode 100644 index 6b41bfb6e..000000000 --- a/jjb/vswitchperf/vswitchperf-rtd-jobs.yaml +++ /dev/null @@ -1,29 +0,0 @@ ---- -- project: - name: vswitchperf-rtd - project: vswitchperf - project-name: vswitchperf - - gerrit-skip-vote: true - project-pattern: 'vswitchperf' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-vswitchperf/47398/' - rtd-token: '47bbe5675e6cc5a6207fcc9b4db8dac03c27d9de' - - stream: - - master: - branch: '{stream}' - disabled: false - - jerma: &jerma - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - - hunter: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - - gambia: - branch: 'stable/{stream}' - disabled: false - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/vswitchperf/vswitchperf-views.yaml b/jjb/vswitchperf/vswitchperf-views.yaml deleted file mode 100644 index 5b8564579..000000000 --- a/jjb/vswitchperf/vswitchperf-views.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- project: - name: vswitchperf-view - views: - - project-view - project-name: vswitchperf diff --git a/jjb/vswitchperf/vswitchperf.yaml b/jjb/vswitchperf/vswitchperf.yaml deleted file mode 100644 index b6447fa14..000000000 --- a/jjb/vswitchperf/vswitchperf.yaml +++ /dev/null @@ -1,211 +0,0 @@ ---- -- project: - - name: vswitchperf - - project: '{name}' - - jobs: - - 'vswitchperf-verify-{stream}' - - 'vswitchperf-merge-{stream}' - - 'vswitchperf-daily-{stream}' - - stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - - jerma: &jerma - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - - hunter: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - - gambia: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - - fraser: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - -- job-template: - - name: 'vswitchperf-daily-{stream}' - - disabled: '{obj:disabled}' - - properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'vswitchperf-verify-.*' - - 'vswitchperf-merge-.*' - - 'vswitchperf-daily-.*' - blocking-level: 'NODE' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'intel-pod12-defaults' - - scm: - - git-scm - - triggers: - - pollscm: - cron: '@midnight' - - builders: - - shell: | - pwd - cd src - make clobber - make MORE_MAKE_FLAGS="-j 10" - cd ../ci - scl enable rh-python34 "source ~/vsperfenv/bin/activate ; ./build-vsperf.sh daily" - -- job-template: - name: 'vswitchperf-verify-{stream}' - - disabled: '{obj:disabled}' - - project-type: freestyle - - concurrent: true - - properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'vswitchperf-verify-.*' - - 'vswitchperf-merge-.*' - - 'vswitchperf-daily-.*' - blocking-level: 'NODE' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - intel-pod12 - - ericsson-build4 - default-slaves: - - intel-pod12 - - ericsson-build4 - - scm: - - git-scm-gerrit - - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event: - exclude-drafts: 'false' - exclude-trivial-rebase: 'false' - exclude-no-code-change: 'false' - - draft-published-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - disable-strict-forbidden-file-verification: 'true' - forbidden-file-paths: - - compare-type: ANT - pattern: 'docs/**' - - builders: - - shell: | - pwd - cd src - make clobber - make MORE_MAKE_FLAGS="-j 5" - cd ../ci - ./build-vsperf.sh verify - -- job-template: - name: 'vswitchperf-merge-{stream}' - - disabled: '{obj:disabled}' - - project-type: freestyle - - concurrent: true - - properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'vswitchperf-verify-.*' - - 'vswitchperf-merge-.*' - - 'vswitchperf-daily-.*' - blocking-level: 'NODE' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - node: - name: SLAVE_NAME - description: 'Slave name on Jenkins' - allowed-slaves: - - intel-pod12 - - ericsson-build4 - default-slaves: - - intel-pod12 - - ericsson-build4 - - scm: - - git-scm - - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - change-merged-event - - comment-added-contains-event: - comment-contains-value: 'remerge' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - disable-strict-forbidden-file-verification: 'true' - forbidden-file-paths: - - compare-type: ANT - pattern: 'docs/**' - - builders: - - shell: | - pwd - cd src - make clobber - make MORE_MAKE_FLAGS="-j 5" - cd ../ci - ./build-vsperf.sh merge diff --git a/jjb/xci/bifrost-cleanup-job.yaml b/jjb/xci/bifrost-cleanup-job.yaml deleted file mode 100644 index d51776173..000000000 --- a/jjb/xci/bifrost-cleanup-job.yaml +++ /dev/null @@ -1,146 +0,0 @@ ---- -- project: - name: 'openstack-bifrost-cleanup' - # ------------------------------- - # branches - # ------------------------------- - stream: - - master: - branch: '{stream}' - - # ------------------------------- - # projects - # ------------------------------- - project: - - 'openstack': - project-repo: 'https://git.openstack.org/openstack/bifrost' - clone-location: '/opt/bifrost' - - 'opnfv': - project-repo: 'https://gerrit.opnfv.org/gerrit/releng-xci' - clone-location: '/opt/releng-xci' - - # ------------------------------- - # jobs - # ------------------------------- - jobs: - - '{project}-bifrost-cleanup-{stream}' - -- job-template: - name: '{project}-bifrost-cleanup-{stream}' - - disabled: true - concurrent: false - - node: bifrost-verify-virtual - - # Make sure no verify job is running on any of the slaves since that would - # produce build logs after we wipe the destination directory. - properties: - - build-blocker: - blocking-jobs: - - '{project}-bifrost-verify-*' - - parameters: - - string: - name: PROJECT - default: '{project}' - - builders: - - shell: | - #!/bin/bash - - set -eu - - # DO NOT change this unless you know what you are doing. - BIFROST_GS_URL="gs://artifacts.opnfv.org/cross-community-ci/openstack/bifrost/$GERRIT_NAME/$GERRIT_CHANGE_NUMBER/" - - # This should never happen... even 'recheck' uses the last jobs' - # gerrit information. Better exit with error so we can investigate - [[ ! -n $GERRIT_NAME ]] || [[ ! -n $GERRIT_CHANGE_NUMBER ]] && exit 1 - - echo "Removing build artifacts for $GERRIT_NAME/$GERRIT_CHANGE_NUMBER" - - if ! [[ "$BIFROST_GS_URL" =~ "/cross-community-ci/openstack/bifrost/" ]]; then - echo "Oops! BIFROST_GS_URL=$BIFROST_GS_URL does not seem like a valid" - echo "bifrost location on the Google storage server. Please double-check" - echo "that it's set properly or fix this line if necessary." - echo "gsutil will not be executed until this is fixed!" - exit 1 - fi - try_to_rm=1 - while [[ $try_to_rm -lt 6 ]]; do - gsutil -m rm -r $BIFROST_GS_URL && _exitcode=$? && break - _exitcode=$? - echo "gsutil rm failed! Trying again... (attempt #$try_to_rm)" - let try_to_rm += 1 - # Give it some time... - sleep 10 - done - exit $_exitcode - - triggers: - - '{project}-gerrit-trigger-cleanup': - branch: '{branch}' - - publishers: - # yamllint disable rule:line-length - - email: - recipients: fatih.degirmenci@ericsson.com yroblamo@redhat.com mchandras@suse.de jack.morgan@intel.com zhang.jun3g@zte.com.cn - # yamllint enable rule:line-length - - email-jenkins-admins-on-failure -# ------------------------------- -# trigger macros -# ------------------------------- -- trigger: - name: 'openstack-gerrit-trigger-cleanup' - triggers: - - gerrit: - server-name: 'review.openstack.org' - escape-quotes: true - trigger-on: - # We only run this when the change is merged or - # abandoned since we don't need the logs anymore - - change-merged-event - - change-abandoned-event - # This is an OPNFV maintenance job. We don't want to provide - # feedback on Gerrit - silent: true - silent-start: true - projects: - - project-compare-type: 'PLAIN' - project-pattern: 'openstack/bifrost' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - disable-strict-forbidden-file-verification: 'true' - forbidden-file-paths: - - compare-type: ANT - pattern: 'doc/**' - - compare-type: ANT - pattern: 'releasenotes/**' - readable-message: true - -- trigger: - name: 'opnfv-gerrit-trigger-cleanup' - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - # We only run this when the change is merged or - # abandoned since we don't need the logs anymore - - change-merged-event - - change-abandoned-event - # This is an OPNFV maintenance job. We don't want to provide - # feedback on Gerrit - silent: true - silent-start: true - projects: - - project-compare-type: 'ANT' - project-pattern: 'releng-xci' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: 'bifrost/**' - readable-message: true diff --git a/jjb/xci/bifrost-periodic-jobs.yaml b/jjb/xci/bifrost-periodic-jobs.yaml deleted file mode 100644 index 4c61be193..000000000 --- a/jjb/xci/bifrost-periodic-jobs.yaml +++ /dev/null @@ -1,154 +0,0 @@ ---- -- project: - project: 'releng-xci' - - name: 'bifrost-periodic' - # ------------------------------- - # Branch Anchors - # ------------------------------- - # the versions stated here default to branches which then later - # on used for checking out the branches, pulling in head of the branch. - master: &master - stream: master - openstack-bifrost-version: '{stream}' - opnfv-releng-version: 'master' - gs-pathname: '' - ocata: &ocata - stream: ocata - openstack-bifrost-version: 'stable/{stream}' - opnfv-releng-version: 'master' - gs-pathname: '/{stream}' - # ------------------------------- - # XCI PODs - # ------------------------------- - pod: - - virtual: - <<: *master - - virtual: - <<: *ocata - # ------------------------------- - # XCI PODs - # ------------------------------- - # ------------------------------- - # Supported Distros - # ------------------------------- - distro: - - 'xenial': - disabled: false - slave-label: xci-xenial-virtual - dib-os-release: 'xenial' - dib-os-element: 'ubuntu-minimal' - # yamllint disable rule:line-length - dib-os-packages: 'vlan,vim,less,bridge-utils,sudo,language-pack-en,iputils-ping,rsyslog,curl,python,debootstrap,ifenslave,ifenslave-2.6,lsof,lvm2,tcpdump,nfs-kernel-server,chrony,iptables' - # yamllint enable rule:line-length - extra-dib-elements: 'openssh-server' - - 'centos7': - disabled: true - slave-label: xci-centos7-virtual - dib-os-release: '7' - dib-os-element: 'centos7' - dib-os-packages: 'vim,less,bridge-utils,iputils,rsyslog,curl' - extra-dib-elements: 'openssh-server' - - 'suse': - disabled: true - slave-label: xci-suse-virtual - dib-os-release: '42.3' - dib-os-element: 'opensuse-minimal' - dib-os-packages: 'vim,less,bridge-utils,iputils,rsyslog,curl' - extra-dib-elements: 'openssh-server' - - # ------------------------------- - # jobs - # ------------------------------- - jobs: - - 'bifrost-provision-{pod}-{distro}-periodic-{stream}' - -# ------------------------------- -# job templates -# ------------------------------- -- job-template: - name: 'bifrost-provision-{pod}-{distro}-periodic-{stream}' - - disabled: '{obj:disabled}' - - concurrent: false - - properties: - - build-blocker: - use-build-blocker: true - blocking-jobs: - - '^xci-os.*' - - '^xci-deploy.*' - - '^xci-functest.*' - - '^bifrost-.*periodic.*' - - '^osa-.*periodic.*' - blocking-level: 'NODE' - - logrotate-default - - parameters: - - project-parameter: - project: '{project}' - branch: '{opnfv-releng-version}' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - - string: - name: XCI_FLAVOR - default: 'ha' - - string: - name: OPENSTACK_BIFROST_VERSION - default: '{openstack-bifrost-version}' - - string: - name: OPNFV_RELENG_VERSION - default: '{opnfv-releng-version}' - - string: - name: DISTRO - default: '{distro}' - - string: - name: DIB_OS_RELEASE - default: '{dib-os-release}' - - string: - name: DIB_OS_ELEMENT - default: '{dib-os-element}' - - string: - name: DIB_OS_PACKAGES - default: '{dib-os-packages}' - - string: - name: EXTRA_DIB_ELEMENTS - default: '{extra-dib-elements}' - - string: - name: CLEAN_DIB_IMAGES - default: 'true' - - label: - name: SLAVE_LABEL - default: '{slave-label}' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: CI_LOOP - default: 'periodic' - - wrappers: - - fix-workspace-permissions - - scm: - - git-scm - - # trigger is disabled until we know which jobs we will have - # and adjust stuff accordingly - triggers: - - timed: '' # '@midnight' - - builders: - - description-setter: - description: "Built on $NODE_NAME - Flavor: $XCI_FLAVOR" - - 'bifrost-provision-builder' - -# -------------------------- -# builder macros -# -------------------------- -- builder: - name: bifrost-provision-builder - builders: - - shell: - !include-raw: ./bifrost-provision.sh diff --git a/jjb/xci/bifrost-provision.sh b/jjb/xci/bifrost-provision.sh deleted file mode 100755 index 4d646a676..000000000 --- a/jjb/xci/bifrost-provision.sh +++ /dev/null @@ -1,109 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2016 Ericsson AB and others. -# 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 -############################################################################## -set -o errexit -set -o nounset -set -o pipefail - -trap cleanup_and_upload EXIT - -function fix_ownership() { - if [ -z "${JOB_URL+x}" ]; then - echo "Not running as part of Jenkins. Handle the logs manually." - else - # Make sure cache exists - [[ ! -d ${HOME}/.cache ]] && mkdir ${HOME}/.cache - - sudo chown -R jenkins:jenkins $WORKSPACE - sudo chown -R jenkins:jenkins ${HOME}/.cache - fi -} - -function cleanup_and_upload() { - original_exit=$? - fix_ownership - exit $original_exit -} - -# check distro to see if we support it -if [[ ! "$DISTRO" =~ (xenial|centos7|suse) ]]; then - echo "Distro $DISTRO is not supported!" - exit 1 -fi - -# remove previously cloned repos -sudo /bin/rm -rf /opt/bifrost /opt/openstack-ansible /opt/releng-xci /opt/functest - -# Fix up permissions -fix_ownership - -# ensure the versions to checkout are set -export OPENSTACK_BIFROST_VERSION=${OPENSTACK_BIFROST_VERSION:-master} -export OPNFV_RELENG_VERSION=${OPNFV_RELENG_VERSION:-master} - -# log some info -echo -e "\n" -echo "***********************************************************************" -echo "* *" -echo "* Provision OpenStack Nodes *" -echo "* *" -echo " bifrost version: $OPENSTACK_BIFROST_VERSION" -echo " releng version: $OPNFV_RELENG_VERSION" -echo "* *" -echo "***********************************************************************" -echo -e "\n" - -# clone the repos and checkout the versions -sudo git clone --quiet https://git.openstack.org/openstack/bifrost /opt/bifrost -cd /opt/bifrost && sudo git checkout --quiet $OPENSTACK_BIFROST_VERSION -echo "xci: using bifrost commit" -git show --oneline -s --pretty=format:'%h - %s (%cr) <%an>' - -sudo git clone --quiet https://gerrit.opnfv.org/gerrit/releng-xci /opt/releng-xci -cd /opt/releng-xci && sudo git checkout --quiet $OPNFV_RELENG_VERSION -echo "xci: using releng commit" -git show --oneline -s --pretty=format:'%h - %s (%cr) <%an>' - -# source flavor vars -source "$WORKSPACE/xci/config/${XCI_FLAVOR}-vars" - -# combine opnfv and upstream scripts/playbooks -sudo /bin/cp -rf /opt/releng-xci/bifrost/* /opt/bifrost/ - -# cleanup remnants of previous deployment -cd /opt/bifrost -sudo -E ./scripts/destroy-env.sh - -# provision VMs for the flavor -cd /opt/bifrost -./scripts/bifrost-provision.sh - -# list the provisioned VMs -cd /opt/bifrost -source env-vars -ironic node-list -sudo -H -E virsh list - -echo "OpenStack nodes are provisioned!" -# here we have to do something in order to capture what was the working sha1 -# hardcoding stuff for the timebeing - -cd /opt/bifrost -BIFROST_GIT_SHA1=$(git rev-parse HEAD) - -# log some info -echo -e "\n" -echo "***********************************************************************" -echo "* BIFROST SHA1 TO PIN *" -echo "* *" -echo " $BIFROST_GIT_SHA1" -echo "* *" -echo "***********************************************************************" - -echo -e "\n" diff --git a/jjb/xci/bifrost-verify-jobs.yaml b/jjb/xci/bifrost-verify-jobs.yaml deleted file mode 100644 index f895cf672..000000000 --- a/jjb/xci/bifrost-verify-jobs.yaml +++ /dev/null @@ -1,225 +0,0 @@ ---- -- project: - name: 'openstack-bifrost-verify' - # ------------------------------- - # branches - # ------------------------------- - stream: - - master: - branch: '{stream}' - # ------------------------------- - # distros - # ------------------------------- - distro: - - 'xenial': - disabled: true - dib-os-release: 'xenial' - dib-os-element: 'ubuntu-minimal' - dib-os-packages: 'vlan,vim,less,bridge-utils,language-pack-en,iputils-ping,rsyslog,curl' - extra-dib-elements: 'openssh-server' - - 'centos7': - disabled: true - dib-os-release: '7' - dib-os-element: 'centos-minimal' - dib-os-packages: 'vim,less,bridge-utils,iputils,rsyslog,curl' - extra-dib-elements: 'openssh-server' - - 'opensuse423': - disabled: true - dib-os-release: '42.3' - dib-os-element: 'opensuse-minimal' - dib-os-packages: 'vim,less,bridge-utils,iputils,rsyslog,curl' - extra-dib-elements: 'openssh-server' - # ------------------------------- - # type - # ------------------------------- - type: - - virtual - # ------------------------------- - # jobs - # ------------------------------- - jobs: - - 'openstack-bifrost-verify-{distro}-{type}-{stream}' - -# ------------------------------- -# VM defaults -# ------------------------------- -- defaults: - name: verify_vm_defaults - test-vm-num-nodes: '3' - test-vm-node-names: 'opnfv controller00 compute00' - vm-domain-type: 'kvm' - vm-cpu: '2' - vm-disk: '30' - vm-memory-size: '4096' - vm-disk-cache: 'unsafe' - -# ------------------------------- -# job templates -# ------------------------------- -- job-template: - name: 'openstack-bifrost-verify-{distro}-{type}-{stream}' - - disabled: '{obj:disabled}' - - defaults: verify_vm_defaults - - concurrent: false - - properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'xci-verify-{distro}-.*' - - 'xci-.*-{distro}-merge-.*' - - '.*-bifrost-verify.*-{type}' - - throttle: - max-per-node: 2 - max-total: 10 - categories: - - xci-verify-virtual - option: category - - blocking-level: 'NODE' - - parameters: - - string: - name: PROJECT_REPO - default: 'https://git.openstack.org/openstack/bifrost' - - string: - name: DISTRO - default: '{distro}' - - string: - name: DIB_OS_RELEASE - default: '{dib-os-release}' - - string: - name: DIB_OS_ELEMENT - default: '{dib-os-element}' - - string: - name: EXTRA_DIB_ELEMENTS - default: '{extra-dib-elements}' - - string: - name: DIB_OS_PACKAGES - default: '{dib-os-packages}' - - string: - name: TEST_VM_NUM_NODES - default: '{test-vm-num-nodes}' - - string: - name: TEST_VM_NODE_NAMES - default: '{test-vm-node-names}' - - string: - name: VM_DOMAIN_TYPE - default: '{vm-domain-type}' - - string: - name: VM_CPU - default: '{vm-cpu}' - - string: - name: VM_DISK - default: '{vm-disk}' - - string: - name: VM_MEMORY_SIZE - default: '{vm-memory-size}' - - string: - name: VM_DISK_CACHE - default: '{vm-disk-cache}' - - string: - name: CLEAN_DIB_IMAGES - default: 'true' - - label: - name: SLAVE_LABEL - default: 'xci-virtual' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: CI_LOOP - default: 'verify' - - scm: - - git: - url: '$PROJECT_REPO' - refspec: '$GERRIT_REFSPEC' - branches: - - 'origin/$BRANCH' - skip-tag: true - choosing-strategy: 'gerrit' - timeout: 10 - wipe-workspace: true - - triggers: - - 'openstack-gerrit-trigger': - branch: '{branch}' - - builders: - - bifrost-set-name - - bifrost-build - - wrappers: - - fix-workspace-permissions - - build-timeout: - timeout: 180 - - publishers: - # yamllint disable rule:line-length - - email: - recipients: fatih.degirmenci@ericsson.com yroblamo@redhat.com mchandras@suse.de jack.morgan@intel.com julienjut@gmail.com - # yamllint enable rule:line-length - - email-jenkins-admins-on-failure - - postbuildscript: - builders: - - role: BOTH - build-on: - - ABORTED - - FAILURE - - NOT_BUILT - - SUCCESS - - UNSTABLE - build-steps: - - shell: !include-raw: ./xci-cleanup.sh - mark-unstable-if-failed: true - -# ------------------------------- -# trigger macros -# ------------------------------- -- trigger: - name: 'openstack-gerrit-trigger' - triggers: - - gerrit: - server-name: 'review.openstack.org' - escape-quotes: true - trigger-on: - - patchset-created-event: - exclude-drafts: 'false' - exclude-trivial-rebase: 'false' - exclude-no-code-change: 'false' - - comment-added-contains-event: - comment-contains-value: 'recheck' - silent-start: true - custom-url: '* $JOB_NAME $BUILD_URL' - projects: - - project-compare-type: 'PLAIN' - project-pattern: 'openstack/bifrost' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - disable-strict-forbidden-file-verification: 'true' - forbidden-file-paths: - - compare-type: ANT - pattern: 'doc/**' - - compare-type: ANT - pattern: 'releasenotes/**' - readable-message: true - -# -------------------------- -# builder macros -# -------------------------- -- builder: - name: bifrost-set-name - builders: - - description-setter: - description: "Built on $NODE_NAME" - -- builder: - name: bifrost-build - builders: - - shell: - !include-raw: ./bifrost-verify.sh diff --git a/jjb/xci/bifrost-verify.sh b/jjb/xci/bifrost-verify.sh deleted file mode 100755 index c810212e3..000000000 --- a/jjb/xci/bifrost-verify.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2016 Ericsson AB and others. -# 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 -############################################################################## -set -o errexit -set -o nounset -set -o pipefail - -git clone https://gerrit.opnfv.org/gerrit/releng-xci $WORKSPACE/releng-xci - -cd $WORKSPACE -git fetch $PROJECT_REPO $GERRIT_REFSPEC && sudo git checkout FETCH_HEAD - -# combine opnfv and upstream scripts/playbooks -/bin/cp -rf $WORKSPACE/releng-xci/xci/infra/bifrost/* $WORKSPACE/ - -cd $WORKSPACE/releng-xci -cat > bifrost_test.sh<<EOF -#!/bin/bash -set -o errexit -set -o nounset -set -o pipefail - -cd ~/bifrost -# set path for XCI repository -export XCI_PATH=~/bifrost/releng-xci - -# provision 3 VMs; xcimaster, controller, and compute -./scripts/bifrost-provision.sh | ts - -sudo -H -E virsh list -EOF -chmod a+x bifrost_test.sh - -# Fix up distros -case ${DISTRO} in - xenial) VM_DISTRO=ubuntu ;; - centos7) VM_DISTRO=centos ;; - *suse*) VM_DISTRO=opensuse ;; -esac - -export XCI_BUILD_CLEAN_VM_OS=false -export XCI_UPDATE_CLEAN_VM_OS=true - -./xci/scripts/vm/start-new-vm.sh $VM_DISTRO - -rsync -a -e "ssh -F $HOME/.ssh/${VM_DISTRO}-xci-vm-config" $WORKSPACE/ ${VM_DISTRO}_xci_vm:~/bifrost - -ssh -F $HOME/.ssh/${VM_DISTRO}-xci-vm-config ${VM_DISTRO}_xci_vm "cd ~/bifrost/releng-xci && ./bifrost_test.sh" diff --git a/jjb/xci/osa-periodic-jobs.yaml b/jjb/xci/osa-periodic-jobs.yaml deleted file mode 100644 index b731bf52b..000000000 --- a/jjb/xci/osa-periodic-jobs.yaml +++ /dev/null @@ -1,263 +0,0 @@ ---- -- project: - name: 'opnfv-osa-periodic' - - project: openstack-ansible - # ------------------------------- - # branches - # ------------------------------- - stream: - - master: - branch: '{stream}' - # ------------------------------- - # distros - # ------------------------------- - distro: - - ubuntu: - disabled: false - - centos: - disabled: false - - opensuse: - disabled: false - # ------------------------------- - # type - # ------------------------------- - type: - - virtual - # ------------------------------- - # periodic deploy & test phases - # ------------------------------- - phase: - - 'deploy' - - 'healthcheck' - # ------------------------------- - # jobs - # ------------------------------- - jobs: - - 'xci-osa-periodic-{distro}-{type}-{stream}' - - 'xci-osa-periodic-{distro}-{phase}-{type}-{stream}' -# ------------------------------- -# job templates -# ------------------------------- -- job-template: - name: 'xci-osa-periodic-{distro}-{type}-{stream}' - - project-type: multijob - - disabled: '{obj:disabled}' - - concurrent: true - - properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'xci-verify-{distro}-.*' - - 'bifrost-verify-{distro}-.*' - - 'bifrost-periodic-{distro}-.*' - - 'xci-osa-verify-{distro}-.*' - - 'xci-osa-periodic-{distro}-.*' - blocking-level: 'NODE' - - throttle: - max-per-node: 2 - max-total: 10 - categories: - - xci-verify-virtual - option: category - - wrappers: - - ssh-agent-wrapper - - build-timeout: - timeout: 240 - - fix-workspace-permissions - - scm: - - git-scm-openstack - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - label: - name: SLAVE_LABEL - default: 'xci-virtual' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: OPENSTACK_OSA_VERSION - default: 'master' - - string: - name: CLEAN_DIB_IMAGES - default: 'true' - - string: - name: GIT_BASE - default: 'https://git.openstack.org/openstack/$PROJECT' - description: 'Git URL to use on this Jenkins Slave' - - builders: - - description-setter: - description: "Built on $NODE_NAME" - - multijob: - name: deploy - condition: SUCCESSFUL - projects: - - name: 'xci-osa-periodic-{distro}-deploy-{type}-{stream}' - current-parameters: true - predefined-parameters: | - DISTRO={distro} - DEPLOY_SCENARIO=os-nosdn-nofeature-noha - OPENSTACK_OSA_VERSION=$OPENSTACK_OSA_VERSION - CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES - BRANCH=$BRANCH - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - git-revision: true - - multijob: - name: healthcheck - condition: SUCCESSFUL - projects: - - name: 'xci-osa-periodic-{distro}-healthcheck-{type}-{stream}' - current-parameters: true - predefined-parameters: | - DISTRO={distro} - DEPLOY_SCENARIO=os-nosdn-nofeature-noha - OPENSTACK_OSA_VERSION=$OPENSTACK_OSA_VERSION - CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES - FUNCTEST_MODE=tier - FUNCTEST_TIER=healthcheck - BRANCH=$BRANCH - node-parameters: true - kill-phase-on: NEVER - abort-all-job: true - -- job-template: - name: 'xci-osa-periodic-{distro}-{phase}-{type}-{stream}' - - disabled: false - - concurrent: true - - properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - blocking-jobs: - - '.*-bifrost-verify-.*' - - '.*-bifrost-periodic-.*' - blocking-level: 'NODE' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - string: - name: DISTRO - default: 'ubuntu' - - string: - name: DEPLOY_SCENARIO - default: 'os-nosdn-nofeature-noha' - - string: - name: OPENSTACK_OSA_VERSION - default: 'master' - - string: - name: FUNCTEST_MODE - default: 'tier' - - string: - name: FUNCTEST_SUITE_NAME - default: 'healthcheck' - - string: - name: XCI_FLAVOR - default: 'mini' - - string: - name: CLEAN_DIB_IMAGES - default: 'true' - - string: - name: INSTALLER_TYPE - default: 'osa' - - string: - name: GIT_BASE - default: 'https://git.openstack.org/openstack/$PROJECT' - description: 'Git URL to use on this Jenkins Slave' - - wrappers: - - ssh-agent-wrapper - - build-timeout: - timeout: 240 - - fix-workspace-permissions - - scm: - - git-scm-openstack - - builders: - - description-setter: - description: "Built on $NODE_NAME" - - 'xci-osa-periodic-{phase}-macro' - -# ------------------------------- -# builder macros -# ------------------------------- -- builder: - name: 'xci-osa-periodic-deploy-macro' - builders: - - shell: | - #!/bin/bash - - cd $WORKSPACE - - # The start-new-vm.sh script will copy the entire releng-xci directory - # so lets prepare the test script now so it can be copied by the script. - # Please do not move it elsewhere or you would have to move it to the VM - # yourself. - cat > xci_test.sh<<EOF - #!/bin/bash - export DISTRO=$DISTRO - export DEPLOY_SCENARIO=$DEPLOY_SCENARIO - export OPENSTACK_OSA_VERSION=$OPENSTACK_OSA_VERSION - export FUNCTEST_MODE=$FUNCTEST_MODE - export FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME - export XCI_FLAVOR=$XCI_FLAVOR - export CORE_OPENSTACK_INSTALL=true - export CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES - export OPNFV_RELENG_DEV_PATH=/home/devuser/releng-xci/ - export INSTALLER_TYPE=$INSTALLER_TYPE - export GIT_BASE=$GIT_BASE - export JENKINS_HOME=$JENKINS_HOME - - cd xci - ./xci-deploy.sh - EOF - chmod a+x xci_test.sh - - export XCI_BUILD_CLEAN_VM_OS=false - export XCI_UPDATE_CLEAN_VM_OS=true - - ./xci/scripts/vm/start-new-vm.sh $DISTRO - - shell: | - #!/bin/bash - - ssh -F $HOME/.ssh/${DISTRO}-xci-vm-config ${DISTRO}_xci_vm "cd releng-xci && ./xci_test.sh" - - -- builder: - name: 'xci-osa-periodic-healthcheck-macro' - builders: - - shell: | - #!/bin/bash - - echo "Hello World!" - - shell: | - #!/bin/bash - - sudo virsh destroy ${DISTRO}_xci_vm || true - sudo virsh undefine ${DISTRO}_xci_vm || true - -# this will be enabled once the xci is prepared -# - builder: -# name: 'xci-verify-healthcheck-macro' -# builders: -# - shell: -# !include-raw: ../../utils/fetch_os_creds.sh -# - shell: -# !include-raw: ../functest/functest-alpine.sh diff --git a/jjb/xci/xci-cleanup.sh b/jjb/xci/xci-cleanup.sh deleted file mode 100755 index 51a863da2..000000000 --- a/jjb/xci/xci-cleanup.sh +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2018 SUSE and others. -# 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 -############################################################################## - -#---------------------------------------------------------------------- -# This script is used by CI and executed by Jenkins jobs. -# You are not supposed to use this script manually if you don't know -# what you are doing. -#---------------------------------------------------------------------- - -# Need to cover macros with and without parameters -VM_NAME=$DISTRO -VM_NAME+=_xci_vm - -# skip the deployment if the patch doesn't impact the deployment -if [[ "$GERRIT_TOPIC" =~ 'skip-verify' ]]; then - echo "Skipping the deployment!" - exit 0 -fi - -sudo virsh destroy $VM_NAME || true -sudo virsh undefine $VM_NAME || true diff --git a/jjb/xci/xci-daily-jobs.yaml b/jjb/xci/xci-daily-jobs.yaml deleted file mode 100644 index fe3da8b3c..000000000 --- a/jjb/xci/xci-daily-jobs.yaml +++ /dev/null @@ -1,356 +0,0 @@ ---- -- project: - project: 'releng-xci' - - name: 'xci-daily' - - # ------------------------------- - # Branch Anchors - # ------------------------------- - master: &master - stream: master - opnfv-releng-version: master - gs-pathname: '' - - # ------------------------------- - # Scenarios - # ------------------------------- - scenario: - - 'os-nosdn-nofeature-noha': - deploy-scenario: 'os-nosdn-nofeature' - installer-type: 'osa' - xci-flavor: 'noha' - - 'k8-calico-nofeature-noha': - deploy-scenario: 'k8-calico-nofeature' - installer-type: 'kubespray' - xci-flavor: 'noha' - - # ------------------------------- - # XCI PODs - # ------------------------------- - pod: - - baremetal: - <<: *master - - # ------------------------------- - # Supported Distros - # ------------------------------- - distro: - - 'ubuntu': - disabled: true - slave-label: xci-baremetal - - 'centos': - disabled: true - slave-label: xci-baremetal - - 'opensuse': - disabled: true - slave-label: xci-baremetal - - # ------------------------------- - # Phases - # ------------------------------- - phase: - - 'deploy' - - 'functest' - - 'yardstick' - - # ------------------------------- - # jobs - # ------------------------------- - jobs: - - 'xci-{scenario}-{pod}-{distro}-daily-{stream}' - - 'xci-{phase}-{pod}-{distro}-daily-{stream}' - -# ------------------------------- -# job templates -# ------------------------------- -- job-template: - name: 'xci-{scenario}-{pod}-{distro}-daily-{stream}' - - disabled: '{obj:disabled}' - - concurrent: false - - properties: - - build-blocker: - use-build-blocker: true - blocking-jobs: - - '^xci-verify.*' - - '^xci-merge.*' - - '^xci-os.*' - - '^xci-k8.*' - - '^xci-deploy.*' - - '^xci-functest.*' - - '^bifrost-.*periodic.*' - - '^osa-.*periodic.*' - blocking-level: 'NODE' - - logrotate-default - - triggers: - - timed: '@midnight' - - parameters: - - string: - name: DEPLOY_SCENARIO - default: '{deploy-scenario}' - - string: - name: INSTALLER_TYPE - default: '{installer-type}' - - string: - name: XCI_FLAVOR - default: '{xci-flavor}' - - label: - name: SLAVE_LABEL - default: '{slave-label}' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: XCI_DISTRO - default: '{distro}' - - string: - name: FUNCTEST_VERSION - default: 'hunter' - - string: - name: FUNCTEST_MODE - default: 'tier' - - string: - name: FUNCTEST_SUITE_NAME - default: 'smoke' - - string: - name: CI_LOOP - default: 'daily' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - wrappers: - - ssh-agent-wrapper - - build-timeout: - timeout: 240 - - fix-workspace-permissions - - builders: - - description-setter: - description: "Scenario: $DEPLOY_SCENARIO | Node: $NODE_NAME" - - trigger-builds: - - project: 'xci-deploy-{pod}-{distro}-daily-{stream}' - current-parameters: false - predefined-parameters: | - DEPLOY_SCENARIO=$DEPLOY_SCENARIO - INSTALLER_TYPE=$INSTALLER_TYPE - XCI_FLAVOR=$XCI_FLAVOR - CI_LOOP=$CI_LOOP - XCI_DISTRO=$XCI_DISTRO - FUNCTEST_VERSION=$FUNCTEST_VERSION - FUNCTEST_MODE=$FUNCTEST_MODE - FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME - same-node: true - block: true - - trigger-builds: - - project: 'xci-functest-{pod}-{distro}-daily-{stream}' - current-parameters: false - predefined-parameters: | - DEPLOY_SCENARIO=$DEPLOY_SCENARIO - INSTALLER_TYPE=$INSTALLER_TYPE - XCI_FLAVOR=$XCI_FLAVOR - CI_LOOP=$CI_LOOP - XCI_DISTRO=$XCI_DISTRO - FUNCTEST_VERSION=$FUNCTEST_VERSION - FUNCTEST_MODE=$FUNCTEST_MODE - FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME - same-node: true - block: true - block-thresholds: - build-step-failure-threshold: 'never' - failure-threshold: 'never' - unstable-threshold: 'FAILURE' - - trigger-builds: - - project: 'xci-yardstick-{pod}-{distro}-daily-{stream}' - current-parameters: false - predefined-parameters: | - DEPLOY_SCENARIO=$DEPLOY_SCENARIO - INSTALLER_TYPE=$INSTALLER_TYPE - XCI_FLAVOR=$XCI_FLAVOR - CI_LOOP=$CI_LOOP - XCI_DISTRO=$XCI_DISTRO - same-node: true - block: true - block-thresholds: - build-step-failure-threshold: 'never' - failure-threshold: 'never' - unstable-threshold: 'FAILURE' - - publishers: - # yamllint disable rule:line-length - # yamllint enable rule:line-length - - email-jenkins-admins-on-failure - -- job-template: - name: 'xci-{phase}-{pod}-{distro}-daily-{stream}' - - disabled: false - - concurrent: true - - properties: - - build-blocker: - use-build-blocker: true - blocking-jobs: - - '^xci-verify.*' - - '^xci-merge.*' - - '^xci-deploy.*' - - '^xci-functest.*' - - '^bifrost-.*periodic.*' - - '^osa-.*periodic.*' - blocking-level: 'NODE' - - throttle: - enabled: true - max-per-node: 1 - option: 'project' - - logrotate-default - - wrappers: - - ssh-agent-wrapper - - build-timeout: - timeout: 240 - - fix-workspace-permissions - - scm: - - git-scm - - parameters: - - project-parameter: - project: '{project}' - branch: '{opnfv-releng-version}' - - string: - name: DEPLOY_SCENARIO - default: 'os-nosdn-nofeature-noha' - - string: - name: INSTALLER_TYPE - default: 'osa' - - string: - name: XCI_FLAVOR - default: 'noha' - - string: - name: XCI_DISTRO - default: 'ubuntu' - - label: - name: SLAVE_LABEL - default: '{slave-label}' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: FUNCTEST_VERSION - default: 'hunter' - - string: - name: FUNCTEST_MODE - default: 'tier' - - string: - name: FUNCTEST_SUITE_NAME - default: 'smoke' - - string: - name: CI_LOOP - default: 'daily' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - - builders: - - description-setter: - description: "Scenario: $DEPLOY_SCENARIO | Node: $NODE_NAME" - - 'xci-daily-{phase}-macro' - -# -------------------------- -# builder macros -# -------------------------- -# These need to be properly fixed once the basic deployment, functest, and -# yardstick jobs are working outside of clean vm. -# One of the ugly fixes is moving test preparation step into the -# deployment job itself since test preparation requires some of the -# things from deployment job. With clean VM, this wasn't an issue -# since everything was on clean VM. When we move things out of clean -# VM, things are done in workspaces of the jobs that are different. -# -# Apart from these things, we will need to go through the scripts -# used for verify jobs and make them updated in order to be able to -# use them for jobs that don't use clean VM. -- builder: - name: 'xci-daily-deploy-macro' - builders: - - shell: | - #!/bin/bash - set -o errexit - set -o pipefail - - echo "Cleaning the leftovers from the earlier run" - echo "---------------------------------------------------------------------------------" - for vm in $(sudo virsh list --all --name | grep -v xci_vm); do - echo "Removing $vm" - sudo virsh destroy $vm > /dev/null 2>&1 || true - sudo virsh undefine $vm > /dev/null 2>&1 || true - sudo killall -r vbmc > /dev/null 2>&1 || true - sudo rm -rf /root/.vbmc > /dev/null 2>&1 || true - done - echo "---------------------------------------------------------------------------------" - - # select the right PDF/IDF - export PDF=$WORKSPACE/xci/var/${NODE_NAME}-pdf.yml - export IDF=$WORKSPACE/xci/var/${NODE_NAME}-idf.yml - if [[ "$NODE_NAME" =~ "virtual" ]]; then - export PDF=$WORKSPACE/xci/var/pdf.yml - export IDF=$WORKSPACE/xci/var/idf.yml - fi - - cd $WORKSPACE/xci && ./xci-deploy.sh -p $PDF -i $IDF - - echo "Prepare OPNFV VM for Tests" - echo "---------------------------------------------------------------------------------" - export XCI_PATH=$WORKSPACE - export XCI_VENV=${XCI_PATH}/venv - source $XCI_VENV/bin/activate - while read var; do - declare -x "\${var}" 2>/dev/null - echo $var - done < ${XCI_PATH}/.cache/xci.env && cd ${XCI_PATH}/xci && \ - ansible-playbook -i playbooks/dynamic_inventory.py playbooks/prepare-tests.yml - ssh root@192.168.122.2 "/root/prepare-tests.sh" - echo "---------------------------------------------------------------------------------" - -- builder: - name: 'xci-daily-functest-macro' - builders: - - shell: | - #!/bin/bash - set -o pipefail - - ssh root@192.168.122.2 "/root/run-functest.sh" - functest_exit=$? - - case ${DEPLOY_SCENARIO[0]} in - os-*) - FUNCTEST_LOG=/root/functest-results/functest.log - ;; - k8-*) - FUNCTEST_LOG=/root/functest-results/functest-kubernetes.log - ;; - *) - echo "Unable to determine the installer. Exiting!" - exit $functest_exit - ;; - esac - - echo "Functest log" - echo "---------------------------------------------------------------------------------" - ssh root@192.168.122.2 "cat $FUNCTEST_LOG" - echo "---------------------------------------------------------------------------------" - exit ${functest_exit} -- builder: - name: 'xci-daily-yardstick-macro' - builders: - - shell: | - #!/bin/bash - set -o errexit - set -o pipefail - - ssh root@192.168.122.2 "/root/run-yardstick.sh" diff --git a/jjb/xci/xci-deploy.sh b/jjb/xci/xci-deploy.sh deleted file mode 100755 index 71cf96d8d..000000000 --- a/jjb/xci/xci-deploy.sh +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2016 Ericsson AB and others. -# 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 -############################################################################## -set -o errexit -set -o nounset -set -o pipefail - -cd $WORKSPACE/xci - -# for daily jobs, we want to use working versions -# for periodic jobs, we will use whatever is set in the job, probably master -if [[ "$CI_LOOP" == "daily" ]]; then - # source pinned-vars to get releng version - source ./config/pinned-versions - - # checkout the version - git checkout -q $OPNFV_RELENG_VERSION - echo "Info: Using $OPNFV_RELENG_VERSION" -elif [[ "$CI_LOOP" == "periodic" ]]; then - echo "Info: Using $OPNFV_RELENG_VERSION" -fi - -# this is just an example to give the idea about what we need to do -# so ignore this part for the timebeing as we need to adjust xci-deploy.sh -# to take this into account while deploying anyways -# clone openstack-ansible -# stable/ocata already use pinned versions so this is only valid for master -if [[ "$CI_LOOP" == "periodic" && "$OPENSTACK_OSA_VERSION" == "master" ]]; then - cd $WORKSPACE - # get the url to openstack-ansible git - source ./config/env-vars - echo "Info: Capture the ansible role requirement versions before doing anything" - git clone -q $OPENSTACK_OSA_GIT_URL - cd openstack-ansible - cat ansible-role-requirements.yml | while IFS= read -r line - do - if [[ $line =~ "src:" ]]; then - repo_url=$(echo $line | awk {'print $2'}) - repo_sha1=$(git ls-remote $repo_url $OPENSTACK_OSA_VERSION | awk {'print $1'}) - fi - echo "$line" | sed -e "s|master|$repo_sha1|" >> opnfv-ansible-role-requirements.yml - done - echo "Info: SHA1s of ansible role requirements" - echo "-------------------------------------------------------------------------" - cat opnfv-ansible-role-requirements.yml - echo "-------------------------------------------------------------------------" -fi - -# proceed with the deployment -cd $WORKSPACE/xci -./xci-deploy.sh - -if [[ "$JOB_NAME" =~ "periodic" && "$OPENSTACK_OSA_VERSION" == "master" ]]; then - # if we arrived here without failing, it means we have something we can pin - # this is again here to show the intention - cd $WORKSPACE/openstack-ansible - OSA_GIT_SHA1=$(git rev-parse HEAD) - - # log some info - echo -e "\n" - echo "***********************************************************************" - echo "* OSA SHA1 TO PIN *" - echo "* *" - echo " $OSA_GIT_SHA1" - echo "* *" - echo "***********************************************************************" -fi - -echo -e "\n" diff --git a/jjb/xci/xci-merge-jobs.yaml b/jjb/xci/xci-merge-jobs.yaml deleted file mode 100644 index 666ca9680..000000000 --- a/jjb/xci/xci-merge-jobs.yaml +++ /dev/null @@ -1,492 +0,0 @@ ---- -- project: - name: 'opnfv-xci-merge' - - project: releng-xci - # ------------------------------- - # branches - # ------------------------------- - stream: - - master: - branch: '{stream}' - disabled: true - # ------------------------------- - # distros - # ------------------------------- - distro: - - ubuntu: - disabled: true - kill-phase-on: FAILURE - abort-all-job: true - - centos: - disabled: true - kill-phase-on: NEVER - abort-all-job: false - - opensuse: - disabled: true - kill-phase-on: FAILURE - abort-all-job: true - # ------------------------------- - # postmerge promotion phases - # ------------------------------- - phase: - - 'deploy' - - 'healthcheck' - # ------------------------------- - # jobs - # ------------------------------- - jobs: - - 'xci-merge-virtual-{stream}' - - 'xci-merge-promote-virtual-{stream}' - - 'xci-merge-{distro}-virtual-{stream}' - - 'xci-merge-{distro}-{phase}-virtual-{stream}' -# ------------------------------- -# job templates -# ------------------------------- -- job-template: - name: 'xci-merge-virtual-{stream}' - - project-type: multijob - - disabled: '{obj:disabled}' - - concurrent: false - - properties: - - logrotate-default - - wrappers: - - ssh-agent-wrapper - - build-timeout: - timeout: 240 - - fix-workspace-permissions - - scm: - - git-scm-gerrit - - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - change-merged-event - - comment-added-contains-event: - comment-contains-value: 'remerge' - projects: - - project-compare-type: 'ANT' - project-pattern: 'releng-xci' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - disable-strict-forbidden-file-verification: 'false' - forbidden-file-paths: - - compare-type: ANT - pattern: 'xci/scripts/vm/**' - - compare-type: ANT - pattern: 'docs/**' - - compare-type: ANT - pattern: 'prototypes/**' - - compare-type: ANT - pattern: 'upstream/**' - - compare-type: ANT - pattern: 'INFO.yaml' - - project-compare-type: 'REG_EXP' - project-pattern: 'sfc|sdnvpn|releng-xci-scenarios' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - disable-strict-forbidden-file-verification: 'true' - file-paths: - - compare-type: ANT - pattern: 'scenarios/**' - readable-message: true - custom-url: '* $JOB_NAME $BUILD_URL' - - parameters: - - project-parameter: - project: $GERRIT_PROJECT - branch: '{branch}' - - label: - name: SLAVE_LABEL - default: 'xci-virtual' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: CI_LOOP - default: 'merge' - - string: - name: FUNCTEST_MODE - default: 'tier' - - string: - name: FUNCTEST_SUITE_NAME - default: 'healthcheck' - - string: - name: DISTRO - default: 'all' - - string: - name: CLEAN_DIB_IMAGES - default: 'true' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - builders: - - 'xci-merge-set-scenario-macro' - - inject: - properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties" - - description-setter: - description: "Scenario: $DEPLOY_SCENARIO | Node: $NODE_NAME" - - multijob: - name: deploy and test - condition: SUCCESSFUL - projects: - - name: 'xci-merge-opensuse-virtual-{stream}' - current-parameters: false - predefined-parameters: | - DISTRO=opensuse - CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES - GERRIT_PROJECT=$GERRIT_PROJECT - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - CI_LOOP=$CI_LOOP - FUNCTEST_MODE=$FUNCTEST_MODE - FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: true - - name: 'xci-merge-ubuntu-virtual-{stream}' - current-parameters: false - predefined-parameters: | - DISTRO=ubuntu - CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES - GERRIT_PROJECT=$GERRIT_PROJECT - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - CI_LOOP=$CI_LOOP - FUNCTEST_MODE=$FUNCTEST_MODE - FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: true - - name: 'xci-merge-centos-virtual-{stream}' - current-parameters: false - predefined-parameters: | - DISTRO=centos - CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES - GERRIT_PROJECT=$GERRIT_PROJECT - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - CI_LOOP=$CI_LOOP - FUNCTEST_MODE=$FUNCTEST_MODE - FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME - node-parameters: false - kill-phase-on: NEVER - abort-all-job: false - - inject: - properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties" - - multijob: - name: promote - condition: SUCCESSFUL - projects: - - name: 'xci-merge-promote-virtual-{stream}' - current-parameters: true - predefined-parameters: | - GERRIT_PROJECT=$GERRIT_PROJECT - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - CI_LOOP=$CI_LOOP - FUNCTEST_MODE=$FUNCTEST_MODE - FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME - node-parameters: true - kill-phase-on: NEVER - abort-all-job: true - -- job-template: - name: 'xci-merge-{distro}-virtual-{stream}' - - project-type: multijob - - disabled: '{obj:disabled}' - - concurrent: false - - properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'xci-verify-{distro}-.*' - - 'xci-merge-{distro}-.*' - - 'xci-os.*' - - 'xci-k8.*' - - 'openstack-bifrost-verify-{distro}-.*' - - 'xci-osa-verify-{distro}-.*' - - 'xci-osa-periodic-{distro}-.*' - blocking-level: 'NODE' - - throttle: - max-per-node: 1 - max-total: 3 - categories: - - xci-verify-virtual - option: category - - wrappers: - - ssh-agent-wrapper - - build-timeout: - timeout: 240 - - fix-workspace-permissions - - scm: - - git-scm-gerrit - - parameters: - - project-parameter: - project: $GERRIT_PROJECT - branch: '{branch}' - - label: - name: SLAVE_LABEL - default: 'xci-virtual' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: CI_LOOP - default: 'merge' - - string: - name: FUNCTEST_VERSION - default: 'hunter' - - string: - name: FUNCTEST_MODE - default: 'tier' - - string: - name: FUNCTEST_SUITE_NAME - default: 'healthcheck' - - string: - name: DISTRO - default: '{distro}' - - string: - name: CLEAN_DIB_IMAGES - default: 'true' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - builders: - - 'xci-merge-set-scenario-macro' - - inject: - properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties" - - description-setter: - description: "Scenario: $DEPLOY_SCENARIO | Node: $NODE_NAME" - - multijob: - name: deploy - condition: SUCCESSFUL - projects: - - name: 'xci-merge-{distro}-deploy-virtual-{stream}' - current-parameters: true - predefined-parameters: | - DISTRO={distro} - CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES - GERRIT_PROJECT=$GERRIT_PROJECT - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - FUNCTEST_VERSION=$FUNCTEST_VERSION - FUNCTEST_MODE=$FUNCTEST_MODE - FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME - node-parameters: true - kill-phase-on: '{kill-phase-on}' - abort-all-job: '{abort-all-job}' - - multijob: - name: healthcheck - condition: SUCCESSFUL - projects: - - name: 'xci-merge-{distro}-healthcheck-virtual-{stream}' - current-parameters: true - predefined-parameters: | - DISTRO={distro} - CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES - GERRIT_PROJECT=$GERRIT_PROJECT - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - CI_LOOP=$CI_LOOP - FUNCTEST_VERSION=$FUNCTEST_VERSION - FUNCTEST_MODE=$FUNCTEST_MODE - FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME - node-parameters: true - kill-phase-on: '{kill-phase-on}' - abort-all-job: '{abort-all-job}' - - publishers: - - postbuildscript: - builders: - - role: BOTH - build-on: - - ABORTED - - FAILURE - - NOT_BUILT - - SUCCESS - - UNSTABLE - build-steps: - - shell: !include-raw: ./xci-cleanup.sh - mark-unstable-if-failed: true - -- job-template: - name: 'xci-merge-{distro}-{phase}-virtual-{stream}' - - disabled: false - - concurrent: false - - properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - blocking-jobs: - - '.*-bifrost-verify-.*' - - '.*-bifrost-periodic-.*' - - 'osa-verify-.*' - - 'osa-periodic-.*' - blocking-level: 'NODE' - - parameters: - - string: - name: PROJECT - default: $GERRIT_PROJECT - - string: - name: DISTRO - default: 'ubuntu' - - string: - name: CI_LOOP - default: 'merge' - - string: - name: FUNCTEST_VERSION - default: 'hunter' - - string: - name: FUNCTEST_MODE - default: 'tier' - - string: - name: FUNCTEST_SUITE_NAME - default: 'healthcheck' - - string: - name: XCI_FLAVOR - default: 'mini' - - string: - name: CLEAN_DIB_IMAGES - default: 'true' - - string: - name: OPNFV_RELENG_DEV_PATH - default: $WORKSPACE/ - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - wrappers: - - inject: - properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties" - - ssh-agent-wrapper - - build-timeout: - timeout: 240 - - fix-workspace-permissions - - scm: - - git-scm-gerrit - - builders: - - description-setter: - description: "Scenario: $DEPLOY_SCENARIO | Node: $NODE_NAME" - - 'xci-merge-{phase}-macro' - -- job-template: - name: 'xci-merge-promote-virtual-{stream}' - - disabled: false - - concurrent: false - - properties: - - logrotate-default - - parameters: - - string: - name: PROJECT - default: $GERRIT_PROJECT - - string: - name: CI_LOOP - default: 'merge' - - string: - name: FUNCTEST_MODE - default: 'tier' - - string: - name: FUNCTEST_SUITE_NAME - default: 'healthcheck' - - string: - name: DISTRO - default: 'all' - - string: - name: OPNFV_RELENG_DEV_PATH - default: $WORKSPACE/ - - string: - name: LOCAL_PROMOTION_METADATA_FILE - default: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties" - - string: - name: REMOTE_PROMOTION_METADATA_FILE - default: "gs://artifacts.opnfv.org/xci/pipeline/merge/$DEPLOY_SCENARIO.properties" - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - wrappers: - - inject: - properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties" - - ssh-agent-wrapper - - build-timeout: - timeout: 240 - - fix-workspace-permissions - - builders: - - description-setter: - description: "Scenario: $DEPLOY_SCENARIO | Node: $NODE_NAME" - - 'xci-merge-promote-macro' - -# ------------------------------- -# builder macros -# ------------------------------- -- builder: - name: 'xci-merge-set-scenario-macro' - builders: - - shell: - !include-raw: ./xci-set-scenario.sh - -- builder: - name: 'xci-merge-deploy-macro' - builders: - - shell: - !include-raw: ./xci-start-new-vm.sh - - - shell: - !include-raw: ./xci-start-deployment.sh - -- builder: - name: 'xci-merge-healthcheck-macro' - builders: - - shell: - !include-raw: ./xci-run-functest.sh - -- builder: - name: 'xci-merge-promote-macro' - builders: - - shell: - !include-raw: ./xci-promote.sh diff --git a/jjb/xci/xci-promote.sh b/jjb/xci/xci-promote.sh deleted file mode 100755 index d8d61bee2..000000000 --- a/jjb/xci/xci-promote.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2018 Ericsson and others. -# 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 -############################################################################## - -#---------------------------------------------------------------------- -# This script is used by CI and executed by Jenkins jobs. -# You are not supposed to use this script manually if you don't know -# what you are doing. -#---------------------------------------------------------------------- - -# ensure GERRIT_TOPIC is set -GERRIT_TOPIC="${GERRIT_TOPIC:-''}" - -# skip the healthcheck if the patch doesn't impact the deployment -if [[ "$GERRIT_TOPIC" =~ skip-verify|skip-deployment ]]; then - echo "Skipping the healthcheck!" - exit 0 -fi - -# fail if promotion metadata file doesn't exist -if [ ! -f $LOCAL_PROMOTION_METADATA_FILE ]; then - echo "Unable to find promotion metadata file $LOCAL_PROMOTION_METADATA_FILE" - echo "Skipping promotion!" - exit 1 -fi - -# put additional info into the metadata file so we can use that for displaying the information -echo "PROMOTED_BY=$BUILD_URL" >> $LOCAL_PROMOTION_METADATA_FILE -echo "PROMOTED_ON=$(date -u '+%F_%H:%M'UTC)" >> $LOCAL_PROMOTION_METADATA_FILE - -# upload promotion metadata file to OPNFV artifact repo -echo "Storing promotion metadata as $REMOTE_PROMOTION_METADATA_FILE" -gsutil cp $LOCAL_PROMOTION_METADATA_FILE $REMOTE_PROMOTION_METADATA_FILE > /dev/null 2>&1 - -# update the file metadata on gs to prevent the use of cached version of the file -gsutil -m setmeta -r -h "Content-Type:text/html" \ - -h "Cache-Control:private, max-age=0, no-transform" \ - $REMOTE_PROMOTION_METADATA_FILE > /dev/null 2>&1 - -# log the metadata to console -echo "Stored the metadata for $DEPLOY_SCENARIO" -echo "---------------------------------------------------------------------------------" -gsutil cat $REMOTE_PROMOTION_METADATA_FILE -echo "---------------------------------------------------------------------------------" -echo "Scenario $DEPLOY_SCENARIO has successfully been promoted!" diff --git a/jjb/xci/xci-rtd-jobs.yaml b/jjb/xci/xci-rtd-jobs.yaml deleted file mode 100644 index d21aad5a0..000000000 --- a/jjb/xci/xci-rtd-jobs.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -- project: - name: releng-xci-rtd - project: releng-xci - project-name: releng-xci - - gerrit-skip-vote: true - project-pattern: 'releng-xci' - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-releng-xci/47389/' - rtd-token: '7dbc774ea9a625296d2e973aff3e79af26b15d4d' - - jobs: - - '{project-name}-rtd-jobs' diff --git a/jjb/xci/xci-run-functest.sh b/jjb/xci/xci-run-functest.sh deleted file mode 100755 index 992194ca3..000000000 --- a/jjb/xci/xci-run-functest.sh +++ /dev/null @@ -1,77 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2018 SUSE and others. -# 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 -############################################################################## -set -o nounset - -#---------------------------------------------------------------------- -# This script is used by CI and executed by Jenkins jobs. -# You are not supposed to use this script manually if you don't know -# what you are doing. -#---------------------------------------------------------------------- - -# ensure GERRIT_TOPIC is set -GERRIT_TOPIC="${GERRIT_TOPIC:-''}" - -# skip the healthcheck if the patch doesn't impact the deployment -if [[ "$GERRIT_TOPIC" =~ skip-verify|skip-deployment ]]; then - echo "Skipping the healthcheck!" - exit 0 -fi - -# if the scenario is external, we need to wipe WORKSPACE to place releng-xci there since -# the project where the scenario is coming from is cloned and the patch checked out to the -# xci/scenarios/$DEPLOY_SCENARIO to be synched on clean VM -# apart from that, we need releng-xci stuff in WORKSPACE for things to function correctly on Jenkins. -# if the change is coming to releng-xci, we don't need to do anything since the patch is checked -# out to the WORKSPACE anyways -if [[ $GERRIT_PROJECT != "releng-xci" ]]; then - cd $HOME && /bin/rm -rf $WORKSPACE - git clone https://gerrit.opnfv.org/gerrit/releng-xci $WORKSPACE && cd $WORKSPACE - chmod -R go-rwx $WORKSPACE/xci/scripts/vm -fi - -# skip the deployment if the scenario is not supported on this distro -OPNFV_SCENARIO_REQUIREMENTS=$WORKSPACE/xci/opnfv-scenario-requirements.yml -if ! sed -n "/^- scenario: $DEPLOY_SCENARIO$/,/^$/p" $OPNFV_SCENARIO_REQUIREMENTS | grep -q $DISTRO; then - echo "# SKIPPED: Scenario $DEPLOY_SCENARIO is NOT supported on $DISTRO" - exit 0 -fi - -# set XCI_VENV for ansible -export XCI_PATH=/home/devuser/releng-xci -export XCI_VENV=${XCI_PATH}/venv - -ssh -F $HOME/.ssh/${DISTRO}-xci-vm-config ${DISTRO}_xci_vm "source $XCI_VENV/bin/activate; \ - while read var; do declare -x \"\${var}\" 2>/dev/null; done < ${XCI_PATH}/.cache/xci.env && \ - cd releng-xci/xci && ansible-playbook -i playbooks/dynamic_inventory.py playbooks/prepare-tests.yml" -echo "Prepare OPNFV VM for Tests" -ssh -F $HOME/.ssh/${DISTRO}-xci-vm-config ${DISTRO}_xci_vm_opnfv "/root/prepare-tests.sh" -echo "Running Functest" -ssh -F $HOME/.ssh/${DISTRO}-xci-vm-config ${DISTRO}_xci_vm_opnfv "/root/run-functest.sh" -# Record exit code -functest_exit=$? - -case ${DEPLOY_SCENARIO[0]} in - os-*) - FUNCTEST_LOG=/root/functest-results/functest.log - ;; - k8-*) - FUNCTEST_LOG=/root/functest-results/functest-kubernetes.log - ;; - *) - echo "Unable to determine the installer. Exiting!" - exit 1 - ;; -esac - -echo "Functest log" -echo "---------------------------------------------------------------------------------" -ssh -F $HOME/.ssh/${DISTRO}-xci-vm-config ${DISTRO}_xci_vm_opnfv "cat $FUNCTEST_LOG" -echo "---------------------------------------------------------------------------------" -exit ${functest_exit} diff --git a/jjb/xci/xci-set-scenario.sh b/jjb/xci/xci-set-scenario.sh deleted file mode 100755 index ccea16f87..000000000 --- a/jjb/xci/xci-set-scenario.sh +++ /dev/null @@ -1,265 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2018 SUSE and others. -# 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 -############################################################################## -set -o pipefail -set -x - -#---------------------------------------------------------------------- -# This script is used by CI and executed by Jenkins jobs. -# You are not supposed to use this script manually if you don't know -# what you are doing. -#---------------------------------------------------------------------- - -# This function allows developers to specify the impacted scenario by adding -# the info about installer and scenario into the commit message or using -# the topic branch names. This results in either skipping the real verification -# totally or skipping the determining the installer and scenario programmatically. -# It is important to note that this feature is only available to generic scenarios -# and only single installer/scenario pair is allowed. -# The input in commit message should be placed at the end of the commit message body, -# before the signed-off and change-id lines. -# -# Pattern to be searched in Commit Message -# deploy-scenario:<scenario-name> -# installer-type:<installer-type> -# Examples: -# deploy-scenario:os-odl-nofeature -# installer-type:osa -# -# deploy-scenario:k8-nosdn-nofeature -# installer-type:kubespray -# -# Patterns to be searched in topic branch name -# skip-verify -# skip-deployment -# force-verify -function override_scenario() { - echo "Processing $GERRIT_PROJECT patchset $GERRIT_REFSPEC" - - # ensure the metadata we record is consistent for all types of patches including skipped ones - # extract releng-xci sha - XCI_SHA=$(cd $WORKSPACE && git rev-parse HEAD) - - # extract scenario sha which is same as releng-xci sha for generic scenarios - SCENARIO_SHA=$XCI_SHA - - # process topic branch names - if [[ "$GERRIT_TOPIC" =~ skip-verify|skip-deployment|force-verify ]]; then - [[ "$GERRIT_TOPIC" =~ force-verify ]] && echo "Forcing CI verification using default scenario and installer!" - [[ "$GERRIT_TOPIC" =~ skip-verify|skip-deployment ]] && echo "Skipping verification!" - echo "INSTALLER_TYPE=osa" >> $WORK_DIRECTORY/scenario.properties - echo "DEPLOY_SCENARIO=os-nosdn-nofeature" >> $WORK_DIRECTORY/scenario.properties - echo "XCI_SHA=$XCI_SHA" >> $WORK_DIRECTORY/scenario.properties - echo "SCENARIO_SHA=$SCENARIO_SHA" >> $WORK_DIRECTORY/scenario.properties - echo "PROJECT_NAME=$GERRIT_PROJECT" >> $WORK_DIRECTORY/scenario.properties - log_scenario_properties - exit 0 - fi - - # process commit message - if [[ "$GERRIT_CHANGE_COMMIT_MESSAGE" =~ "installer-type:" && "$GERRIT_CHANGE_COMMIT_MESSAGE" =~ "deploy-scenario:" ]]; then - INSTALLER_TYPE=$(echo $GERRIT_CHANGE_COMMIT_MESSAGE | awk '/installer-type:/' RS=" " | cut -d":" -f2) - DEPLOY_SCENARIO=$(echo $GERRIT_CHANGE_COMMIT_MESSAGE | awk '/deploy-scenario:/' RS=" " | cut -d":" -f2) - - if [[ -z "$INSTALLER_TYPE" || -z "$DEPLOY_SCENARIO" ]]; then - echo "Installer type or deploy scenario is not specified. Falling back to programmatically determining them." - else - echo "Recording the installer '$INSTALLER_TYPE' and scenario '$DEPLOY_SCENARIO' for downstream jobs" - echo "INSTALLER_TYPE=$INSTALLER_TYPE" >> $WORK_DIRECTORY/scenario.properties - echo "DEPLOY_SCENARIO=$DEPLOY_SCENARIO" >> $WORK_DIRECTORY/scenario.properties - echo "XCI_SHA=$XCI_SHA" >> $WORK_DIRECTORY/scenario.properties - echo "SCENARIO_SHA=$SCENARIO_SHA" >> $WORK_DIRECTORY/scenario.properties - echo "PROJECT_NAME=$GERRIT_PROJECT" >> $WORK_DIRECTORY/scenario.properties - log_scenario_properties - exit 0 - fi - else - echo "Installer type or deploy scenario is not specified. Falling back to programmatically determining them." - fi -} - -# This function determines the default scenario for changes coming to releng-xci -# by processing the Gerrit change and using diff to see what changed. -# -# The stuff in releng-xci is for the installer and other common things so the -# determination is based on those. -# -# Pattern -# releng-xci/installer/<installer_type>/<impacted files>: <scenario> -function determine_default_scenario() { - echo "Processing $GERRIT_PROJECT patchset $GERRIT_REFSPEC" - - # get the changeset - cd $WORKSPACE - # We need to set default scenario for changes that mess with installers - INSTALLERS=$(git diff HEAD^..HEAD --name-only -- 'xci/installer' | cut -d "/" -f 3 | uniq) - for CHANGED_INSTALLER in $INSTALLERS; do - case $CHANGED_INSTALLER in - kubespray) - DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]='k8-nosdn-nofeature' - ;; - # Default case (including OSA changes) - *) - DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]='os-nosdn-nofeature' - ;; - esac - done - # For all other changes, we only need to set a default scenario if it's not set already - if git diff HEAD^..HEAD --name-only | grep -q -v 'xci/installer'; then - [[ ${#DEPLOY_SCENARIO[@]} -eq 0 ]] && DEPLOY_SCENARIO[${#DEPLOY_SCENARIO[@]}]='os-nosdn-nofeature' - fi - - # extract releng-xci sha - XCI_SHA=$(cd $WORKSPACE && git rev-parse HEAD) - - # TODO: we need to fix this so we actually extract the scenario sha by cloning releng-xci-scenarios - # for the determined scenario. it is crucial for promotion... - SCENARIO_SHA=$XCI_SHA -} - -# This function determines the impacted scenario by processing the Gerrit -# change and using diff to see what changed. If changed files belong to a scenario -# its name gets recorded for deploying and testing the right scenario. -# -# Pattern -# <project-repo>/scenarios/<scenario>/<impacted files>: <scenario> -function determine_scenario() { - echo "Processing $GERRIT_PROJECT patchset $GERRIT_REFSPEC" - - # remove the clone that is done via jenkins and place releng-xci there so the - # things continue functioning properly - cd $HOME && /bin/rm -rf $WORKSPACE - git clone -q https://gerrit.opnfv.org/gerrit/releng-xci $WORKSPACE && cd $WORKSPACE - - # fix the permissions so ssh doesn't complain due to having world-readable keyfiles - chmod -R go-rwx $WORKSPACE/xci/scripts/vm - - # clone the project repo and fetch the patchset to process for further processing - git clone -q https://gerrit.opnfv.org/gerrit/$GERRIT_PROJECT $WORK_DIRECTORY/$GERRIT_PROJECT - cd $WORK_DIRECTORY/$GERRIT_PROJECT - git fetch -q https://gerrit.opnfv.org/gerrit/$GERRIT_PROJECT $GERRIT_REFSPEC && git checkout -q FETCH_HEAD - - # process the diff to find out what scenario(s) are impacted - there should only be 1 - DEPLOY_SCENARIO+=$(git diff HEAD^..HEAD --name-only | grep scenarios | awk -F '[/|/]' '{print $2}' | uniq) - - # extract releng-xci sha - XCI_SHA=$(cd $WORKSPACE && git rev-parse HEAD) - - # extract scenario sha - SCENARIO_SHA=$(cd $WORK_DIRECTORY/$GERRIT_PROJECT && git rev-parse HEAD) -} - -# This function allows developers to specify the specific XCI flavor for the -# impacted scenario by adding the XCI Flavor info about the specific scenario. -# This results in either skipping the real verification -# totally or skipping the determining the installer and scenario programmatically. -# It is important to note that this feature is only available to generic scenarios -# and only single installer/scenario pair is allowed. -# The input in commit message should be placed at the end of the commit message body, -# before the signed-off and change-id lines. -# -# Pattern to be searched in Commit Message -# xci-flavor:<xci-flavor> -# Examples: -# xci-flavor:noha -function override_xci_flavor() { - echo "Processing $GERRIT_PROJECT patchset $GERRIT_REFSPEC" - - # process commit message for XCI Flavor - if [[ "$GERRIT_CHANGE_COMMIT_MESSAGE" =~ "xci-flavor:" ]]; then - XCI_FLAVOR=$(echo $GERRIT_CHANGE_COMMIT_MESSAGE | awk '/xci-flavor:/' RS=" " | cut -d":" -f2) - - if [[ -z "$XCI_FLAVOR" ]]; then - XCI_FLAVOR='mini' - echo "XCI flavor is not specified. The default is specified instead (i.e. mini). Falling back to programmatically determining them." - echo "XCI_FLAVOR=mini" >> $WORK_DIRECTORY/scenario.properties - else - echo "Recording the XCI flavor '$XCI_FLAVOR' for downstream jobs" - echo "XCI_FLAVOR=$XCI_FLAVOR" >> $WORK_DIRECTORY/scenario.properties - fi - else - XCI_FLAVOR='mini' - echo "XCI flavor is not specified. The default is specified instead (i.e. mini). Falling back to programmatically determining them." - echo "XCI_FLAVOR=mini" >> $WORK_DIRECTORY/scenario.properties - fi - -} - -function log_scenario_properties() { - echo "Processing $GERRIT_PROJECT patchset $GERRIT_REFSPEC" - echo "-------------------------------------------------------------------------" - cat $WORK_DIRECTORY/scenario.properties - echo "-------------------------------------------------------------------------" -} - -echo "Determining the impacted scenario" - -declare -a DEPLOY_SCENARIO - -# ensure GERRIT_TOPIC is set -GERRIT_TOPIC="${GERRIT_TOPIC:-''}" - -# this directory is where the temporary clones and files are created -# while extracting the impacted scenario -WORK_DIRECTORY=/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO -/bin/rm -rf $WORK_DIRECTORY && mkdir -p $WORK_DIRECTORY - -if [[ $GERRIT_PROJECT == "releng-xci" ]]; then - determine_default_scenario -else - determine_scenario -fi -override_xci_flavor -override_scenario - -# ensure single scenario is impacted - if [[ $(IFS=$'\n' echo ${DEPLOY_SCENARIO[@]} | wc -w) != 1 ]]; then - echo "Change impacts multiple scenarios!" - echo "XCI doesn't support testing of changes that impact multiple scenarios currently." - echo "Please split your change into multiple different/dependent changes, each modifying single scenario." - exit 1 -fi - -# set the installer -case ${DEPLOY_SCENARIO[0]} in - os-*) - INSTALLER_TYPE=osa - ;; - k8-*) - INSTALLER_TYPE=kubespray - ;; - *) - echo "Unable to determine the installer. Exiting!" - exit 1 - ;; -esac - -# save the installer and scenario names into java properties file -# so they can be injected to downstream jobs via envInject -echo "Recording the installer '$INSTALLER_TYPE' and scenario '${DEPLOY_SCENARIO[0]}' and SHAs for downstream jobs" -echo "INSTALLER_TYPE=$INSTALLER_TYPE" >> $WORK_DIRECTORY/scenario.properties -echo "DEPLOY_SCENARIO=$DEPLOY_SCENARIO" >> $WORK_DIRECTORY/scenario.properties -echo "XCI_SHA=$XCI_SHA" >> $WORK_DIRECTORY/scenario.properties -echo "SCENARIO_SHA=$SCENARIO_SHA" >> $WORK_DIRECTORY/scenario.properties -echo "PROJECT_NAME=$GERRIT_PROJECT" >> $WORK_DIRECTORY/scenario.properties - -# log scenario.properties to console to ease the troubleshooting when needed -log_scenario_properties - -# skip scenario support check if the job is promotion job -if [[ "$JOB_NAME" =~ (os|k8) ]]; then - exit 0 -fi - -# skip the deployment if the scenario is not supported on this distro -OPNFV_SCENARIO_REQUIREMENTS=$WORKSPACE/xci/opnfv-scenario-requirements.yml -if ! sed -n "/^- scenario: ${DEPLOY_SCENARIO[0]}$/,/^$/p" $OPNFV_SCENARIO_REQUIREMENTS | grep -q $DISTRO; then - echo "# SKIPPED: Scenario ${DEPLOY_SCENARIO[0]} is NOT supported on $DISTRO" - exit 0 -fi diff --git a/jjb/xci/xci-start-deployment.sh b/jjb/xci/xci-start-deployment.sh deleted file mode 100755 index 102ca41c3..000000000 --- a/jjb/xci/xci-start-deployment.sh +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2018 SUSE and others. -# 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 -############################################################################## - -#---------------------------------------------------------------------- -# This script is used by CI and executed by Jenkins jobs. -# You are not supposed to use this script manually if you don't know -# what you are doing. -#---------------------------------------------------------------------- - -# ensure GERRIT_TOPIC is set -GERRIT_TOPIC="${GERRIT_TOPIC:-''}" - -# skip the deployment if the patch doesn't impact the deployment -if [[ "$GERRIT_TOPIC" =~ skip-verify|skip-deployment ]]; then - echo "Skipping the deployment!" - exit 0 -fi - -# if the scenario is external, we need to wipe WORKSPACE to place releng-xci there since -# the project where the scenario is coming from is cloned and the patch checked out to the -# xci/scenarios/$DEPLOY_SCENARIO to be synched on clean VM -# apart from that, we need releng-xci stuff in WORKSPACE for things to function correctly on Jenkins. -# if the change is coming to releng-xci, we don't need to do anything since the patch is checked -# out to the WORKSPACE anyways -if [[ $GERRIT_PROJECT != "releng-xci" ]]; then - cd $HOME && /bin/rm -rf $WORKSPACE - git clone https://gerrit.opnfv.org/gerrit/releng-xci $WORKSPACE && cd $WORKSPACE - chmod -R go-rwx $WORKSPACE/xci/scripts/vm -fi - -# skip the deployment if the scenario is not supported on this distro -OPNFV_SCENARIO_REQUIREMENTS=$WORKSPACE/xci/opnfv-scenario-requirements.yml -if ! sed -n "/^- scenario: $DEPLOY_SCENARIO$/,/^$/p" $OPNFV_SCENARIO_REQUIREMENTS | grep -q $DISTRO; then - echo "# SKIPPED: Scenario $DEPLOY_SCENARIO is NOT supported on $DISTRO" - exit 0 -fi - -ssh -F $HOME/.ssh/${DISTRO}-xci-vm-config ${DISTRO}_xci_vm "cd releng-xci && ./xci_test.sh" diff --git a/jjb/xci/xci-start-new-vm.sh b/jjb/xci/xci-start-new-vm.sh deleted file mode 100755 index 79b6a785a..000000000 --- a/jjb/xci/xci-start-new-vm.sh +++ /dev/null @@ -1,93 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2018 SUSE and others. -# 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 -############################################################################## - -#---------------------------------------------------------------------- -# This script is used by CI and executed by Jenkins jobs. -# You are not supposed to use this script manually if you don't know -# what you are doing. -#---------------------------------------------------------------------- - -# ensure GERRIT_TOPIC is set -GERRIT_TOPIC="${GERRIT_TOPIC:-''}" - -# skip the deployment if the patch doesn't impact the deployment -if [[ "$GERRIT_TOPIC" =~ 'skip-verify' ]]; then - echo "Skipping the deployment!" - exit 0 -fi - -# if the scenario is external, we need to wipe WORKSPACE to place releng-xci there since -# the project where the scenario is coming from is cloned and the patch checked out to the -# xci/scenarios/$DEPLOY_SCENARIO to be synched on clean VM -# apart from that, we need releng-xci stuff in WORKSPACE for things to function correctly on Jenkins. -# if the change is coming to releng-xci, we don't need to do anything since the patch is checked -# out to the WORKSPACE anyways -if [[ $GERRIT_PROJECT != "releng-xci" ]]; then - cd $HOME && /bin/rm -rf $WORKSPACE - git clone https://gerrit.opnfv.org/gerrit/releng-xci $WORKSPACE && cd $WORKSPACE - chmod -R go-rwx $WORKSPACE/xci/scripts/vm -fi - -# skip the deployment if the scenario is not supported on this distro -OPNFV_SCENARIO_REQUIREMENTS=$WORKSPACE/xci/opnfv-scenario-requirements.yml -if ! sed -n "/^- scenario: $DEPLOY_SCENARIO$/,/^$/p" $OPNFV_SCENARIO_REQUIREMENTS | grep -q $DISTRO; then - echo "# SKIPPED: Scenario $DEPLOY_SCENARIO is NOT supported on $DISTRO" - exit 0 -fi - -cd $WORKSPACE - -# The start-new-vm.sh script will copy the entire releng-xci directory -# so lets prepare the test script now so it can be copied by the script. -# Please do not move it elsewhere or you would have to move it to the VM -# yourself. -cat > xci_test.sh<<EOF -#!/bin/bash -set -o pipefail -export DISTRO=$DISTRO -export DEPLOY_SCENARIO=$DEPLOY_SCENARIO -export FUNCTEST_MODE=$FUNCTEST_MODE -export FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME -export XCI_FLAVOR=$XCI_FLAVOR -export CORE_OPENSTACK_INSTALL=true -export BIFROST_USE_PREBUILT_IMAGES=true -export CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES -export OPNFV_RELENG_DEV_PATH=/home/devuser/releng-xci/ -export INSTALLER_TYPE=$INSTALLER_TYPE -export GIT_BASE=$GIT_BASE -export JENKINS_HOME=$JENKINS_HOME -export CI_LOOP=$CI_LOOP -export BUILD_TAG=$BUILD_TAG -export NODE_NAME=$NODE_NAME - -if [[ $GERRIT_PROJECT != "releng-xci" ]]; then - export XCI_ANSIBLE_PARAMS="-e @/home/devuser/releng-xci/scenario_overrides.yml" -fi - -cd xci -./xci-deploy.sh | ts -EOF - -if [[ $GERRIT_PROJECT != "releng-xci" ]]; then - cat > scenario_overrides.yml <<-EOF ---- -xci_scenarios_overrides: - - scenario: $DEPLOY_SCENARIO - version: $GERRIT_PATCHSET_REVISION - refspec: $GERRIT_REFSPEC -EOF -fi - -chmod a+x xci_test.sh - -export XCI_BUILD_CLEAN_VM_OS=false -export XCI_UPDATE_CLEAN_VM_OS=true - -./xci/scripts/vm/start-new-vm.sh $DISTRO diff --git a/jjb/xci/xci-verify-jobs.yaml b/jjb/xci/xci-verify-jobs.yaml deleted file mode 100644 index 799ef6e96..000000000 --- a/jjb/xci/xci-verify-jobs.yaml +++ /dev/null @@ -1,327 +0,0 @@ ---- -- project: - name: 'opnfv-xci-verify' - - project: releng-xci - # ------------------------------- - # branches - # ------------------------------- - stream: - - master: - branch: '{stream}' - # ------------------------------- - # distros - # ------------------------------- - distro: - - ubuntu: - disabled: false - successful: false - failed: false - unstable: false - notbuilt: false - - centos: - disabled: true - successful: true - failed: true - unstable: true - notbuilt: true - - opensuse: - disabled: false - successful: true - failed: true - unstable: true - notbuilt: true - # ------------------------------- - # type - # ------------------------------- - type: - - virtual - # ------------------------------- - # patch verification phases - # ------------------------------- - phase: - - 'deploy' - - 'healthcheck' - # ------------------------------- - # jobs - # ------------------------------- - jobs: - - 'xci-verify-{distro}-{type}-{stream}' - - 'xci-verify-{distro}-{phase}-{type}-{stream}' -# ------------------------------- -# job templates -# ------------------------------- -- job-template: - name: 'xci-verify-{distro}-{type}-{stream}' - - project-type: multijob - - disabled: '{obj:disabled}' - - concurrent: true - - properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - blocking-jobs: - - 'xci-verify-{distro}-.*' - - 'xci-merge-{distro}-.*' - - 'xci-os-.*' - - 'xci-k8-.*' - - 'openstack-bifrost-verify-{distro}-.*' - - 'xci-osa-verify-{distro}-.*' - - 'xci-osa-periodic-{distro}-.*' - blocking-level: 'NODE' - - throttle: - max-per-node: 2 - max-total: 10 - categories: - - xci-verify-virtual - option: category - - wrappers: - - ssh-agent-wrapper - - build-timeout: - timeout: 240 - - fix-workspace-permissions - - scm: - - git-scm-gerrit - - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event: - exclude-drafts: 'false' - exclude-trivial-rebase: 'false' - exclude-no-code-change: 'true' - - draft-published-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: 'releng-xci' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - disable-strict-forbidden-file-verification: 'false' - forbidden-file-paths: - - compare-type: ANT - pattern: 'xci/scripts/vm/**' - - compare-type: ANT - pattern: 'docs/**' - - compare-type: ANT - pattern: 'upstream/**' - - project-compare-type: 'REG_EXP' - project-pattern: 'sfc|sdnvpn|releng-xci-scenarios' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - disable-strict-forbidden-file-verification: 'true' - file-paths: - - compare-type: ANT - pattern: 'scenarios/**' - readable-message: true - custom-url: '* $JOB_NAME $BUILD_URL' - skip-vote: - successful: '{obj:successful}' - failed: '{obj:failed}' - unstable: '{obj:unstable}' - notbuilt: '{obj:notbuilt}' - - parameters: - - project-parameter: - project: $GERRIT_PROJECT - branch: '{branch}' - - label: - name: SLAVE_LABEL - default: 'xci-virtual' - all-nodes: false - node-eligibility: 'ignore-offline' - - string: - name: DISTRO - default: '{distro}' - - string: - name: CLEAN_DIB_IMAGES - default: 'true' - - string: - name: CI_LOOP - default: 'verify' - - string: - name: FUNCTEST_VERSION - default: 'hunter' - - string: - name: FUNCTEST_MODE - default: 'tier' - - string: - name: FUNCTEST_SUITE_NAME - default: 'healthcheck' - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - builders: - - 'xci-verify-clean-vm-macro' - - 'xci-verify-set-scenario-macro' - - inject: - properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties" - - description-setter: - description: "Scenario: $DEPLOY_SCENARIO | Node: $NODE_NAME" - - multijob: - name: deploy - condition: SUCCESSFUL - projects: - - name: 'xci-verify-{distro}-deploy-{type}-{stream}' - current-parameters: true - predefined-parameters: | - DISTRO={distro} - CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES - GERRIT_PROJECT=$GERRIT_PROJECT - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - CI_LOOP=$CI_LOOP - FUNCTEST_VERSION=$FUNCTEST_VERSION - FUNCTEST_MODE=$FUNCTEST_MODE - FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME - node-parameters: true - kill-phase-on: FAILURE - abort-all-job: true - - multijob: - name: healthcheck - condition: SUCCESSFUL - projects: - - name: 'xci-verify-{distro}-healthcheck-{type}-{stream}' - current-parameters: true - predefined-parameters: | - DISTRO={distro} - CLEAN_DIB_IMAGES=$CLEAN_DIB_IMAGES - GERRIT_PROJECT=$GERRIT_PROJECT - GERRIT_BRANCH=$GERRIT_BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - CI_LOOP=$CI_LOOP - FUNCTEST_VERSION=$FUNCTEST_VERSION - FUNCTEST_MODE=$FUNCTEST_MODE - FUNCTEST_SUITE_NAME=$FUNCTEST_SUITE_NAME - node-parameters: true - kill-phase-on: NEVER - abort-all-job: true - - publishers: - - postbuildscript: - builders: - - role: BOTH - build-on: - - ABORTED - - NOT_BUILT - - SUCCESS - - UNSTABLE - build-steps: - - shell: !include-raw: ./xci-cleanup.sh - mark-unstable-if-failed: true - - -- job-template: - name: 'xci-verify-{distro}-{phase}-{type}-{stream}' - - disabled: false - - concurrent: true - - properties: - - logrotate-default - - build-blocker: - use-build-blocker: true - blocking-jobs: - - '.*-bifrost-verify-.*' - - '.*-bifrost-periodic-.*' - - 'osa-verify-.*' - - 'osa-periodic-.*' - blocking-level: 'NODE' - - parameters: - - string: - name: PROJECT - default: $GERRIT_PROJECT - - string: - name: DISTRO - default: 'ubuntu' - - string: - name: CI_LOOP - default: 'verify' - - string: - name: FUNCTEST_VERSION - default: 'hunter' - - string: - name: FUNCTEST_MODE - default: 'tier' - - string: - name: FUNCTEST_SUITE_NAME - default: 'healthcheck' - - string: - name: XCI_FLAVOR - default: 'mini' - - string: - name: CLEAN_DIB_IMAGES - default: 'true' - - string: - name: OPNFV_RELENG_DEV_PATH - default: $WORKSPACE/ - - string: - name: GIT_BASE - default: https://gerrit.opnfv.org/gerrit/$PROJECT - description: 'Git URL to use on this Jenkins Slave' - - wrappers: - - inject: - properties-file: "/tmp/$GERRIT_CHANGE_NUMBER/$DISTRO/scenario.properties" - - ssh-agent-wrapper - - build-timeout: - timeout: 240 - - fix-workspace-permissions - - scm: - - git-scm-gerrit - - builders: - - description-setter: - description: "Scenario: $DEPLOY_SCENARIO | Node: $NODE_NAME" - - 'xci-verify-{phase}-macro' - -# ------------------------------- -# builder macros -# ------------------------------- -- builder: - name: 'xci-verify-clean-vm-macro' - builders: - - shell: - !include-raw: ./xci-cleanup.sh - -- builder: - name: 'xci-verify-set-scenario-macro' - builders: - - shell: - !include-raw: ./xci-set-scenario.sh - -- builder: - name: 'xci-verify-deploy-macro' - builders: - - shell: - !include-raw: ./xci-start-new-vm.sh - - - shell: - !include-raw: ./xci-start-deployment.sh - -- builder: - name: 'xci-verify-healthcheck-macro' - builders: - - shell: - !include-raw: ./xci-run-functest.sh diff --git a/jjb/xci/xci-views.yaml b/jjb/xci/xci-views.yaml deleted file mode 100644 index ee1e53a59..000000000 --- a/jjb/xci/xci-views.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- project: - name: xci-view - views: - - project-view - project-name: xci diff --git a/releases/2023.1/functest.yaml b/releases/2023.1/functest.yaml new file mode 100644 index 000000000..b48123f96 --- /dev/null +++ b/releases/2023.1/functest.yaml @@ -0,0 +1,9 @@ +--- +project: functest +project-type: testing +release-model: stable + +branches: + - name: stable/2023.1 + location: + functest-xtesting: 781fc313c1c59018edb892ff0423963191781592 diff --git a/releases/2023.2/functest.yaml b/releases/2023.2/functest.yaml new file mode 100644 index 000000000..372326435 --- /dev/null +++ b/releases/2023.2/functest.yaml @@ -0,0 +1,9 @@ +--- +project: functest +project-type: testing +release-model: stable + +branches: + - name: stable/2023.2 + location: + functest-xtesting: 0d6bb30968d1092caeffee4159feccf6319ff565 diff --git a/releases/jerma/opnfvdocs.yaml b/releases/jerma/opnfvdocs.yaml index 665be34d1..a5d0c1447 100644 --- a/releases/jerma/opnfvdocs.yaml +++ b/releases/jerma/opnfvdocs.yaml @@ -3,6 +3,11 @@ project: opnfvdocs project-type: infra release-model: stable +releases: + - version: opnfv-10.0.0 + location: + opnfvdocs: 8ae4bb381bef8ad9f71bd0f46323799a90bb7deb + branches: - name: stable/jerma location: diff --git a/jjb/releng/releng-release-create-venv.sh b/releases/kali/airship.yaml index 0200376a7..6eb5f6ffd 100644 --- a/jjb/releng/releng-release-create-venv.sh +++ b/releases/kali/airship.yaml @@ -1,19 +1,19 @@ -#!/bin/bash # SPDX-License-Identifier: Apache-2.0 ############################################################################## -# Copyright (c) 2018 The Linux Foundation and others. +# Copyright (c) 2020 The Linux Foundation and others. # 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 ############################################################################## -set -e -o pipefail -echo "---> Create virtualenv" +--- +project: airship +project-type: installer +release-model: stable -sudo -H pip install virtualenv -virtualenv -p /usr/bin/python3 $WORKSPACE/venv +branches: + - name: stable/kali + location: + airship: 88723e1bb827b0efa57f47cb12d0ff1c1fe7802c -# shellcheck source=$WORKSPACE/venv/bin/activate disable=SC1091 -source $WORKSPACE/venv/bin/activate -pip install --upgrade pip -pip install -r releases/scripts/requirements.txt +release-notes: http://docs.opnfv.org/en/stable-kali/submodules/airship/docs/release/release-notes/release-notes.html diff --git a/releases/kali/barometer.yaml b/releases/kali/barometer.yaml new file mode 100644 index 000000000..a916ce16a --- /dev/null +++ b/releases/kali/barometer.yaml @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2021 The Linux Foundation and others. +# 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 +############################################################################## +--- +project: barometer +project-type: feature +release-model: stable + +branches: + - name: stable/kali + location: + barometer: 08fd79b551dde788da6974705df9c9d3e8de01d5 diff --git a/utils/build-server-ansible/inventory.ini b/releases/kali/cirv.yaml index 115b1306e..3a5fe6240 100644 --- a/utils/build-server-ansible/inventory.ini +++ b/releases/kali/cirv.yaml @@ -1,8 +1,17 @@ -############################################################################# -# Copyright (c) 2016 The Linux Foundation and others. +# SPDX-License-Identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2020 The Linux Foundation and others. # 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 ############################################################################## -localhost ansible_connection=local +--- +project: cirv +project-type: testing +release-model: stable + +branches: + - name: stable/kali + location: + cirv-sdv: 3daf232ec65cb42c9c4a05bed1f185fe1aa4bd0b diff --git a/releases/kali/kuberef.yaml b/releases/kali/kuberef.yaml new file mode 100644 index 000000000..e4c826e85 --- /dev/null +++ b/releases/kali/kuberef.yaml @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2020 The Linux Foundation and others. +# 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 +############################################################################## +--- +project: kuberef +project-type: installer +release-model: stable + +branches: + - name: stable/kali + location: + kuberef: e917625c424d33e892fa253cdd02da926b843325 diff --git a/releases/kali/vineperf.yaml b/releases/kali/vineperf.yaml new file mode 100644 index 000000000..2dcfe5cc9 --- /dev/null +++ b/releases/kali/vineperf.yaml @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2020 The Linux Foundation and others. +# 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 +############################################################################## +--- +project: vineperf +project-type: testing +release-model: stable + +branches: + - name: stable/kali + location: + vineperf: 53bfad9e49e8d0ea585e92d6efda6c7a2fd779c1 diff --git a/releases/lakelse/barometer.yaml b/releases/lakelse/barometer.yaml new file mode 100644 index 000000000..f85809a21 --- /dev/null +++ b/releases/lakelse/barometer.yaml @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2021 The Linux Foundation and others. +# 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 +############################################################################## +--- +project: barometer +project-type: feature +release-model: stable + +branches: + - name: stable/lakelse + location: + barometer: 52e3a8bc19d86205e81442acfa9512006207c023 diff --git a/releases/lakelse/cirv.yaml b/releases/lakelse/cirv.yaml new file mode 100644 index 000000000..f91d6591f --- /dev/null +++ b/releases/lakelse/cirv.yaml @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2020 The Linux Foundation and others. +# 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 +############################################################################## +--- +project: cirv +project-type: testing +release-model: stable + +branches: + - name: stable/lakelse + location: + cirv-sdv: 31fb310d3fd1c9c1f12cfe0c654870e24f5efab6 diff --git a/releases/lakelse/kuberef.yaml b/releases/lakelse/kuberef.yaml new file mode 100644 index 000000000..f5075d1ac --- /dev/null +++ b/releases/lakelse/kuberef.yaml @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2020 The Linux Foundation and others. +# 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 +############################################################################## +--- +project: kuberef +project-type: installer +release-model: stable + +branches: + - name: stable/lakelse + location: + kuberef: f773a3c4c6f0f3f749c417eb909b0d153a613b17 diff --git a/releases/lakelse/opnfvdocs.yaml b/releases/lakelse/opnfvdocs.yaml new file mode 100644 index 000000000..519c31dc2 --- /dev/null +++ b/releases/lakelse/opnfvdocs.yaml @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2020 The Linux Foundation and others. +# 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 +############################################################################## +--- +project: opnfvdocs +project-type: infra +release-model: stable + +branches: + - name: stable/lakelse + location: + opnfvdocs: 5af53a3b05353539a072a41a3493c579c63f7b3d diff --git a/releases/lakelse/vineperf.yaml b/releases/lakelse/vineperf.yaml new file mode 100644 index 000000000..199fe02ae --- /dev/null +++ b/releases/lakelse/vineperf.yaml @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2020 The Linux Foundation and others. +# 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 +############################################################################## +--- +project: vineperf +project-type: testing +release-model: stable + +branches: + - name: stable/lakelse + location: + vineperf: 2fcc501a8cf9f5a7dbcedf48946e225dfc485ff8 diff --git a/releases/moselle/barometer.yaml b/releases/moselle/barometer.yaml new file mode 100644 index 000000000..c636486fc --- /dev/null +++ b/releases/moselle/barometer.yaml @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2021 The Linux Foundation and others. +# 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 +############################################################################## +--- +project: barometer +project-type: feature +release-model: stable + +branches: + - name: stable/moselle + location: + barometer: 31d3f2708010dc36377958b6fefb0459301e50af diff --git a/releases/moselle/kuberef.yaml b/releases/moselle/kuberef.yaml new file mode 100644 index 000000000..f483bc90f --- /dev/null +++ b/releases/moselle/kuberef.yaml @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2020 The Linux Foundation and others. +# 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 +############################################################################## +--- +project: kuberef +project-type: installer +release-model: stable + +branches: + - name: stable/moselle + location: + kuberef: f845220cd17f89c8e1c68aecb3f0c7e82a56aa03 diff --git a/releases/moselle/opnfvdocs.yaml b/releases/moselle/opnfvdocs.yaml new file mode 100644 index 000000000..f9be3d357 --- /dev/null +++ b/releases/moselle/opnfvdocs.yaml @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2020 The Linux Foundation and others. +# 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 +############################################################################## +--- +project: opnfvdocs +project-type: infra +release-model: stable + +branches: + - name: stable/moselle + location: + opnfvdocs: 79b31e661c5676f5f21acb7b2870bb0ed8d0e301 diff --git a/utils/build-server-ansible/vars/docker-compose-Ubuntu.yml b/releases/moselle/thoth.yaml index f985b6a4d..23a3de11a 100644 --- a/utils/build-server-ansible/vars/docker-compose-Ubuntu.yml +++ b/releases/moselle/thoth.yaml @@ -1,12 +1,17 @@ -############################################################################# -# Copyright (c) 2016 The Linux Foundation and others. +# SPDX-License-Identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2021 The Linux Foundation and others. # 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 -############################################################################# +############################################################################## --- -- name: Ensure docker compose is installed - apt: - name: 'docker-compose' - state: present +project: thoth +project-type: feature +release-model: stable + +branches: + - name: stable/moselle + location: + thoth: 9e9df400ba7f9259a38484d232fe11e08edb4da4 diff --git a/releases/moselle/vineperf.yaml b/releases/moselle/vineperf.yaml new file mode 100644 index 000000000..709352926 --- /dev/null +++ b/releases/moselle/vineperf.yaml @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2020 The Linux Foundation and others. +# 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 +############################################################################## +--- +project: vineperf +project-type: testing +release-model: stable + +branches: + - name: stable/moselle + location: + vineperf: aa75d7b0b5041aafa9a34bc95600db5b01a5791e diff --git a/releases/nile/barometer.yaml b/releases/nile/barometer.yaml new file mode 100644 index 000000000..b607a49ec --- /dev/null +++ b/releases/nile/barometer.yaml @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2021 The Linux Foundation and others. +# 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 +############################################################################## +--- +project: barometer +project-type: feature +release-model: stable + +branches: + - name: stable/nile + location: + barometer: 41195d4c2c3418e8c2daa44c792406be2fc54964 diff --git a/releases/nile/opnfvdocs.yaml b/releases/nile/opnfvdocs.yaml new file mode 100644 index 000000000..0b427ec32 --- /dev/null +++ b/releases/nile/opnfvdocs.yaml @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2022 The Linux Foundation and others. +# 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 +############################################################################## +--- +project: opnfvdocs +project-type: infra +release-model: stable + +branches: + - name: stable/nile + location: + opnfvdocs: 397bbce7edc03354802dacd1524f5b306979ebd3 diff --git a/utils/build-server-ansible/vars/docker-compose-CentOS.yml b/releases/nile/thoth.yaml index fc4bcba7e..59d8c9e77 100644 --- a/utils/build-server-ansible/vars/docker-compose-CentOS.yml +++ b/releases/nile/thoth.yaml @@ -1,12 +1,17 @@ -############################################################################# -# Copyright (c) 2016 The Linux Foundation and others. +# SPDX-License-Identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2021 The Linux Foundation and others. # 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 ############################################################################## --- -- name: Ensure docker compose is installed. - yum: - name: 'docker-compose' - state: present +project: thoth +project-type: feature +release-model: stable + +branches: + - name: stable/nile + location: + thoth: 3b4fa67222bd3e33cb921869395b46193d353bb1 diff --git a/releases/nile/vineperf.yaml b/releases/nile/vineperf.yaml new file mode 100644 index 000000000..88252799c --- /dev/null +++ b/releases/nile/vineperf.yaml @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2020 The Linux Foundation and others. +# 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 +############################################################################## +--- +project: vineperf +project-type: testing +release-model: stable + +branches: + - name: stable/nile + location: + vineperf: e0b5af5ab0a36bb63c880b9137dd02e26e4c94cc diff --git a/releases/orinoco/barometer.yaml b/releases/orinoco/barometer.yaml new file mode 100644 index 000000000..897e8dba0 --- /dev/null +++ b/releases/orinoco/barometer.yaml @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2021 The Linux Foundation and others. +# 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 +############################################################################## +--- +project: barometer +project-type: feature +release-model: stable + +branches: + - name: stable/orinoco + location: + barometer: 41195d4c2c3418e8c2daa44c792406be2fc54964 diff --git a/releases/orinoco/kuberef.yaml b/releases/orinoco/kuberef.yaml new file mode 100644 index 000000000..dfbffa0ce --- /dev/null +++ b/releases/orinoco/kuberef.yaml @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2020 The Linux Foundation and others. +# 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 +############################################################################## +--- +project: kuberef +project-type: installer +release-model: stable + +branches: + - name: stable/orinoco + location: + kuberef: 486015325b01283f31595abd8fbdbf93530f6a5a diff --git a/releases/orinoco/opnfvdocs.yaml b/releases/orinoco/opnfvdocs.yaml new file mode 100644 index 000000000..e05c3492b --- /dev/null +++ b/releases/orinoco/opnfvdocs.yaml @@ -0,0 +1,9 @@ +--- +project: opnfvdocs +project-type: infra +release-model: stable + +branches: + - name: stable/orinoco + location: + opnfvdocs: fc7cdf4af32a4ea6ffb0e1719650d8bb4e460185 diff --git a/releases/orinoco/thoth.yaml b/releases/orinoco/thoth.yaml new file mode 100644 index 000000000..f19c443c1 --- /dev/null +++ b/releases/orinoco/thoth.yaml @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2021 The Linux Foundation and others. +# 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 +############################################################################## +--- +project: thoth +project-type: feature +release-model: stable + +branches: + - name: stable/orinoco + location: + thoth: 77a6ce27efa02f72568950e37aed3853f05ecd4b diff --git a/releases/schema.yaml b/releases/schema.yaml index c3838760a..f84c87093 100644 --- a/releases/schema.yaml +++ b/releases/schema.yaml @@ -46,7 +46,7 @@ properties: properties: name: type: 'string' - pattern: '^stable/[a-z]+$' + pattern: '^stable/[a-z0-9.]+$' location: type: 'object' required: ['name', 'location'] diff --git a/releases/scripts/release-status.sh b/releases/scripts/release-status.sh index 6790100a7..1fb4f70e2 100755 --- a/releases/scripts/release-status.sh +++ b/releases/scripts/release-status.sh @@ -15,7 +15,7 @@ RELEASE="${RELEASE:-fraser}" [ -a repos.txt ] && rm repos.txt for project in releases/$RELEASE/*; do - python releases/scripts/repos.py -n -f $project >> repos.txt + python3 releases/scripts/repos.py -n -f $project >> repos.txt done while read -r repo diff --git a/releases/scripts/requirements.txt b/releases/scripts/requirements.txt deleted file mode 100644 index 5a7d216e9..000000000 --- a/releases/scripts/requirements.txt +++ /dev/null @@ -1,5 +0,0 @@ -pygerrit2 < 2.1.0 -PyYAML < 4.0 -jsonschema < 2.7.0 -rfc3987 -ruamel.yaml diff --git a/releases/v1.21/functest.yaml b/releases/v1.21/functest.yaml new file mode 100644 index 000000000..44b630cdc --- /dev/null +++ b/releases/v1.21/functest.yaml @@ -0,0 +1,9 @@ +--- +project: functest +project-type: testing +release-model: stable + +branches: + - name: stable/v1.21 + location: + functest-kubernetes: 3a58b1019c0f0a3e4ec3ce8be16ffd9a15edf518 diff --git a/releases/v1.22/functest.yaml b/releases/v1.22/functest.yaml new file mode 100644 index 000000000..c2683e0e5 --- /dev/null +++ b/releases/v1.22/functest.yaml @@ -0,0 +1,9 @@ +--- +project: functest +project-type: testing +release-model: stable + +branches: + - name: stable/v1.22 + location: + functest-kubernetes: 56d89152af91b73ee32d74062e7c366ca7d72e47 diff --git a/releases/v1.23/functest.yaml b/releases/v1.23/functest.yaml new file mode 100644 index 000000000..9acccb215 --- /dev/null +++ b/releases/v1.23/functest.yaml @@ -0,0 +1,9 @@ +--- +project: functest +project-type: testing +release-model: stable + +branches: + - name: stable/v1.23 + location: + functest-kubernetes: e3c09959d8639b6e798759bb74e98a752b98b7f4 diff --git a/releases/v1.24/functest.yaml b/releases/v1.24/functest.yaml new file mode 100644 index 000000000..5e35ec315 --- /dev/null +++ b/releases/v1.24/functest.yaml @@ -0,0 +1,9 @@ +--- +project: functest +project-type: testing +release-model: stable + +branches: + - name: stable/v1.24 + location: + functest-kubernetes: 57d0741942c23ab66d38b7269e68694b92de9646 diff --git a/releases/v1.25/functest.yaml b/releases/v1.25/functest.yaml new file mode 100644 index 000000000..f746d968e --- /dev/null +++ b/releases/v1.25/functest.yaml @@ -0,0 +1,9 @@ +--- +project: functest +project-type: testing +release-model: stable + +branches: + - name: stable/v1.25 + location: + functest-kubernetes: 7d1b01dafdfcd65bea716b61a6036a972dcf395b diff --git a/releases/v1.26/functest.yaml b/releases/v1.26/functest.yaml new file mode 100644 index 000000000..37ae6037c --- /dev/null +++ b/releases/v1.26/functest.yaml @@ -0,0 +1,9 @@ +--- +project: functest +project-type: testing +release-model: stable + +branches: + - name: stable/v1.26 + location: + functest-kubernetes: f6eba4b5b93b994a6773867fdb123c2c34a56415 diff --git a/releases/v1.27/functest.yaml b/releases/v1.27/functest.yaml new file mode 100644 index 000000000..ae709534a --- /dev/null +++ b/releases/v1.27/functest.yaml @@ -0,0 +1,9 @@ +--- +project: functest +project-type: testing +release-model: stable + +branches: + - name: stable/v1.27 + location: + functest-kubernetes: e95b4b94abc1ad55144b07b137e2c53d045bd649 diff --git a/releases/v1.28/functest.yaml b/releases/v1.28/functest.yaml new file mode 100644 index 000000000..a4cc15ccf --- /dev/null +++ b/releases/v1.28/functest.yaml @@ -0,0 +1,9 @@ +--- +project: functest +project-type: testing +release-model: stable + +branches: + - name: stable/v1.28 + location: + functest-kubernetes: e95b4b94abc1ad55144b07b137e2c53d045bd649 diff --git a/releases/v1.29/functest.yaml b/releases/v1.29/functest.yaml new file mode 100644 index 000000000..dcc78ed85 --- /dev/null +++ b/releases/v1.29/functest.yaml @@ -0,0 +1,9 @@ +--- +project: functest +project-type: testing +release-model: stable + +branches: + - name: stable/v1.29 + location: + functest-kubernetes: 9cb990f8f874f395fe6aa7f045fa9dcc3fdb35c4 diff --git a/releases/wallaby/functest.yaml b/releases/wallaby/functest.yaml new file mode 100644 index 000000000..19f760798 --- /dev/null +++ b/releases/wallaby/functest.yaml @@ -0,0 +1,12 @@ +--- +project: functest +project-type: testing +release-model: stable + +branches: + - name: stable/wallaby + location: + functest: be8185f6345d499c80c71bf0dbbd1402069e1c81 + - name: stable/wallaby + location: + functest-xtesting: ecedaa857ff821cad5dc9fa423d1a596ea255efe diff --git a/releases/xena/functest.yaml b/releases/xena/functest.yaml new file mode 100644 index 000000000..cdd9904d3 --- /dev/null +++ b/releases/xena/functest.yaml @@ -0,0 +1,12 @@ +--- +project: functest +project-type: testing +release-model: stable + +branches: + - name: stable/xena + location: + functest: 1d976335e832e4b48fb7bd2cda3665c28dfabe86 + - name: stable/xena + location: + functest-xtesting: f32ab02c42a775e57ba34153d2d401bee34e88b8 diff --git a/releases/yoga/functest.yaml b/releases/yoga/functest.yaml new file mode 100644 index 000000000..406ecaaf7 --- /dev/null +++ b/releases/yoga/functest.yaml @@ -0,0 +1,12 @@ +--- +project: functest +project-type: testing +release-model: stable + +branches: + - name: stable/yoga + location: + functest: 95206bab447d0d707edc1623eca2e14ef3ce1b8a + - name: stable/yoga + location: + functest-xtesting: 33a884eae2153a2ea91b4bce79b06028e783e8bf diff --git a/releases/zed/functest.yaml b/releases/zed/functest.yaml new file mode 100644 index 000000000..0efa75ffd --- /dev/null +++ b/releases/zed/functest.yaml @@ -0,0 +1,12 @@ +--- +project: functest +project-type: testing +release-model: stable + +branches: + - name: stable/zed + location: + functest: 55879c22390bd24e696761d4c04fea34ed5a1e87 + - name: stable/zed + location: + functest-xtesting: 25c7404b8d2a8f36170f6067c97915ddb6128bfd diff --git a/test-requirements.txt b/test-requirements.txt new file mode 100644 index 000000000..ea58b2475 --- /dev/null +++ b/test-requirements.txt @@ -0,0 +1,3 @@ +sphinxcontrib-httpdomain +jenkins-job-builder +piccolo-theme @@ -4,31 +4,25 @@ # and then run "tox" from this directory. [tox] -envlist = jjb,docs,docs-linkcheck +envlist = jjb,docs skipsdist = True [testenv] +basepython = python3.10 usedevelop = False -setenv= - HOME = {envtmpdir} - PYTHONPATH = {toxinidir} +deps = + -chttps://opendev.org/openstack/requirements/raw/branch/stable/zed/upper-constraints.txt + -cupper-constraints.txt + -r{toxinidir}/test-requirements.txt [testenv:jjb] -basepython = python3 -deps = - jenkins-job-builder==2.5.0 commands= - jenkins-jobs test -o job_output -r {posargs:"jjb/"} + jenkins-jobs test -o {envtmpdir}/job_output -r {toxinidir}/jjb [testenv:docs] -basepython = python3 -deps = -r{toxinidir}/docs/requirements.txt commands = - sphinx-build -b html -n -d {envtmpdir}/doctrees ./docs {toxinidir}/docs/_build/html - echo "Generated docs available in {toxinidir}/docs/_build/html" -whitelist_externals = echo + sphinx-build -b html -n -d {envtmpdir}/doctrees ./docs {toxinidir}/docs/_build/html [testenv:docs-linkcheck] -basepython = python3 -deps = -r{toxinidir}/docs/requirements.txt -commands = sphinx-build -b linkcheck -d {envtmpdir}/doctrees ./docs {toxinidir}/docs/_build/linkcheck +commands = + sphinx-build -b linkcheck -d {envtmpdir}/doctrees ./docs {toxinidir}/docs/_build/linkcheck diff --git a/upper-constraints.txt b/upper-constraints.txt new file mode 100644 index 000000000..b6d67807d --- /dev/null +++ b/upper-constraints.txt @@ -0,0 +1,7 @@ +sphinxcontrib-needs===0.7.9 +sphinxcontrib.plantuml===0.24 +sphinx_toolbox==3.2.0 +sphinxcontrib.nwdiag===2.0.0 +sphinxcontrib-swaggerdoc===0.1.7 +sphinx-rtd-theme===1.0.0 +jenkins-job-builder===4.3.0 diff --git a/utils/build-server-ansible/main.yml b/utils/build-server-ansible/main.yml deleted file mode 100644 index a4d3b08cb..000000000 --- a/utils/build-server-ansible/main.yml +++ /dev/null @@ -1,46 +0,0 @@ -############################################################################ -# Copyright (c) 2016 The Linux Foundation and others. -# 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 -############################################################################# ---- -- hosts: "localhost" - become: "True" - tasks: - - debug: - msg: "{{ inventory_hostname }} is {{ ansible_distribution }}" - - include_vars: vars/defaults.yml - - include: vars/CentOS.yml - when: ansible_distribution == "CentOS" - - include: vars/Ubuntu.yml - when: ansible_distribution == "Ubuntu" - - name: Install Docker. - package: name={{ docker_package }} state={{ docker_package_state }} - - name: Ensure Docker is started and enabled at boot. - service: - name: docker - state: started - enabled: "yes" - - name: install gsutil - pip: - name: gsutil - state: present - - name: install tox - pip: - name: tox - state: present - - name: install yamllint - pip: - name: yamllint - state: present - - include: vars/docker-compose-CentOS.yml - when: ansible_distribution == "CentOS" - - include: vars/docker-compose-Ubuntu.yml - when: ansible_distribution == "Ubuntu" - - name: Install manifest-tool - get_url: - url: '{{ manifest_tool_url }}/{{ manifest_tool_version }}/manifest-tool-linux-amd64' - dest: '{{ manifest_tool_bin_dir }}/manifest-tool' - mode: '755' diff --git a/utils/build-server-ansible/vars/CentOS.yml b/utils/build-server-ansible/vars/CentOS.yml deleted file mode 100644 index 50839be70..000000000 --- a/utils/build-server-ansible/vars/CentOS.yml +++ /dev/null @@ -1,77 +0,0 @@ -############################################################################ -# Copyright (c) 2016 The Linux Foundation and others. -# 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 -############################################################################ ---- -- name: Ensure old versions of Docker are not installed. - package: - name: '{{ item }}' - state: absent - with_items: - - docker - - docker-common - - docker-engine - -- name: Add Docker GPG key. - rpm_key: - key: https://download.docker.com/linux/centos/gpg - state: present - -- name: Ensure epel is installed. - yum: - name: epel-release - state: present -- name: Ensure depdencies are installed. - yum: - name: "{{ item }}" - state: present - with_items: - - bc - - collectd - - doxygen - - facter - - jq - - kernel-headers - - libpcap-devel - - libvirt-devel - - net-tools - - numactl-devel - - openssl-devel - - python-devel - - python-pip - - python-six - - python-sphinx - - rpm-build - - sysstat - - xmlstarlet - - zlib-devel - -- name: install the 'Development tools' package group - yum: - name: "@Development tools" - state: present - -- name: Add Docker repository. - get_url: - url: "{{ docker_yum_repo_url }}" - dest: '/etc/yum.repos.d/docker-ce.repo' - owner: root - group: root - mode: 0644 - -- name: Configure Docker Edge repo. - ini_file: - dest: '/etc/yum.repos.d/docker-ce.repo' - section: 'docker-ce-edge' - option: enabled - value: '{{ docker_yum_repo_enable_edge }}' - -- name: Configure Docker Test repo. - ini_file: - dest: '/etc/yum.repos.d/docker-ce.repo' - section: 'docker-ce-test' - option: enabled - value: '{{ docker_yum_repo_enable_test }}' diff --git a/utils/build-server-ansible/vars/Ubuntu.yml b/utils/build-server-ansible/vars/Ubuntu.yml deleted file mode 100644 index 2e3e3febf..000000000 --- a/utils/build-server-ansible/vars/Ubuntu.yml +++ /dev/null @@ -1,158 +0,0 @@ -############################################################################# -# Copyright (c) 2016 The Linux Foundation and others. -# 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 -############################################################################# ---- -- name: Ensure old versions of Docker are not installed. - package: - name: '{{ item }}' - state: absent - with_items: - - docker - - docker-engine - -- name: Ensure depdencies are installed. - apt: - name: "{{ item }}" - state: present - with_items: - - apt-transport-https - - ca-certificates - - git - - build-essential - - curl - - wget - - rpm - - fuseiso - - createrepo - - genisoimage - - libfuse-dev - - dh-autoreconf - - pkg-config - - zlib1g-dev - - libglib2.0-dev - - libpixman-1-dev - - python-virtualenv - - python-dev - - libffi-dev - - libssl-dev - - libxml2-dev - - libxslt1-dev - - bc - - qemu-kvm - - libvirt-bin - - ubuntu-vm-builder - - bridge-utils - - monit - - openjdk-8-jre-headless - - python-nose - - dirmngr - - collectd - - flex - - bison - - libnuma-dev - - shellcheck - - python-pip - - sysstat - - xmlstarlet - - facter - - jq - - python-tox - - collectd-dev - - python3 - - python3-dev - - libdpdk-dev - - dpdk-dev - - fakeroot - - devscripts - - debhelper - - dpkg-dev - - po-debconf - - dh-systemd - - dh-strip-nondeterminism - - autotools-dev - - libltdl-dev - - iptables-dev - - javahelper - - libatasmart-dev - - libcap-dev - - libcurl4-gnutls-dev - - libdbi0-dev - - libesmtp-dev - - libganglia1-dev - - libgcrypt11-dev - - libgps-dev - - libhiredis-dev - - libi2c-dev - - libldap2-dev - - liblua5.3-dev - - liblvm2-dev - - libmemcached-dev - - libmodbus-dev - - libmnl-dev - - libmosquitto-dev - - libmysqlclient-dev - - libnotify-dev - - libopenipmi-dev - - liboping-dev - - libow-dev - - libpcap0.8-dev - - libpcap-dev - - libperl-dev - - libpq-dev - - libprotobuf-c-dev - - libriemann-client-dev - - librdkafka-dev - - librabbitmq-dev - - librrd-dev - - libsensors4-dev - - libsigrok-dev - - libsnmp-dev - - libsnmp9-dev - - snmp - - snmp-mibs-downloader - - snmpd - - perl - - libtokyocabinet-dev - - libtokyotyrant-dev - - libudev-dev - - libupsclient-dev - - libvarnishapi-dev - - libvirt-dev - - libvirt-daemon - - libxen-dev - - libyajl-dev - - linux-libc-dev - - default-jdk - - protobuf-c-compiler - - openvswitch-switch - - libjpeg-dev - -- name: Add Docker apt key. - apt_key: - url: https://download.docker.com/linux/ubuntu/gpg - id: 9DC858229FC7DD38854AE2D88D81803C0EBFCD88 - state: present - register: add_repository_key - ignore_errors: true - -- name: Ensure curl is present (on older systems without SNI). - package: name=curl state=present - when: add_repository_key|failed - -- name: Add Docker apt key (alternative for older systems without SNI). - # yamllint disable rule:line-length - shell: "curl -sSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -" - # yamllint enable rule:line-length - args: - warn: "no" - when: add_repository_key|failed - -- name: Add Docker repository. - apt_repository: - repo: "{{ docker_apt_repository }}" - state: present - update_cache: "yes" diff --git a/utils/build-server-ansible/vars/defaults.yml b/utils/build-server-ansible/vars/defaults.yml deleted file mode 100644 index ff37c953c..000000000 --- a/utils/build-server-ansible/vars/defaults.yml +++ /dev/null @@ -1,27 +0,0 @@ -############################################################################# -# Copyright (c) 2016 The Linux Foundation and others. -# 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 -############################################################################# ---- -docker_package: "docker-ce" -docker_package_state: present - -# Used only for Debian/Ubuntu. Switch 'stable' to 'edge' if needed. -docker_apt_release_channel: stable -# yamllint disable rule:line-length -docker_apt_repository: "deb https://download.docker.com/linux/{{ ansible_distribution|lower }} {{ ansible_distribution_release }} {{ docker_apt_release_channel }}" -# yamllint enable rule:line-length - -# Used only for RedHat/CentOS. -# yamllint disable rule:line-length -docker_yum_repo_url: https://download.docker.com/linux/centos/docker-ce.repo -# yamllint enable rule:line-length -docker_yum_repo_enable_edge: 0 -docker_yum_repo_enable_test: 0 - -manifest_tool_version: 'v0.7.0' -manifest_tool_url: 'https://github.com/estesp/manifest-tool/releases/download' -manifest_tool_bin_dir: '/usr/local/bin' diff --git a/utils/retention_script.sh b/utils/retention_script.sh index b2177930b..3d0673ad0 100755 --- a/utils/retention_script.sh +++ b/utils/retention_script.sh @@ -15,10 +15,7 @@ # limitations under the License. ############################################################################## -PATH=$PATH:/usr/local/bin/ - -#These are the only projects that generate artifacts -for x in armband ovsnfv fuel apex compass4nfv +for x in airship apex armband compass4nfv fuel ovsnfv do echo "Looking at artifacts for project $x" |