build-job-settings: &build-job-settings
current-parameters: false
git-revision: true
- node-parameters: true
+ node-parameters: false
predefined-parameters: |
PUSH_IMAGE=$PUSH_IMAGE
COMMIT_ID=$COMMIT_ID
RELEASE_VERSION=$RELEASE_VERSION
DOCKERFILE=$DOCKERFILE
- ARCH_TAG=$ARCH_TAG
kill-phase-on: FAILURE
abort-all-jobs: false
manifest-job-settings: &manifest-job-settings
current-parameters: false
git-revision: true
- node-parameters: true
- predefined-parameters: |
+ node-parameters: false
+ predefined-parameters:
RELEASE_VERSION=$RELEASE_VERSION
- ARCH_TAG=$ARCH_TAG
kill-phase-on: FAILURE
abort-all-jobs: false
# yamllint enable rule:key-duplicates
jobs:
- "functest-docker-{stream}"
- - "functest-{image}-build-{arch_tag}-{stream}"
- - "functest-{image}-manifest-{stream}"
+ - "functest-{image}-docker-build-{arch_tag}-{stream}"
+ - "functest-{image}-docker-manifest-{stream}"
########################
# job templates
branch: '{branch}'
slave_label: 'opnfv-build-ubuntu'
arch_tag: 'amd64'
- - string:
- name: ARCH_TAG
- default: "{arch_tag}"
- description: "If set, this value will be added to the docker image tag as a prefix"
properties:
- throttle:
name: 'build functest-core images'
execution-type: PARALLEL
projects:
- - name: 'functest-core-build-amd64-{stream}'
+ - name: 'functest-core-docker-build-amd64-{stream}'
<<: *build-job-settings
- - name: 'functest-core-build-arm64-{stream}'
+ - name: 'functest-core-docker-build-arm64-{stream}'
<<: *build-job-settings
- multijob:
name: 'publish functest-core manifests'
execution-type: PARALLEL
projects:
- - name: 'functest-core-manifest-{stream}'
+ - name: 'functest-core-docker-manifest-{stream}'
<<: *manifest-job-settings
- multijob:
name: 'build all functest images'
condition: SUCCESSFUL
execution-type: PARALLEL
projects:
- - name: 'functest-healthcheck-build-amd64-{stream}'
+ - name: 'functest-healthcheck-docker-build-amd64-{stream}'
+ <<: *build-job-settings
+ - name: 'functest-healthcheck-docker-build-arm64-{stream}'
<<: *build-job-settings
- - name: 'functest-healthcheck-build-arm64-{stream}'
+ - name: 'functest-features-docker-build-amd64-{stream}'
<<: *build-job-settings
- - name: 'functest-features-build-amd64-{stream}'
+ - name: 'functest-features-docker-build-arm64-{stream}'
<<: *build-job-settings
- - name: 'functest-features-build-arm64-{stream}'
+ - name: 'functest-components-docker-build-amd64-{stream}'
<<: *build-job-settings
- - name: 'functest-components-build-amd64-{stream}'
+ - name: 'functest-components-docker-build-arm64-{stream}'
<<: *build-job-settings
- - name: 'functest-components-build-arm64-{stream}'
+ - name: 'functest-parser-docker-build-amd64-{stream}'
<<: *build-job-settings
- - name: 'functest-parser-build-amd64-{stream}'
+ - name: 'functest-parser-docker-build-arm64-{stream}'
<<: *build-job-settings
- - name: 'functest-parser-build-arm64-{stream}'
+ - name: 'functest-smoke-docker-build-amd64-{stream}'
<<: *build-job-settings
- - name: 'functest-smoke-build-amd64-{stream}'
+ - name: 'functest-smoke-docker-build-arm64-{stream}'
<<: *build-job-settings
- - name: 'functest-smoke-build-arm64-{stream}'
+ - name: 'functest-vnf-docker-build-amd64-{stream}'
<<: *build-job-settings
- - name: 'functest-vnf-build-amd64-{stream}'
+ - name: 'functest-vnf-docker-build-arm64-{stream}'
<<: *build-job-settings
- - name: 'functest-restapi-build-amd64-{stream}'
+ - name: 'functest-restapi-docker-build-amd64-{stream}'
+ <<: *build-job-settings
+ - name: 'functest-restapi-docker-build-arm64-{stream}'
<<: *build-job-settings
- multijob:
name: 'publish all manifests'
condition: SUCCESSFUL
execution-type: PARALLEL
projects:
- - name: 'functest-healthcheck-manifest-{stream}'
+ - name: 'functest-healthcheck-docker-manifest-{stream}'
<<: *manifest-job-settings
- - name: 'functest-features-manifest-{stream}'
+ - name: 'functest-features-docker-manifest-{stream}'
<<: *manifest-job-settings
- - name: 'functest-components-manifest-{stream}'
+ - name: 'functest-components-docker-manifest-{stream}'
<<: *manifest-job-settings
- - name: 'functest-parser-manifest-{stream}'
+ - name: 'functest-parser-docker-manifest-{stream}'
<<: *manifest-job-settings
- - name: 'functest-smoke-manifest-{stream}'
+ - name: 'functest-smoke-docker-manifest-{stream}'
<<: *manifest-job-settings
- - name: 'functest-vnf-manifest-{stream}'
+ - name: 'functest-vnf-docker-manifest-{stream}'
<<: *manifest-job-settings
- - name: 'functest-restapi-manifest-{stream}'
+ - name: 'functest-restapi-docker-manifest-{stream}'
<<: *manifest-job-settings
publishers:
- 'functest-arm64-recipients'
- job-template:
- name: 'functest-{image}-build-{arch_tag}-{stream}'
+ name: 'functest-{image}-docker-build-{arch_tag}-{stream}'
disabled: '{obj:disabled}'
parameters:
- job-parameters:
exit $?
- job-template:
- name: 'functest-{image}-manifest-{stream}'
+ name: 'functest-{image}-docker-manifest-{stream}'
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ branch: '{branch}'
+ - label:
+ name: SLAVE_LABEL
+ default: 'opnfv-build-ubuntu'
+ description: 'Slave label on Jenkins'
+ - string:
+ name: PROJECT
+ default: "{project}"
+ description: "Project name used to enable job conditions"
+ - string:
+ name: RELEASE_VERSION
+ default: ""
+ description: "Docker tag to be built, e.g. 5.0.0, opnfv-5.0.0, 5.0.RC1"
+ - string:
+ name: GIT_BASE
+ default: https://gerrit.opnfv.org/gerrit/$PROJECT
+ description: 'Git URL to use on this Jenkins Slave'
+
disabled: '{obj:disabled}'
+
builders:
- shell: |
#!/bin/bash -ex
case "{stream}" in
"master")
tag="latest" ;;
- "*")
- tag="{stream}" ;;
- esac
- case "{image}" in
- "vnf"|"restapi")
- sudo manifest-tool push from-args \
- --platforms linux/amd64 \
- --template opnfv/functest-{image}:ARCH-$tag \
- --target opnfv/functest-{image}:$tag ;;
*)
- sudo manifest-tool push from-args \
- --platforms linux/amd64,linux/arm64 \
- --template opnfv/functest-{image}:ARCH-$tag \
- --target opnfv/functest-{image}:$tag ;;
+ tag="{stream}" ;;
esac
+ sudo manifest-tool push from-args \
+ --platforms linux/amd64,linux/arm64 \
+ --template opnfv/functest-{image}:ARCH-$tag \
+ --target opnfv/functest-{image}:$tag
exit $?
# parameter macro