X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Freleng%2Freleng-jobs.yaml;h=1c0bcd0272fe393f46c9a2610d6809e10129b825;hb=5f1b78d20f63d498ed63f6ebf9389b9717af90e8;hp=4a39333d42eb4812110dc9bcc93236284709f89f;hpb=96c0fe07960eff4068feaf2ee066a3497fcfe891;p=releng.git diff --git a/jjb/releng/releng-jobs.yaml b/jjb/releng/releng-jobs.yaml index 4a39333d4..1c0bcd027 100644 --- a/jjb/releng/releng-jobs.yaml +++ b/jjb/releng/releng-jobs.yaml @@ -1,17 +1,513 @@ --- +- scm: + name: releng-scm + scm: + - git: + url: 'ssh://jenkins-ci@gerrit.opnfv.org:29418/releng' + refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*' + submodule: + recursive: true + branches: + - '{ref}' + +- trigger: + name: releng-patchset-created + triggers: + - gerrit: + trigger-on: + - patchset-created-event + - comment-added-contains-event: + comment-contains-value: 'recheck' + - comment-added-contains-event: + comment-contains-value: 'reverify' + projects: + - project-compare-type: 'ANT' + project-pattern: 'releng' + branches: + - branch-compare-type: 'ANT' + branch-pattern: 'master' + +- trigger: + name: releng-patchset-merged + triggers: + - gerrit: + trigger-on: + - change-merged-event + - comment-added-contains-event: + comment-contains-value: 'remerge' + projects: + - project-compare-type: 'ANT' + project-pattern: 'releng' + branches: + - branch-compare-type: 'ANT' + branch-pattern: 'master' + +- builder: + name: releng-jjb-verify + builders: + - shell: | + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 dist-upgrade -y + sudo DEBIAN_FRONTEND=noninteractive \ + apt-get -o DPkg::Lock::Timeout=300 install jenkins-job-builder -y + jenkins-jobs test --recursive -o tmp jjb/ + rm -rf tmp + +- builder: + name: releng-jjb-merge + builders: + - shell: | + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 dist-upgrade -y + sudo DEBIAN_FRONTEND=noninteractive \ + apt-get -o DPkg::Lock::Timeout=300 install jenkins-job-builder -y + jenkins-jobs update --recursive --delete-old jjb/ + +- parameter: + name: releng-jjb-node + parameters: + - label: + name: node + default: '{node}' + +- job-template: + name: releng-jjb-verify + triggers: + - releng-patchset-created + scm: + - releng-scm: + ref: $GERRIT_REFSPEC + parameters: + - releng-jjb-node: + node: opnfv-build + builders: + - releng-jjb-verify + - project: - name: releng-builder-jobs - project: 'releng' - project-name: 'releng' - jjb-version: '2.5.0' - jjb-cache: "$WORKSPACE/.cache/jenkins_jobs" + name: releng-jjb-verify + jobs: + - releng-jjb-verify + +- job-template: + name: releng-jjb-merge + triggers: + - releng-patchset-merged + scm: + - releng-scm: + ref: master + parameters: + - releng-jjb-node: + node: opnfv-build + builders: + - releng-jjb-merge + +- project: + name: releng-jjb-merge + jobs: + - releng-jjb-merge + +- scm: + name: opnfv-scm + scm: + - git: + url: 'https://gerrit.opnfv.org/gerrit/{project}' + refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*' + submodule: + recursive: true + branches: + - '{ref}' + +- trigger: + name: releng-tox-patchset-created + triggers: + - gerrit: + trigger-on: + - patchset-created-event + - comment-added-contains-event: + comment-contains-value: recheck + - comment-added-contains-event: + comment-contains-value: reverify + server-name: gerrit.opnfv.org + projects: + - project-compare-type: 'REG_EXP' + project-pattern: '^(?!functest).*' + branches: + - branch-compare-type: 'ANT' + branch-pattern: master + - branch-compare-type: 'ANT' + branch-pattern: stable/nile + - branch-compare-type: 'ANT' + branch-pattern: stable/moselle + +- builder: + name: releng-tox + builders: + - shell: | + [ -f tox.ini ] || exit 0 + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 dist-upgrade -y + sudo DEBIAN_FRONTEND=noninteractive \ + apt-get -o DPkg::Lock::Timeout=300 install tox -y + tox --recreate + +- parameter: + name: releng-tox-node + parameters: + - label: + name: node + default: '{node}' + +- job-template: + name: releng-tox + triggers: + - releng-tox-patchset-created + scm: + - opnfv-scm: + ref: $GERRIT_REFSPEC + project: $GERRIT_PROJECT + parameters: + - releng-tox-node: + node: opnfv-build + builders: + - releng-tox + +- project: + name: releng-tox + jobs: + - releng-tox + +- project: + name: releng-release-jobs + stream: + - nile + - v1.22 + - v1.23 + - v1.24 + - v1.25 + - xena + - wallaby + - yoga + - zed + jobs: + - 'releng-release-{stream}-verify' + - 'releng-release-{stream}-merge' + +- parameter: + name: stream-parameter + parameters: + - string: + name: STREAM + default: '{stream}' + +- job-template: + name: 'releng-release-{stream}-verify' + scm: + - releng-scm: + ref: $GERRIT_REFSPEC + parameters: + - releng-jjb-node: + node: opnfv-build + - stream-parameter: + stream: '{stream}' + triggers: + - gerrit: + server-name: 'gerrit.opnfv.org' + trigger-on: + - patchset-created-event: + exclude-drafts: 'false' + exclude-trivial-rebase: 'false' + exclude-no-code-change: 'false' + - comment-added-contains-event: + comment-contains-value: 'recheck' + - comment-added-contains-event: + comment-contains-value: 'reverify' + projects: + - project-compare-type: 'ANT' + project-pattern: 'releng' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/master' + file-paths: + - compare-type: ANT + pattern: 'releases/{stream}/**' + - compare-type: ANT + pattern: 'releases/schema.yaml' + - compare-type: ANT + pattern: 'releases/scripts/verify_schema.py' + builders: + - shell: | + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 dist-upgrade -y + sudo DEBIAN_FRONTEND=noninteractive \ + apt-get -o DPkg::Lock::Timeout=300 install python3-pygerrit2 \ + python3-ruamel.yaml -y + - shell: !include-raw-escape: + - branch-or-tag.sh + +- job-template: + name: 'releng-release-{stream}-merge' + scm: + - releng-scm: + ref: $GERRIT_REFSPEC + parameters: + - releng-jjb-node: + node: opnfv-build + - stream-parameter: + stream: '{stream}' + - string: + name: GIT_URL + default: ssh://jenkins-ci@gerrit.opnfv.org:29418/ + triggers: + - gerrit: + trigger-on: + - change-merged-event + - comment-added-contains-event: + comment-contains-value: 'remerge' + projects: + - project-compare-type: 'ANT' + project-pattern: 'releng' + branches: + - branch-compare-type: 'ANT' + branch-pattern: 'master' + file-paths: + - compare-type: ANT + pattern: 'releases/{stream}/**' + builders: + - shell: | + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 dist-upgrade -y + sudo DEBIAN_FRONTEND=noninteractive \ + apt-get -o DPkg::Lock::Timeout=300 install python3-pygerrit2 \ + python3-ruamel.yaml -y + - shell: !include-raw-escape: + - branch-or-tag.sh + +- builder: + name: lint-init + builders: + - shell: | + #!/bin/bash + # Ensure we start with a clean environment + rm -f bash-violation.log python-violation.log yaml-violation.log violation.log + git --no-pager diff --diff-filter=MCRAT --name-only HEAD^1 > modified_files - build-timeout: 60 +- builder: + name: lint-report + builders: + - shell: | + #!/bin/bash + if [[ -s violation.log ]]; then + cat violation.log + echo "Reporting lint result...." + set -x + msg="Found syntax error and/or coding style violation(s) in the files modified by your patchset." + sed -i -e "1s#^#${msg}\n\n#" violation.log + cmd="gerrit review -p $GERRIT_PROJECT -m \"$(cat violation.log)\" $GERRIT_PATCHSET_REVISION --notify NONE" + ssh -o 'PubkeyAcceptedKeyTypes +ssh-rsa' -p 29418 jenkins-ci@gerrit.opnfv.org "$cmd" - rtd-build-url: 'https://readthedocs.org/api/v2/webhook/opnfv-releng/38594/' - rtd-token: '291c6a0109493b4457e566d06141212452c65784' - project-pattern: 'releng' + # Make sure the caller job failed + exit 1 + fi +- builder: + name: lint-bash-code + builders: + - shell: | + #!/bin/bash + echo "Checking bash code..." + for f in $(egrep '\.sh$' modified_files) + do + bash -n "$f" 2>> bash-violation.log + done + if [[ -s bash-violation.log ]]; then + echo -e "Bash syntax error(s)\n---" >> violation.log + sed -e 's/^/ /g' bash-violation.log >> violation.log + fi + +- builder: + name: lint-python-code + builders: + - shell: | + #!/bin/bash + + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 dist-upgrade -y + sudo DEBIAN_FRONTEND=noninteractive \ + apt-get -o DPkg::Lock::Timeout=300 install flake8 -y + + echo "Checking python code..." + for f in $(egrep '\.py$' modified_files) + do + flake8 "$f" >> python-violation.log + done + if [[ -s python-violation.log ]]; then + echo -e "Python violation(s)\n---" >> violation.log + sed -e 's/^/ /g' python-violation.log >> violation.log + fi + +- builder: + name: lint-yaml-code + builders: + - shell: | + #!/bin/bash + + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 dist-upgrade -y + sudo DEBIAN_FRONTEND=noninteractive \ + apt-get -o DPkg::Lock::Timeout=300 install yamllint -y + + echo "Checking yaml file..." + for f in $(egrep '\.ya?ml$' modified_files) + do + yamllint "$f" >> yaml-violation.log + done + if [[ -s yaml-violation.log ]]; then + echo -e "YAML violation(s)\n---" >> violation.log + sed -e 's/^/ /g' yaml-violation.log >> violation.log + fi + +- builder: + name: lint-all-code + builders: + - lint-init + - lint-bash-code + - lint-python-code + - lint-yaml-code + - lint-report + +- project: + name: releng-lint + jobs: + - 'releng-lint-verify' + +- job-template: + name: 'releng-lint-verify' + parameters: + - releng-jjb-node: + node: opnfv-build + scm: + - releng-scm: + ref: $GERRIT_REFSPEC + triggers: + - gerrit: + server-name: 'gerrit.opnfv.org' + trigger-on: + - patchset-created-event + - comment-added-contains-event: + comment-contains-value: recheck + - comment-added-contains-event: + comment-contains-value: reverify + projects: + - project-compare-type: 'ANT' + project-pattern: 'releng' + branches: + - branch-compare-type: 'ANT' + branch-pattern: 'master' + file-paths: + - compare-type: ANT + pattern: '**/*.py' + - compare-type: ANT + pattern: '**/*.sh' + - compare-type: ANT + pattern: '**/*.yml' + - compare-type: ANT + pattern: '**/*.yaml' + builders: + - lint-all-code + +- project: + name: releng-generate-artifacts-index-pages + jobs: + - releng-generate-artifacts-index-pages + +- job-template: + name: releng-generate-artifacts-index-pages + scm: + - releng-scm: + ref: master + parameters: + - releng-jjb-node: + node: opnfv-build + triggers: + - timed: '@daily' + builders: + - generate-artifact-html + +- builder: + name: generate-artifact-html + builders: + - shell: | + curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - + echo "deb https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee \ + /etc/apt/sources.list.d/google-cloud-sdk.list + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 install \ + google-cloud-sdk -y + cd $WORKSPACE/utils/ + ./artifacts.opnfv.org.sh + +- project: + name: releng-artifact-cleanup + jobs: + - releng-artifact-cleanup + +- job-template: + name: releng-artifact-cleanup + scm: + - releng-scm: + ref: master + parameters: + - releng-jjb-node: + node: opnfv-build + triggers: + - timed: '@daily' + builders: + - releng-artifact-cleanup + +- builder: + name: releng-artifact-cleanup + builders: + - shell: | + curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - + echo "deb https://packages.cloud.google.com/apt cloud-sdk main" | sudo tee \ + /etc/apt/sources.list.d/google-cloud-sdk.list + sudo apt-get -o DPkg::Lock::Timeout=300 update && \ + sudo DEBIAN_FRONTEND=noninteractive apt-get \ + -o DPkg::Lock::Timeout=300 install \ + google-cloud-sdk -y + $WORKSPACE/utils/retention_script.sh + +- parameter: + name: releng-debug-slave + parameters: + - label: + name: slave + default: '{slave}' + +- builder: + name: releng-debug + builders: + - shell: | + find ~ -name ".boto" + cat ~/.boto + +- job-template: + name: releng-debug + parameters: + - releng-debug-slave: + slave: lf-build6 + builders: + - releng-debug + +- project: + name: 'releng-debug' jobs: - - '{project-name}-ci-jobs' - - '{project-name}-rtd-jobs' + - 'releng-debug'