X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Freleng-jobs.yaml;h=25eb92acdd2a472f0acb72832d81f2dfcd2fec9a;hb=297a8e9d58016f1b442497aae2c6c088ca6a36cb;hp=69c8a2d6730caf298042451943e270ca96d54129;hpb=34587978b0d7c3f717c9761ba68b4e137dbe98be;p=releng%2Fbuilder.git diff --git a/jjb/releng-jobs.yaml b/jjb/releng-jobs.yaml index 69c8a2d67..25eb92acd 100644 --- a/jjb/releng-jobs.yaml +++ b/jjb/releng-jobs.yaml @@ -1,425 +1,607 @@ +--- - project: name: builder-jobs jobs: - - 'builder-verify-jjb' - - 'builder-verify-python' - - 'builder-merge' - - 'builder-weekly' - - 'builder-check-poms' - - 'builder-verify-packer' - - 'builder-merge-packer-{platforms}-{templates}' - - 'builder-delete-stale-stacks' + - 'builder-verify-jjb' + - '{project-name}-verify-tox-{stream}' + - 'builder-merge' + - 'builder-weekly' + - 'builder-check-poms' + - 'builder-verify-packer' + - 'builder-merge-packer-{platforms}-{templates}' + # OpenStack Related + - 'builder-cleanup-old-images' + - 'builder-delete-stale-stacks' + # Automation for docs and jobs + - 'builder-update-csit-tests' + - 'builder-update-image-list' platforms: - - centos - - ubuntu-14.04 + - centos + - ubuntu-14.04 + - ubuntu-16.04 templates: - - devstack - - devstack-pre-pip-mitaka - - devstack-pre-pip-newton - - docker - - gbp - - java-builder - - mininet - - mininet-ovs-2.3 - - mininet-ovs-2.5 - - robot + - devstack + - devstack-pre-pip-mitaka + - devstack-pre-pip-newton + - docker + - gbp + - java-builder + - mininet + - mininet-ovs-2.3 + - mininet-ovs-2.5 + - robot exclude: - - platforms: centos - templates: gbp - - platforms: centos - templates: mininet - - platforms: centos - templates: mininet-ovs-2.3 - - platforms: centos - templates: mininet-ovs-2.5 - - platforms: ubuntu-14.04 - templates: java-builder - - platforms: ubuntu-14.04 - templates: robot - - platforms: ubuntu-14.04 - templates: devstack-pre-pip-mitaka - - platforms: ubuntu-14.04 - templates: devstack-pre-pip-newton + - platforms: centos + templates: gbp + - platforms: centos + templates: mininet + - platforms: centos + templates: mininet-ovs-2.3 + - platforms: centos + templates: mininet-ovs-2.5 + - platforms: ubuntu-14.04 + templates: java-builder + - platforms: ubuntu-14.04 + templates: robot + - platforms: ubuntu-14.04 + templates: devstack-pre-pip-mitaka + - platforms: ubuntu-14.04 + templates: devstack-pre-pip-newton + - platforms: ubuntu-14.04 + templates: devstack + - platforms: ubuntu-14.04 + templates: docker + - platforms: ubuntu-16.04 + templates: java-builder + - platforms: ubuntu-16.04 + templates: robot + - platforms: ubuntu-16.04 + templates: devstack-pre-pip-mitaka + - platforms: ubuntu-16.04 + templates: devstack-pre-pip-newton + - platforms: ubuntu-16.04 + templates: devstack + - platforms: ubuntu-16.04 + templates: docker + - platforms: ubuntu-16.04 + templates: mininet + - platforms: ubuntu-16.04 + templates: mininet-ovs-2.3 + - platforms: ubuntu-16.04 + templates: gbp + - platforms: ubuntu-14.04 + templates: mininet-ovs-2.5 + project-type: freestyle archive-artifacts: '**/*.log' build-timeout: '60' - # The following two values are only specified here + + # The following values are only specified here # so that code blocks look similar to other projects. project: 'releng/builder' - branch: 'master' + project-name: builder + stream: master + branch: master - job-template: name: builder-verify-jjb - node: jjbuilder + node: centos7-java-builder-2c-4g + concurrent: true project-type: freestyle properties: - - opendaylight-infra-properties: - build-days-to-keep: 14 + - opendaylight-infra-properties: + build-days-to-keep: 14 parameters: - - opendaylight-infra-parameters: - project: '{project}' - branch: '{branch}' - refspec: 'refs/heads/{branch}' - artifacts: '{archive-artifacts}' + - opendaylight-infra-parameters: + project: '{project}' + branch: '{branch}' + refspec: 'refs/heads/{branch}' + artifacts: '{archive-artifacts}' scm: - - gerrit-trigger-scm: - refspec: '$GERRIT_REFSPEC' - choosing-strategy: 'gerrit' + - gerrit-trigger-scm: + refspec: '$GERRIT_REFSPEC' + choosing-strategy: 'gerrit' wrappers: - - opendaylight-infra-wrappers: - build-timeout: '{build-timeout}' + - opendaylight-infra-wrappers: + build-timeout: '{build-timeout}' triggers: - - gerrit-trigger-patch-submitted: - server: '{server-name}' - project: '{project}' - branch: '{branch}' - files: 'jjb/**' + - gerrit-trigger-patch-submitted: + server: '{server-name}' + project: '{project}' + branch: '{branch}' + files: 'jjb/**' builders: - - shell: | - pip freeze - jenkins-jobs -l DEBUG test --recursive -o archives/job_output jjb/ - gzip archives/job_output/* - - - releng-check-unicode - - verify-gpg-signature + - opendaylight-infra-jjbini + - shell: | + virtualenv $WORKSPACE/venv + source $WORKSPACE/venv/bin/activate + pip install --upgrade pip + pip install jenkins-job-builder + pip freeze + jenkins-jobs -l DEBUG test --recursive -o archives/job_output jjb/ + gzip archives/job_output/* + - releng-check-unicode + - verify-gpg-signature publishers: - - email-notification: - email-recipients: '{email-recipients}' - email-prefix: '[releng]' - - opendaylight-infra-shiplogs: - maven-version: 'mvn33' - -# FIXME: Migrate to {project-name}-verify-python-{stream} or delete this entirely, -# as there are zero python files (aside docs/conf.py) in releng/builder. + - email-notification: + email-recipients: '{email-recipients}' + email-prefix: '[releng]' + - opendaylight-infra-shiplogs: + maven-version: 'mvn33' + - job-template: - name: builder-verify-python - node: centos7-java-builder-2c-8g + name: 'builder-merge' + node: centos7-java-builder-2c-4g + + # builder-merge job to run JJB update + # + # This job's purpose is to update all the JJB project-type: freestyle properties: - - opendaylight-infra-properties: - build-days-to-keep: 14 + - opendaylight-infra-properties: + build-days-to-keep: 14 parameters: - - opendaylight-infra-parameters: - project: '{project}' - branch: '{branch}' - refspec: 'refs/heads/{branch}' - artifacts: '{archive-artifacts}' + - opendaylight-infra-parameters: + project: '{project}' + branch: '{branch}' + refspec: 'refs/heads/{branch}' + artifacts: '{archive-artifacts}' scm: - - gerrit-trigger-scm: - refspec: '$GERRIT_REFSPEC' - choosing-strategy: 'gerrit' + - gerrit-trigger-scm: + refspec: '' + choosing-strategy: 'default' wrappers: - - opendaylight-infra-wrappers: - build-timeout: '{build-timeout}' + - opendaylight-infra-wrappers: + build-timeout: '{build-timeout}' triggers: - - gerrit-trigger-patch-submitted: - server: '{server-name}' - project: '{project}' - branch: '{branch}' - files: 'scripts/**' + - gerrit: + server-name: '{server-name}' + trigger-on: + - change-merged-event + - comment-added-contains-event: + comment-contains-value: 'remerge' + projects: + - project-compare-type: 'ANT' + project-pattern: 'releng/builder' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: ANT + pattern: jjb/** builders: - - verify-gpg-signature - - shell: | - virtualenv $WORKSPACE/venv - source $WORKSPACE/venv/bin/activate - pip install --upgrade pip - pip freeze - pip install flake8 - flake8 scripts/ + - opendaylight-infra-jjbini + - shell: | + virtualenv $WORKSPACE/venv + source $WORKSPACE/venv/bin/activate + pip install --upgrade pip + pip install jenkins-job-builder + pip freeze + jenkins-jobs --version + jenkins-jobs update --recursive --delete-old --workers 4 jjb/ publishers: - - email-notification: - email-recipients: '{email-recipients}' - email-prefix: '[releng]' - - opendaylight-infra-shiplogs: - maven-version: 'mvn33' + - email-notification: + email-recipients: '{email-recipients}' + email-prefix: '[releng]' + - opendaylight-infra-shiplogs: + maven-version: 'mvn33' - job-template: - name: 'builder-merge' - node: jjbuilder + name: 'builder-weekly' + disabled: false + node: centos7-java-builder-2c-4g - # builder-merge job to run JJB update + # builder-weekly job to run JJB update weekly # - # This job's purpose is to update all the JJB + # This job's purpose is to update all the JJB on a weekly (Sunday) + # basis with --flush-cache enabled to ensure jobs are okay project-type: freestyle properties: - - opendaylight-infra-properties: - build-days-to-keep: 14 + - opendaylight-infra-properties: + build-days-to-keep: 14 parameters: - - opendaylight-infra-parameters: - project: '{project}' - branch: '{branch}' - refspec: 'refs/heads/{branch}' - artifacts: '{archive-artifacts}' + - opendaylight-infra-parameters: + project: '{project}' + branch: '{branch}' + refspec: 'refs/heads/{branch}' + artifacts: '{archive-artifacts}' scm: - - gerrit-trigger-scm: - refspec: '' - choosing-strategy: 'default' + - git-scm: + branch: '{branch}' wrappers: - - opendaylight-infra-wrappers: - build-timeout: '{build-timeout}' + - opendaylight-infra-wrappers: + build-timeout: '{build-timeout}' triggers: - - gerrit: - server-name: '{server-name}' - trigger-on: - - change-merged-event - - comment-added-contains-event: - comment-contains-value: 'remerge' - projects: - - project-compare-type: 'ANT' - project-pattern: 'releng/builder' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: jjb/** + - timed: 'H H * * 0' builders: - - shell: | - pip freeze - jenkins-jobs --version - jenkins-jobs update --recursive --delete-old --workers 4 jjb/ + - opendaylight-infra-jjbini + - shell: | + virtualenv $WORKSPACE/venv + source $WORKSPACE/venv/bin/activate + pip install --upgrade pip + pip install jenkins-job-builder + pip freeze + jenkins-jobs --flush-cache update --recursive --workers 4 jjb/ publishers: - - email-notification: - email-recipients: '{email-recipients}' - email-prefix: '[releng]' - - opendaylight-infra-shiplogs: - maven-version: 'mvn33' + - email-notification: + email-recipients: '{email-recipients}' + email-prefix: '[releng]' + - opendaylight-infra-shiplogs: + maven-version: 'mvn33' - job-template: - name: 'builder-weekly' - disabled: false - node: jjbuilder - - # builder-weekly job to run JJB update weekly - # - # This job's purpose is to update all the JJB on a weekly (Sunday) - # basis with --flush-cache enabled to ensure jobs are okay + name: builder-check-poms + node: centos7-java-builder-2c-4g project-type: freestyle properties: - - opendaylight-infra-properties: - build-days-to-keep: 14 + - opendaylight-infra-properties: + build-days-to-keep: 14 parameters: - - opendaylight-infra-parameters: - project: '{project}' - branch: '{branch}' - refspec: 'refs/heads/{branch}' - artifacts: '{archive-artifacts}' - - scm: - - git-scm: - branch: '{branch}' + - opendaylight-infra-parameters: + project: '{project}' + branch: '{branch}' + refspec: 'refs/heads/{branch}' + artifacts: '{archive-artifacts}' wrappers: - - opendaylight-infra-wrappers: - build-timeout: '{build-timeout}' + - opendaylight-infra-wrappers: + build-timeout: '{build-timeout}' triggers: - - timed: 'H H * * 0' + - timed: 'H H * * 1' builders: - - shell: | - jenkins-jobs --flush-cache update --recursive --workers 4 jjb/ + - shell: !include-raw-escape: include-raw-check-poms.sh publishers: - - email-notification: - email-recipients: '{email-recipients}' - email-prefix: '[releng]' - - opendaylight-infra-shiplogs: - maven-version: 'mvn33' + - email-notification: + email-recipients: '{email-recipients}' + email-prefix: '[releng]' + - opendaylight-infra-shiplogs: + maven-version: 'mvn33' - job-template: - name: builder-check-poms - node: centos7-java-builder-2c-8g + name: 'builder-delete-stale-stacks' + project-type: freestyle + node: centos7-java-builder-2c-4g + properties: + - opendaylight-infra-properties: + build-days-to-keep: 7 + + wrappers: + - opendaylight-infra-wrappers: + build-timeout: '{build-timeout}' + + triggers: + # Attempt to clear up stacks every 30 mins in case we have orphaned stacks + - timed: '0,30 * * * *' + + builders: + - shell: !include-raw-escape: opendaylight-infra-cleanup-stale-stacks.sh + + publishers: + - email-notification: + email-recipients: '{email-recipients}' + email-prefix: '[releng]' + - opendaylight-infra-shiplogs: + maven-version: 'mvn33' + +- job-template: + name: 'builder-cleanup-old-images' project-type: freestyle + node: centos7-java-builder-2c-4g properties: - - opendaylight-infra-properties: - build-days-to-keep: 14 + - opendaylight-infra-properties: + build-days-to-keep: 7 parameters: - - opendaylight-infra-parameters: - project: '{project}' - branch: '{branch}' - refspec: 'refs/heads/{branch}' - artifacts: '{archive-artifacts}' + - opendaylight-infra-parameters: + project: '{project}' + branch: '{branch}' + refspec: 'refs/heads/{branch}' + artifacts: '{archive-artifacts}' + + scm: + - git-scm: + branch: '{branch}' wrappers: - - opendaylight-infra-wrappers: - build-timeout: '{build-timeout}' + - opendaylight-infra-wrappers: + build-timeout: '{build-timeout}' + # Listed after to override openstack-infra-wrappers clouds.yaml definition + - config-file-provider: + files: + - file-id: opendaylight-private-clouds-yaml + target: '$HOME/.config/openstack/clouds.yaml' triggers: - - timed: 'H H * * 1' + # Cleanup images on a weekly schedule + - timed: '@weekly' builders: - - shell: - !include-raw-escape: - - include-raw-check-poms.sh + - shell: !include-raw-escape: opendaylight-infra-cleanup-old-images.sh publishers: - - email-notification: - email-recipients: '{email-recipients}' - email-prefix: '[releng]' - - opendaylight-infra-shiplogs: - maven-version: 'mvn33' + - email-notification: + email-recipients: '{email-recipients}' + email-prefix: '[releng]' + - opendaylight-infra-shiplogs: + maven-version: 'mvn33' - job-template: - name: 'builder-delete-stale-stacks' + name: 'builder-update-image-list' project-type: freestyle node: centos7-java-builder-2c-4g properties: - - opendaylight-infra-properties: - build-days-to-keep: 7 + - opendaylight-infra-properties: + build-days-to-keep: 7 + + parameters: + - opendaylight-infra-parameters: + project: '{project}' + branch: '{branch}' + refspec: 'refs/heads/{branch}' + artifacts: '{archive-artifacts}' + + scm: + - git-scm: + branch: '{branch}' wrappers: - - opendaylight-infra-wrappers: - build-timeout: '{build-timeout}' + - opendaylight-infra-wrappers: + build-timeout: '{build-timeout}' + # Listed after to override openstack-infra-wrappers clouds.yaml definition + - config-file-provider: + files: + - file-id: opendaylight-private-clouds-yaml + target: '$HOME/.config/openstack/clouds.yaml' triggers: - - timed: 'H H/6 * * *' + # Update image list every Monday to Friday at 11:00 UTC + - timed: '0 11 * * 1-5' builders: - - shell: !include-raw-escape: opendaylight-infra-cleanup-stale-stacks.sh + - shell: !include-raw-escape: opendaylight-infra-update-image-list.sh + - opendaylight-infra-push-gerrit-patch: + project: '{project}' + gerrit-topic: 'releng-update-cloud-image-list' + gerrit-commit-message: 'Update cloud image list docs' publishers: - - email-notification: - email-recipients: '{email-recipients}' - email-prefix: '[releng]' - - opendaylight-infra-shiplogs: - maven-version: 'mvn33' + - email-notification: + email-recipients: '{email-recipients}' + email-prefix: '[releng]' + - opendaylight-infra-shiplogs: + maven-version: 'mvn33' - job-template: name: 'builder-verify-packer' project-type: freestyle - node: centos7-java-builder-2c-8g + node: centos7-java-builder-2c-4g concurrent: true properties: - - opendaylight-infra-properties: - build-days-to-keep: 14 + - opendaylight-infra-properties: + build-days-to-keep: 14 parameters: - - opendaylight-infra-parameters: - project: '{project}' - branch: '{branch}' - refspec: 'refs/heads/{branch}' - artifacts: '{archive-artifacts}' + - opendaylight-infra-parameters: + project: '{project}' + branch: '{branch}' + refspec: 'refs/heads/{branch}' + artifacts: '{archive-artifacts}' scm: - - gerrit-trigger-scm: - refspec: '$GERRIT_REFSPEC' - choosing-strategy: 'gerrit' + - gerrit-trigger-scm: + refspec: '$GERRIT_REFSPEC' + choosing-strategy: 'gerrit' wrappers: - - opendaylight-infra-wrappers: - build-timeout: '{build-timeout}' + - opendaylight-infra-wrappers: + build-timeout: '{build-timeout}' triggers: - - gerrit-trigger-patch-submitted: - server: '{server-name}' - project: '{project}' - branch: '{branch}' - files: 'packer/**' + - gerrit-trigger-patch-submitted: + server: '{server-name}' + project: '{project}' + branch: '{branch}' + files: 'packer/**' builders: - - packer-validate: - platform: '{platforms}' - template: '{templates}' + - packer-validate: publishers: - - email-notification: - email-recipients: '{email-recipients}' - email-prefix: '[{project}]' - - opendaylight-infra-shiplogs: - maven-version: 'mvn33' + - email-notification: + email-recipients: '{email-recipients}' + email-prefix: '[{project}]' + - opendaylight-infra-shiplogs: + maven-version: 'mvn33' - job-template: name: 'builder-merge-packer-{platforms}-{templates}' project-type: freestyle + node: centos7-java-builder-2c-4g + + properties: + - opendaylight-infra-properties: + build-days-to-keep: 14 + + parameters: + - opendaylight-infra-parameters: + project: '{project}' + branch: '{branch}' + refspec: 'refs/heads/{branch}' + artifacts: '{archive-artifacts}' + + scm: + - gerrit-trigger-scm: + refspec: '$GERRIT_REFSPEC' + branches: + - '$GERRIT_BRANCH' + choosing-strategy: 'default' + + wrappers: + - opendaylight-infra-wrappers: + build-timeout: '{build-timeout}' + + triggers: + - timed: '00 10 1 * *' + - gerrit: + server-name: '{server-name}' + trigger-on: + - change-merged-event + - comment-added-contains-event: + comment-contains-value: 'remerge' + projects: + - project-compare-type: 'ANT' + project-pattern: 'releng/builder' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: ANT + pattern: 'packer/vars/{platforms}.json' + - compare-type: ANT + pattern: 'packer/templates/{templates}.json' + - compare-type: ANT + pattern: 'packer/provision/{templates}.sh' + - compare-type: ANT + pattern: 'packer/provision/system_reseal.sh' + - compare-type: ANT + pattern: 'packer/provision/rh-user_data.sh' + - compare-type: ANT + pattern: 'packer/provision/devstack-pre-pip.sh' + - compare-type: ANT + pattern: 'packer/provision/baseline.sh' + + builders: + - packer-validate: + - packer-build: + platform: '{platforms}' + template: '{templates}' + + publishers: + - email-notification: + email-recipients: '{email-recipients}' + email-prefix: '[{project}]' + - opendaylight-infra-shiplogs: + maven-version: 'mvn33' + +- job-template: + name: 'builder-update-csit-tests' node: centos7-java-builder-2c-8g - concurrent: true + + # builder-update-csit-tests job + # + # This job's purpose is to update csit + # tests to run in integration-distribution-test-{stream} + # by updating releng-defaults variables: csit-list-carbon, + # csit-list-boron, csit-list-beryllium + + project-type: freestyle properties: - - opendaylight-infra-properties: - build-days-to-keep: 14 + - opendaylight-infra-properties: + build-days-to-keep: 14 parameters: - - opendaylight-infra-parameters: - project: '{project}' - branch: '{branch}' - refspec: 'refs/heads/{branch}' - artifacts: '{archive-artifacts}' + - opendaylight-infra-parameters: + project: '{project}' + branch: '{branch}' + refspec: 'refs/heads/{branch}' + artifacts: '{archive-artifacts}' scm: - - gerrit-trigger-scm: - refspec: '' - choosing-strategy: 'default' + - gerrit-trigger-scm: + refspec: '' + choosing-strategy: 'default' wrappers: - - opendaylight-infra-wrappers: - build-timeout: '{build-timeout}' + - opendaylight-infra-wrappers: + build-timeout: '{build-timeout}' triggers: - - timed: '00 10 1 * *' - - gerrit: - server-name: '{server-name}' - trigger-on: - - change-merged-event - - comment-added-contains-event: - comment-contains-value: 'remerge' - projects: - - project-compare-type: 'ANT' - project-pattern: 'releng/builder' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - file-paths: - - compare-type: ANT - pattern: 'packer/**' + - reverse: + jobs: 'builder-merge' builders: - - packer-validate: - platform: '{platforms}' - template: '{templates}' - - packer-build: - platform: '{platforms}' - template: '{templates}' + - shell: | + git checkout -b auto-update-csit-jobs + - integration-list-jobs: + blacklist: '{csit-list-blacklist}' + search_string: "csit" + stream: "carbon" + jobs-filename: "csit_jobs_carbon.lst" + - integration-list-jobs: + blacklist: '{csit-list-blacklist}' + search_string: "csit" + stream: "boron" + jobs-filename: "csit_jobs_boron.lst" + - integration-list-jobs: + blacklist: '{csit-list-blacklist}' + search_string: "csit" + stream: "beryllium" + jobs-filename: "csit_jobs_beryllium.lst" + - integration-replace-block-text: + starting-regex: "'csit-list-carbon: >'" + ending-regex: "'csit-weekly-list-carbon: >'" + file-with-changes-to-insert: "'csit_jobs_carbon.lst'" + file-to-change: "'jjb/releng-defaults.yaml'" + - integration-replace-block-text: + starting-regex: "'csit-list-boron: >'" + ending-regex: "'csit-list-beryllium: >'" + file-with-changes-to-insert: "'csit_jobs_boron.lst'" + file-to-change: "'jjb/releng-defaults.yaml'" + - integration-replace-block-text: + starting-regex: "'csit-list-beryllium: >'" + ending-regex: "'# CSIT TESTS END SED MARKER'" + file-with-changes-to-insert: "'csit_jobs_beryllium.lst'" + file-to-change: "'jjb/releng-defaults.yaml'" + - shell: | + git status + git add jjb/releng-defaults.yaml + - opendaylight-infra-push-gerrit-patch: + project: "releng/builder" + gerrit-topic: "auto-update-csit-jobs" + gerrit-commit-message: "Auto Update CSIT Jobs to run" publishers: - - email-notification: - email-recipients: '{email-recipients}' - email-prefix: '[{project}]' - - opendaylight-infra-shiplogs: - maven-version: 'mvn33' + - email-notification: + email-recipients: '{email-recipients}' + email-prefix: '[releng]' + - opendaylight-infra-shiplogs: + maven-version: 'mvn33'