Fix Jenkins job name
[releng.git] / jjb / functest / xtesting-ci-docker.yaml
index 91bfbb7..422d7b8 100644 (file)
@@ -4,7 +4,35 @@
     builders:
       - shell: |
           cd {dir}
-          sudo docker build --pull true -t {image} .
+          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:
           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-debian-lts-slim:
+      - jenkins-lts-slim:
           dir: jenkins.debian
           image: opnfv/xtesting-jenkins:lts-slim
-      - jenkins-debian-lts-alpine:
+      - 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: 'lf-virtual1'
+
+- 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
       - last-success
       - last-failure
       - last-duration
-    regex: ^xtesting-ci-docker*$
+    regex: ^xtesting-ci-docker.*$