---
+############
+# SETTINGS #
+############
+# settings for jobs run in multijob phases
+- _docker-build-job-settings: &docker-build-job-settings
+ name: docker_build_job_settings
+ current-parameters: true
+ git-revision: false
+ node-parameters: false
+ kill-phase-on: FAILURE
+ abort-all-jobs: false
+
+#############
+# TEMPLATES #
+#############
- job-template:
id: akraino-validation-docker-multiarch
- name: 'validation-{stream}-docker'
+ name: "validation-{stream}-docker"
project-type: multijob
- disabled: '{obj:disabled}'
- node: 'centos7-builder-2c-1g'
+ disabled: "{obj:disabled}"
+ node: "centos7-builder-2c-1g"
build-timeout: 90
parameters:
- - validation-job-parameters:
- project: '{project}'
- branch: '{branch}'
- stream: '{stream}'
+ - lf-infra-parameters: &validation_lf_infra_parameters
+ project: "{project}"
+ branch: "{branch}"
+ stream: "{stream}"
properties:
- throttle:
max-per-node: 1
- option: 'project'
+ option: "project"
- build-blocker:
use-build-blocker: true
blocking-jobs:
- - 'validation-docker-.*'
- blocking-level: 'NODE'
- scm:
- - validation-infra-gerrit-scm:
- jenkins-ssh-credential: '{jenkins-ssh-credential}'
- git-url: '{git-url}/{project}.git'
- refspec: ''
- refs_tag: '{refs_tag}'
- stream: '{stream}'
- submodule-recursive: false
- submodule-timeout: '{submodule-timeout}'
- submodule-disable: false
- choosing-strategy: default
+ - "validation-docker-.*"
+ block-level: "NODE"
- triggers:
- # Build nigtly at 12:10 AM
- - timed: '10 0 * * *'
+ triggers: "{obj:triggers}"
builders:
- multijob:
- name: 'build validation images'
+ name: "build validation images"
execution-type: PARALLEL
projects:
- - name: 'validation-docker-build-amd64-{stream}'
+ - name: "validation-docker-build-amd64-{stream}"
<<: *docker-build-job-settings
- - name: 'validation-docker-build-arm64-{stream}'
+ - name: "validation-docker-build-arm64-{stream}"
<<: *docker-build-job-settings
- multijob:
- name: 'publish validation manifests'
+ name: "publish validation manifests"
condition: SUCCESSFUL
execution-type: PARALLEL
projects:
- - name: 'validation-docker-manifest-{stream}'
+ - name: "validation-docker-manifest-{stream}"
<<: *docker-build-job-settings
publishers:
+ - lf-infra-publish
- email:
- recipients: 'cristina.pauna@enea.com'
+ recipients: >
+ cristina.pauna@enea.com
+ juha.kosonen@nokia.com
- job-template:
id: akraino-validation-docker-specific-arch
- name: 'validation-docker-build-{arch_tag}-{stream}'
- disabled: '{obj:disabled}'
- node: '{slave_label}'
+ name: "validation-docker-build-{arch_tag}-{stream}"
+ disabled: "{obj:disabled}"
+ node: "{slave_label}"
build-timeout: 75
parameters:
- - validation-job-parameters:
- project: '{project}'
- branch: '{branch}'
- stream: '{stream}'
- arch_tag: '{arch_tag}'
+ - lf-infra-parameters: *validation_lf_infra_parameters
properties:
- build-blocker:
use-build-blocker: true
blocking-jobs:
- - 'validation-docker-build-.*'
- blocking-level: 'NODE'
- scm:
- - validation-infra-gerrit-scm:
- jenkins-ssh-credential: '{jenkins-ssh-credential}'
- git-url: '{git-url}/{project}.git'
- refspec: ''
- refs_tag: '{refs_tag}'
- stream: '{stream}'
+ - "validation-docker-build-.*"
+ block-level: "NODE"
+ scm: &validation_scm
+ # lf-infra-gerrit-scm hardcodes branch specifier to refs/heads; while
+ # lf-infra-github-scm does not, allowing us to pass a fully custom '{branch}'
+ - lf-infra-github-scm:
+ jenkins-ssh-credential: "{jenkins-ssh-credential}"
+ url: "{git-url}/{project}.git"
+ refspec: "$GERRIT_REFSPEC"
+ branch: "$STREAM"
submodule-recursive: false
- submodule-timeout: '{submodule-timeout}'
+ submodule-timeout: "{submodule-timeout}"
submodule-disable: false
choosing-strategy: default
builders:
- lf-infra-docker-login:
global-settings-file: global-settings
- settings-file: '{mvn-settings}'
- - conditional-step:
- condition-kind: regex-match
- regex: '^tags$'
- label: '{refs_tag}'
- steps:
- - shell: |
- #!/bin/bash -ex
- echo "export TAG_VER=$STREAM" >> tag_version.sh
+ settings-file: "{mvn-settings}"
- shell: |
#!/bin/bash -ex
- if [ -f tag_version.sh ]; then source tag_version.sh; fi
+ if [ "{branch}" != "{stream}" ]; then export TAG_VER=$STREAM; fi
make -k -C docker push-all
- rm -f tag_version.sh
- - shell: |
- #!/bin/bash -ex
docker system prune -af
+ publishers:
+ - lf-infra-publish
+
- job-template:
id: akraino-validation-docker-manifest
- name: 'validation-docker-manifest-{stream}'
- node: 'ubuntu1604-docker-8c-8g'
+ name: "validation-docker-manifest-{stream}"
+ node: "ubuntu1804-docker-8c-8g"
build-timeout: 15
parameters:
- - validation-job-parameters:
- project: '{project}'
- branch: '{branch}'
- stream: '{stream}'
+ - lf-infra-parameters: *validation_lf_infra_parameters
- disabled: '{obj:disabled}'
+ disabled: "{obj:disabled}"
- scm:
- - validation-infra-gerrit-scm:
- jenkins-ssh-credential: '{jenkins-ssh-credential}'
- git-url: '{git-url}/{project}.git'
- refspec: ''
- refs_tag: '{refs_tag}'
- stream: '{stream}'
- submodule-recursive: false
- submodule-timeout: '{submodule-timeout}'
- submodule-disable: false
- choosing-strategy: default
+ scm: *validation_scm
builders:
- lf-infra-docker-login:
global-settings-file: global-settings
- settings-file: '{mvn-settings}'
- - conditional-step:
- condition-kind: regex-match
- regex: '^tags$'
- label: '{refs_tag}'
- steps:
- - shell: |
- #!/bin/bash -ex
- echo "export TAG_VER=$STREAM" >> tag_version.sh
+ settings-file: "{mvn-settings}"
- shell: |
#!/bin/bash -ex
- if [ -f tag_version.sh ]; then source tag_version.sh; fi
+ if [ "{branch}" != "{stream}" ]; then export TAG_VER=$STREAM; fi
for sd in docker/*/.; do make -k -C $sd .push_manifest; done
- rm -f tag_version.sh
+
+ publishers:
+ - lf-infra-publish
+
+- job-template:
+ id: akraino-validation-lab-daily
+ name: "validation-{validation_lab}-daily-{stream}"
+ concurrent: true
+ node: "{build-node}"
+ parameters:
+ - lab_params
+ builders:
+ - trigger-builds:
+ - project: "bluval-daily-{stream}"
+ predefined-parameters: LAB_SILO={validation_lab}
+ same-node: true
+ current-parameters: true
+ block: true
+
+ publishers:
+ - lf-infra-publish
+
+- job-template:
+ id: bluval-run-daily-tests
+ name: "bluval-daily-{stream}"
+ concurrent: true
+ node: "{build-node}"
+ lab-silo: ""
+ parameters:
+ - lf-infra-parameters: *validation_lf_infra_parameters
+ - string:
+ name: DEPLOY_SCENARIO
+ default: ""
+ - bluval-defaults:
+ lab-silo: "{lab-silo}"
+
+ scm:
+ - lf-infra-github-scm:
+ jenkins-ssh-credential: "{jenkins-ssh-credential}"
+ url: "{git-url}/{project}.git"
+ refspec: "$GERRIT_REFSPEC"
+ branch: "$GERRIT_BRANCH"
+ submodule-recursive: false
+ submodule-timeout: "{submodule-timeout}"
+ submodule-disable: true
+ choosing-strategy: default
+
+ builders:
+ - description-setter:
+ description: "POD: $NODE_NAME<br/>BLUEPRINT: $BLUEPRINT<br/>LAB: $LAB_SILO<br/>LAYER: $LAYER"
+ - lf-infra-create-netrc:
+ server-id: logs
+ - shell: !include-raw-escape:
+ - ../shell/run_bluval.sh
+
+ publishers:
+ - lf-infra-publish
+ - robot:
+ output-path: "results"
+ report-html: "**/report.html"
+ log-html: "**/log.html"
+ output-xml: "**/output.xml"
+ - logparser:
+ use-project-rules: true
+ parse-rules: "./bluval/rules.txt"
+ unstable-on-warning: false
+ fail-on-error: true
+ show-graphs: true