- latest:
branch: master
slave: lf-virtual1
+ dependency: 3.13
+ - leguer:
+ branch: stable/leguer
+ slave: lf-virtual1
+ dependency: 3.12
- kali:
branch: stable/kali
slave: lf-virtual1
+ dependency: 3.11
- jerma:
branch: stable/jerma
slave: lf-virtual1
+ dependency: 3.10
- iruya:
branch: stable/iruya
slave: lf-virtual1
+ dependency: 3.9
- hunter:
branch: stable/hunter
slave: lf-virtual1
- - arm64-latest:
- branch: master
- 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
+ dependency: 3.9
- parameter:
name: xtesting-slave
- random-string:
name: build_tag
-- parameter:
- name: xtesting-branch
- parameters:
- - string:
- name: branch
- default: '{branch}'
-
- parameter:
name: xtesting-DEBUG
parameters:
builders:
- shell: |
set +x
- [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true
+ [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true
if [ "{repo}" = "_" ]; then
image={container}:{tag}
elif [ "{port}" = "None" ]; then
-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:/root/.boto \
-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 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:
name: xtesting-scm
scm:
- git:
- url: https://gerrit.opnfv.org/gerrit/functest-xtesting
- refspec: '+refs/changes/*:refs/changes/*'
+ url: 'https://gerrit.opnfv.org/gerrit/functest-xtesting'
+ refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*'
branches:
- '{ref}'
name: 'xtesting-opnfv-xtesting-mts-pull'
<<: *xtesting-params
container: 'xtesting-mts'
- exclude:
- - tag: hunter
- - tag: iruya
- - tag: jerma
- - tag: kali
- - tag: arm64-hunter
- - tag: arm64-iruya
- - tag: arm64-jerma
- - tag: arm64-kali
jobs:
- 'xtesting-{repo}-{container}-{tag}-pull'
name: 'xtesting-opnfv-xtesting-mts-rmi'
<<: *xtesting-params
container: 'xtesting-mts'
- exclude:
- - tag: hunter
- - tag: iruya
- - tag: jerma
- - tag: kali
- - tag: arm64-hunter
- - tag: arm64-iruya
- - tag: arm64-jerma
- - tag: arm64-kali
jobs:
- 'xtesting-{repo}-{container}-{tag}-rmi'
- fourth
- fifth
- sixth
- exclude:
- - tag: hunter
- test: sixth
- - tag: iruya
- test: sixth
- - tag: arm64-hunter
- test: sixth
- - tag: arm64-iruya
- test: sixth
privileged: 'false'
network: bridge
jobs:
container: 'xtesting-mts'
test:
- seventh
- exclude:
- - tag: hunter
- test: seventh
- - tag: iruya
- test: seventh
- - tag: jerma
- test: seventh
- - tag: kali
- 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
jobs:
- 'xtesting-{repo}-{container}-{tag}-{test}-run'
+
- builder:
name: xtesting-zip
builders:
- shell: |
set +x
- [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true
if [ "{repo}" = "_" ]; then
image={container}:{tag}
elif [ "{port}" = "None" ]; then
-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:/root/.boto \
-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 \
-e DEBUG=$DEBUG \
- -v /home/opnfv/xtesting/.boto:/root/.boto \
$image zip_campaign
- job-template:
use-build-blocker: true
blocking-level: 'NODE'
blocking-jobs:
- - '^xtesting-{tag}-(daily|check|gate)$'
+ - '^xtesting-{tag}-(daily|review)$'
builders:
- multijob:
name: remove former images
- name: 'xtesting-{tag}-zip'
<<: *xtesting-jobs
+- xtesting-dep: &xtesting-dep
+ name: 'xtesting-containers'
+ repo: '{repo}'
+ port: '{port}'
+ tag: '{tag}'
+ dependency: '{dependency}'
+
+- builder:
+ name: xtesting-pull-dep-images
+ builders:
+ - shell: |
+ set +x
+ if [ "_" = "_" ]; then
+ image=alpine:{dependency}
+ elif [ "_" = "None" ]; then
+ image=_/alpine:{dependency}
+ else
+ image=_:/alpine{dependency}
+ fi
+ sudo docker pull $image || true
+
+- builder:
+ name: xtesting-remove-dep-images
+ builders:
+ - shell: |
+ set +x
+ if [ "_" = "_" ]; then
+ image=alpine:{dependency}
+ elif [ "_" = "None" ]; then
+ image=_/alpine:{dependency}
+ else
+ image=_:/alpine{dependency}
+ fi
+ sudo docker rmi $image || true
+
- job-template:
- name: 'xtesting-{repo}-{container}-{tag}-gate'
+ name: 'xtesting-{repo}-{tag}-dep-pull'
parameters:
- xtesting-slave:
slave: '{slave}'
- scm:
- - xtesting-scm:
- ref: $GERRIT_REFSPEC
builders:
- - xtesting-build-containers:
- <<: *xtesting-build-containers
- ref: $GERRIT_REFSPEC
+ - xtesting-pull-dep-images:
+ <<: *xtesting-dep
+
+- project:
+ name: 'xtesting-{repo}-{tag}-dep-pull'
+ <<: *xtesting-params
+ jobs:
+ - 'xtesting-{repo}-{tag}-dep-pull'
- job-template:
- name: 'xtesting-{repo}-{container}-{tag}-check'
+ name: 'xtesting-{repo}-{tag}-dep-rmi'
parameters:
- xtesting-slave:
slave: '{slave}'
- - xtesting-branch:
- branch: '{branch}'
- scm:
- - xtesting-scm:
- ref: $branch
builders:
- - xtesting-build-containers:
- <<: *xtesting-build-containers
- ref: $branch
+ - xtesting-remove-dep-images:
+ <<: *xtesting-dep
- project:
- name: 'xtesting-_-alpine-3.12-rmi'
- repo: _
- port:
- container: alpine
- tag: '3.12'
- slave: master
+ name: 'xtesting-{repo}-{tag}-dep-rmi'
+ <<: *xtesting-params
jobs:
- - 'xtesting-{repo}-{container}-{tag}-rmi'
+ - 'xtesting-{repo}-{tag}-dep-rmi'
+
+- builder:
+ name: xtesting-tox
+ builders:
+ - shell: tox
+
+- job-template:
+ name: 'xtesting-{tag}-tox'
+ scm:
+ - xtesting-scm:
+ ref: $GERRIT_REFSPEC
+ triggers:
+ - xtesting-patchset-created:
+ branch: '{branch}'
+ parameters:
+ - xtesting-slave:
+ slave: '{slave}'
+ builders:
+ - xtesting-tox:
- project:
- name: 'xtesting-_-alpine-3.12-pull'
- repo: _
- port:
- container: alpine
- tag: '3.12'
- slave: master
- exclude:
- - tag: arm64-hunter
- - tag: arm64-iruya
- - tag: arm64-jerma
- - tag: arm64-kali
- - tag: arm64-latest
+ name: xtesting-tox
+ <<: *xtesting-params
jobs:
- - 'xtesting-{repo}-{container}-{tag}-pull'
+ - 'xtesting-{tag}-tox'
- project:
- name: xtesting-opnfv-xtesting-{tag}-build
+ name: xtesting-opnfv-xtesting-{tag}-gate
<<: *xtesting-params
container: xtesting
ref_arg: BRANCH
path: docker/core
- exclude:
- - tag: arm64-hunter
- - tag: arm64-iruya
- - tag: arm64-jerma
- - tag: arm64-kali
- - tag: arm64-latest
jobs:
- 'xtesting-{repo}-{container}-{tag}-gate'
- - 'xtesting-{repo}-{container}-{tag}-check'
- project:
- name: xtesting-opnfv-xtesting-mts-{tag}-build
+ name: xtesting-opnfv-xtesting-mts-{tag}-gate
<<: *xtesting-params
container: xtesting-mts
ref_arg: BRANCH
path: docker/mts
- exclude:
- - tag: arm64-hunter
- - tag: arm64-iruya
- - tag: arm64-jerma
- - tag: arm64-kali
- - tag: arm64-latest
jobs:
- 'xtesting-{repo}-{container}-{tag}-gate'
- - 'xtesting-{repo}-{container}-{tag}-check'
+
- job-template:
- name: 'xtesting-{tag}-check'
- project-type: multijob
+ name: 'xtesting-{repo}-{container}-{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)$'
+ 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
- trigger:
name: xtesting-patchset-created
triggers:
- gerrit:
- server-name: 'gerrit.opnfv.org'
trigger-on:
- patchset-created-event
- comment-added-contains-event:
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:
use-build-blocker: true
blocking-level: 'NODE'
blocking-jobs:
- - '^xtesting-{tag}-(daily|check|gate)$'
+ - '^xtesting-{tag}-(daily|review)$'
builders:
- multijob:
name: remove former images
- 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-{repo}-{tag}-dep-rmi'
<<: *xtesting-jobs
- multijob:
- name: pull dependencies
+ name: pull dependency
projects:
- - name: 'xtesting-_-alpine-3.12-pull'
+ - name: 'xtesting-{repo}-{tag}-dep-pull'
<<: *xtesting-jobs
- multijob:
name: opnfv/xtesting
- name: 'xtesting-opnfv-xtesting-mts-{tag}-seventh-run'
<<: *xtesting-jobs
+- 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-{repo}-{container}-{tag}-build'
+ parameters:
+ - xtesting-slave:
+ slave: '{slave}'
+ scm:
+ - xtesting-scm:
+ ref: '{branch}'
+ builders:
+ - xtesting-build-containers:
+ <<: *xtesting-build-containers
+ ref: '{branch}'
+ - xtesting-push-containers:
+ <<: *xtesting-build-containers
+ ref: '{branch}'
+
- project:
- name: 'xtesting'
+ name: xtesting-opnfv-xtesting-{tag}-build
<<: *xtesting-params
+ container: xtesting
+ ref_arg: BRANCH
+ path: docker/core
jobs:
- - 'xtesting-{tag}-daily'
+ - 'xtesting-{repo}-{container}-{tag}-build'
- project:
- name: 'xtesting-gate'
+ name: xtesting-opnfv-xtesting-mts-{tag}-build
<<: *xtesting-params
- exclude:
- - tag: arm64-hunter
- - tag: arm64-iruya
- - tag: arm64-jerma
- - tag: arm64-kali
- - tag: arm64-latest
+ container: xtesting-mts
+ ref_arg: BRANCH
+ path: docker/mts
jobs:
- - 'xtesting-{tag}-check'
- - 'xtesting-{tag}-gate'
+ - 'xtesting-{repo}-{container}-{tag}-build'
+
+
+- job-template:
+ name: 'xtesting-{tag}-docker'
+ project-type: multijob
+ triggers:
+ - xtesting-commit
+ scm:
+ - xtesting-scm:
+ ref: '{branch}'
+ parameters:
+ - xtesting-slave:
+ slave: '{slave}'
+ - xtesting-DEBUG:
+ DEBUG: 'true'
+ builders:
+ - multijob:
+ name: remove dependency
+ projects:
+ - name: 'xtesting-{repo}-{tag}-dep-rmi'
+ <<: *xtesting-jobs
+ - multijob:
+ name: pull dependency
+ projects:
+ - name: 'xtesting-{repo}-{tag}-dep-pull'
+ <<: *xtesting-jobs
+ - multijob:
+ name: opnfv/xtesting
+ projects:
+ - name: 'xtesting-opnfv-xtesting-{tag}-build'
+ <<: *xtesting-jobs
+ - multijob:
+ name: opnfv/xtesting-mts
+ projects:
+ - name: 'xtesting-opnfv-xtesting-mts-{tag}-build'
+ <<: *xtesting-jobs
+
+- builder:
+ name: xtesting-trivy
+ builders:
+ - shell: |
+ 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 --exit-code 1 $image
+
+- job-template:
+ name: 'xtesting-{repo}-{container}-{tag}-trivy'
+ parameters:
+ - xtesting-slave:
+ slave: '{slave}'
+ builders:
+ - xtesting-trivy:
+ <<: *xtesting-containers
+
+- project:
+ name: 'xtesting-opnfv-xtesting-trivy'
+ <<: *xtesting-params
+ container: 'xtesting'
+ jobs:
+ - 'xtesting-{repo}-{container}-{tag}-trivy'
+- project:
+ name: 'xtesting-opnfv-xtesting-mts-trivy'
+ <<: *xtesting-params
+ container: 'xtesting-mts'
+ jobs:
+ - 'xtesting-{repo}-{container}-{tag}-trivy'
+
+- project:
+ name: 'xtesting'
+ <<: *xtesting-params
+ jobs:
+ - 'xtesting-{tag}-daily'
+ - 'xtesting-{tag}-review'
+ - 'xtesting-{tag}-docker'
+
+
+- view:
+ name: xtesting-daily
+ view-type: list
+ columns:
+ - status
+ - weather
+ - job
+ - last-success
+ - last-failure
+ - last-duration
+ regex: ^xtesting-[a-z-]+-daily$
+
+- view:
+ name: xtesting-review
+ view-type: list
+ columns:
+ - status
+ - weather
+ - job
+ - last-success
+ - last-failure
+ - last-duration
+ regex: ^xtesting-[a-z-]+-review$
+
+- view:
+ name: xtesting-tox
+ view-type: list
+ columns:
+ - status
+ - weather
+ - job
+ - last-success
+ - last-failure
+ - last-duration
+ regex: ^xtesting-[a-z-]+-tox$
- view:
- name: xtesting
+ name: xtesting-docker
view-type: list
columns:
- status
- last-success
- last-failure
- last-duration
- regex: ^xtesting-[a-z]+-daily$
+ regex: ^xtesting-[a-z-]+-docker$
- view:
- name: xtesting-gate
+ name: xtesting-trivy
view-type: list
columns:
- status
- last-success
- last-failure
- last-duration
- regex: ^xtesting-[a-z]+-gate$
+ regex: ^xtesting-[a-z-]+-trivy$