Publish sbom jobs
[releng.git] / jjb / functest / functest.yaml
index eec6575..8e9de2d 100644 (file)
           from:
           build_args:
           branch: master
-          slave: lf-pod4
+          node: lf-pod4
           DASHBOARD_URL: http://172.30.12.83
           dependency: 3.14
       - zed:
           from:
           build_args:
           branch: stable/zed
-          slave: lf-virtual9
+          node: lf-virtual9
           DASHBOARD_URL: http://172.30.13.94
           dependency: 3.14
       - yoga:
           from:
           build_args:
           branch: stable/yoga
-          slave: lf-pod4-3
+          node: lf-pod4-3
           DASHBOARD_URL: http://172.30.12.88
           dependency: 3.14
       - xena:
           from:
           build_args:
           branch: stable/xena
-          slave: lf-pod4-2
+          node: lf-pod4-2
           DASHBOARD_URL: http://172.30.12.85
           dependency: 3.14
       - wallaby:
           from:
           build_args:
           branch: stable/wallaby
-          slave: lf-virtual6
+          node: lf-virtual6
           DASHBOARD_URL: http://172.30.13.91
           dependency: 3.13
 
     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
             -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 DASHBOARD_URL={DASHBOARD_URL} \
 - job-template:
     name: 'functest-{repo}-{container}-{tag}-pull'
     parameters:
-      - functest-slave:
-          slave: '{slave}'
+      - functest-node:
+          node: '{node}'
     builders:
       - functest-pull-containers:
           <<: *functest-containers
 - job-template:
     name: 'functest-{repo}-{container}-{tag}-rmi'
     parameters:
-      - functest-slave:
-          slave: '{slave}'
+      - functest-node:
+          node: '{node}'
     builders:
       - functest-remove-images:
           <<: *functest-containers
 - job-template:
     name: 'functest-opnfv-functest-healthcheck-{tag}-{test}-run'
     parameters:
-      - functest-slave:
-          slave: '{slave}'
+      - functest-node:
+          node: '{node}'
       - functest-build_tag:
           build_tag: ''
       - functest-EXTERNAL_NETWORK:
 - job-template:
     name: 'functest-opnfv-functest-smoke-{tag}-{test}-run'
     parameters:
-      - functest-slave:
-          slave: '{slave}'
+      - functest-node:
+          node: '{node}'
       - functest-build_tag:
           build_tag: ''
       - functest-EXTERNAL_NETWORK:
 - job-template:
     name: 'functest-opnfv-functest-smoke-cntt-{tag}-{test}-run'
     parameters:
-      - functest-slave:
-          slave: '{slave}'
+      - functest-node:
+          node: '{node}'
       - functest-build_tag:
           build_tag: ''
       - functest-EXTERNAL_NETWORK:
 - job-template:
     name: 'functest-opnfv-functest-benchmarking-{tag}-{test}-run'
     parameters:
-      - functest-slave:
-          slave: '{slave}'
+      - functest-node:
+          node: '{node}'
       - functest-build_tag:
           build_tag: ''
       - functest-EXTERNAL_NETWORK:
 - job-template:
     name: 'functest-opnfv-functest-benchmarking-cntt-{tag}-{test}-run'
     parameters:
-      - functest-slave:
-          slave: '{slave}'
+      - functest-node:
+          node: '{node}'
       - functest-build_tag:
           build_tag: ''
       - functest-EXTERNAL_NETWORK:
 - job-template:
     name: 'functest-opnfv-functest-vnf-{tag}-{test}-run'
     parameters:
-      - functest-slave:
-          slave: '{slave}'
+      - functest-node:
+          node: '{node}'
       - functest-build_tag:
           build_tag: ''
       - functest-EXTERNAL_NETWORK:
 - job-template:
     name: 'functest-{tag}-zip'
     parameters:
-      - functest-slave:
-          slave: '{slave}'
+      - functest-node:
+          node: '{node}'
       - functest-build_tag:
           build_tag: ''
       - functest-EXTERNAL_NETWORK:
     triggers:
       - timed: '@weekly'
     parameters:
-      - functest-slave:
-          slave: '{slave}'
+      - functest-node:
+          node: '{node}'
       - functest-build_tag:
           build_tag: ''
       - functest-EXTERNAL_NETWORK:
 - job-template:
     name: 'functest-{repo}-{tag}-dep-pull'
     parameters:
-      - functest-slave:
-          slave: '{slave}'
+      - functest-node:
+          node: '{node}'
     builders:
       - functest-pull-dep-images:
           <<: *functest-dep
 - job-template:
     name: 'functest-{repo}-{tag}-dep-rmi'
     parameters:
-      - functest-slave:
-          slave: '{slave}'
+      - functest-node:
+          node: '{node}'
     builders:
       - functest-remove-dep-images:
           <<: *functest-dep
             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.7 python3.7-dev python3.6 python3.6-dev \
-            python python-dev python3-pip enchant -y
+            python3-pip enchant-2 -y
           sudo pip3 install tox tox-pip-version
 
           tox
       - functest-patchset-created:
           branch: '{branch}'
     parameters:
-      - functest-slave:
-          slave: '{slave}'
+      - functest-node:
+          node: '{node}'
     builders:
       - functest-tox:
 
 - job-template:
     name: 'functest-{repo}-{container}-{tag}-gate'
     parameters:
-      - functest-slave:
-          slave: '{slave}'
+      - functest-node:
+          node: '{node}'
     scm:
       - functest-scm:
           ref: $GERRIT_REFSPEC
       - functest-patchset-created:
           branch: '{branch}'
     parameters:
-      - functest-slave:
-          slave: '{slave}'
+      - functest-node:
+          node: '{node}'
       - functest-build_tag:
           build_tag: ''
       - functest-EXTERNAL_NETWORK:
 - job-template:
     name: 'functest-{repo}-{container}-{tag}-build'
     parameters:
-      - functest-slave:
-          slave: '{slave}'
+      - functest-node:
+          node: '{node}'
     scm:
       - functest-scm:
           ref: '{branch}'
       - functest-scm:
           ref: '{branch}'
     parameters:
-      - functest-slave:
-          slave: '{slave}'
+      - functest-node:
+          node: '{node}'
     # PyYAML and yamllint differ here
     # see https://github.com/yaml/pyyaml/issues/234
     # yamllint disable rule:indentation
     triggers:
       - timed: '@weekly'
     parameters:
-      - functest-slave:
-          slave: '{slave}'
+      - functest-node:
+          node: '{node}'
     builders:
       - functest-trivy:
           <<: *functest-containers
     triggers:
       - timed: '@weekly'
     parameters:
-      - functest-slave:
-          slave: '{slave}'
+      - functest-node:
+          node: '{node}'
     builders:
       - functest-grype:
           <<: *functest-containers
     jobs:
       - 'functest-{repo}-{container}-{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-{repo}-{container}-{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
+    container: 'functest-core'
+    jobs:
+      - 'functest-{repo}-{container}-{tag}-sbom'
+
+- project:
+    name: 'functest-opnfv-functest-healthcheck-sbom'
+    <<: *functest-params
+    container: 'functest-healthcheck'
+    jobs:
+      - 'functest-{repo}-{container}-{tag}-sbom'
+
+- project:
+    name: 'functest-opnfv-functest-smoke-sbom'
+    <<: *functest-params
+    container: 'functest-smoke'
+    jobs:
+      - 'functest-{repo}-{container}-{tag}-sbom'
+
+- project:
+    name: 'functest-opnfv-functest-benchmarking-sbom'
+    <<: *functest-params
+    container: 'functest-benchmarking'
+    jobs:
+      - 'functest-{repo}-{container}-{tag}-sbom'
+
+- project:
+    name: 'functest-opnfv-functest-vnf-sbom'
+    <<: *functest-params
+    container: 'functest-vnf'
+    jobs:
+      - 'functest-{repo}-{container}-{tag}-sbom'
+
+- project:
+    name: 'functest-opnfv-functest-smoke-cntt-sbom'
+    <<: *functest-params
+    container: 'functest-smoke-cntt'
+    jobs:
+      - 'functest-{repo}-{container}-{tag}-sbom'
+
+- project:
+    name: 'functest-opnfv-functest-benchmarking-cntt-sbom'
+    <<: *functest-params
+    container: 'functest-benchmarking-cntt'
+    jobs:
+      - 'functest-{repo}-{container}-{tag}-sbom'
+
 - project:
     name: 'functest'
     <<: *functest-params
       - last-failure
       - last-duration
     regex: (?!functest-kubernetes)(?!functest-pi)^functest-[a-z-0-9.]+-grype$
+
+- view:
+    name: functest-sbom
+    view-type: list
+    columns:
+      - status
+      - weather
+      - job
+      - last-success
+      - last-failure
+      - last-duration
+    regex: (?!functest-kubernetes)(?!functest-pi)^functest-[a-z-0-9.]+-sbom$