name: releng-scm
scm:
- git:
- url: 'https://gerrit.opnfv.org/gerrit/releng'
+ url: 'ssh://fbot@gerrit.opnfv.org:29418/releng'
refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*'
submodule:
recursive: true
-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/
+ jenkins-jobs test --recursive -o tmp jjb
rm -rf tmp
- builder:
-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/
+ jenkins-jobs update --recursive --delete-old jjb
- parameter:
name: releng-jjb-node
- project:
name: releng-release-jobs
stream:
- - fraser
- - gambia
- - hunter
- - iruya
- - jerma
- - kali
- - leguer
- - lakelse
- - moselle
- nile
- - v1.21
+ - orinoco
- v1.22
- v1.23
- v1.24
- v1.25
+ - v1.26
+ - v1.27
+ - v1.28
- xena
- wallaby
- yoga
- zed
+ - '2023.1'
+ - '2023.2'
jobs:
- 'releng-release-{stream}-verify'
- 'releng-release-{stream}-merge'
node: opnfv-build
- stream-parameter:
stream: '{stream}'
+ - string:
+ name: GIT_URL
+ default: ssh://fbot@gerrit.opnfv.org:29418/
triggers:
- gerrit:
server-name: 'gerrit.opnfv.org'
- job-template:
name: 'releng-release-{stream}-merge'
- triggers:
- - releng-patchset-merged
scm:
- releng-scm:
- ref: master
+ ref: $GERRIT_REFSPEC
parameters:
- releng-jjb-node:
node: opnfv-build
- stream-parameter:
stream: '{stream}'
+ - string:
+ name: GIT_URL
+ default: ssh://fbot@gerrit.opnfv.org:29418/
triggers:
- gerrit:
trigger-on:
- shell: !include-raw-escape:
- branch-or-tag.sh
-- parameter:
- name: releng-debug-slave
- parameters:
- - label:
- name: slave
- default: '{slave}'
+- 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
+
+- 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 fbot@gerrit.opnfv.org "$cmd"
+
+ # 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: releng-debug
+ name: lint-yaml-code
builders:
- shell: |
- ls -l /etc/ssh
+ #!/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-debug
+ name: 'releng-lint-verify'
parameters:
- - releng-debug-slave:
- slave: lf-build6
+ - 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:
- - releng-debug
+ - lint-all-code
- project:
- name: 'releng-debug'
+ name: releng-generate-artifacts-index-pages
jobs:
- - 'releng-debug'
+ - 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