blob: 773be89152a8c8424bbe6ba854fa5b59407bc216 [file] [log] [blame]
---
# ONOS System Test Pipeline jobs
# TODO: Change all the job names in Jenkins Pipeline script.
- test-free-job-boiler-plate: &test-free-job-boiler-plate
name: test-free-job-boiler-plate
project-type: freestyle
- init-station-plate: &init-station-plate
name: init-station-plate
station-type:
- 'VM'
- 'BM'
- job-free-version-plate: &job-free-version-plate
name: job-free-version-plate
version:
- '1.11'
- '1.12'
- 'master'
- 'manually'
- test-free-init-procedure-plate: &test-free-init-procedure-plate
name: test-free-init-procedure-plate
project: OnosSystemTest
stream: 'master'
- inject-env-variable-plate: &inject-env-variable-plate
name: inject-env-variable-plate
wrappers:
- inject:
properties-file: '/var/jenkins/TestONOS.property'
script-content: |
echo "ONOSBranch=$ONOSBranch" > /var/jenkins/TestONOS.property
echo "TestONBranch=$TestONBranch" >> /var/jenkins/TestONOS.property
echo "ONOSTag=$ONOSTag" >> /var/jenkins/TestONOS.property
echo "WikiPrefix=$WikiPrefix" >> /var/jenkins/TestONOS.property
override-build-parameters: true
- builder:
name: clean-up-bash
beforeClean: |
echo -e "\n Before clean up disk usage: \n"
df -h
cleaning: |
cleaning{
if [ $? -eq 0 ]
then
echo "Checking if there are logs older than ${{DAYS_OLD}} days...."
for i in $(find . -mtime +${{DAYS_OLD}} -type d)
do
echo -e "DIRs older than $DAYS_OLD are: "
echo $i
rm -rf $i
done
fi
afterClean: |
echo -e "\n After clean up disk usage:\n"
df -h
builders:
- shell: |
#!/bin/bash
source ./clean-up.sh
{beforeClean}
cd /home/{user}/OnosSystemTest/TestON/logs
{cleaning}
{additional}
{afterClean}
# post_Job
- job-template:
name: postjob-{station-type}
<<: *test-free-job-boiler-plate
properties:
- build-discarder:
num-to-keep: 1
parameters:
- lf-infra-parameters:
project: '{project}'
branch: '{stream}'
stream: '{stream}'
lftools-version: '{lftools-version}'
node: 'TestStation-{station-type}s'
publishers:
# - image-gallery:
# - gallery-type: archived-images-gallery
# title: 'Test result'
# includes: '*.jpg'
- archive:
artifacts: '*.jpg'
# cleanup_stations - TDOO: check if getting the directory works.
- job-template:
name: test-station-log-cleanup-VM
<<: *test-free-job-boiler-plate
<<: *inject-env-variable-plate
properties:
- build-discarder:
num-to-keep: 30
parameters:
- string:
name: 'DAYS_OLD'
default: '15'
- lf-infra-parameters:
project: '{project}'
branch: '{stream}'
stream: '{stream}'
lftools-version: '{lftools-version}'
node: 'TestStation-VMs'
# triggers:
# - timed: '01 08 1,15 * *'
builders:
- clean-up-bash:
user: 'sdn'
additional: ''
- job-template:
name: test-station-log-cleanup-BM
<<: *test-free-job-boiler-plate
<<: *inject-env-variable-plate
properties:
- build-discarder:
num-to-keep: 30
parameters:
- string:
name: 'DAYS_OLD'
default: '30'
- lf-infra-parameters:
project: '{project}'
branch: '{stream}'
stream: '{stream}'
lftools-version: '{lftools-version}'
node: 'TestStation-BMs'
# triggers:
# - timed: '01 08 1 * *'
builders:
- clean-up-bash:
user: 'sdn'
additional: ''
- job-template:
name: test-station-log-cleanup-CHO
<<: *test-free-job-boiler-plate
<<: *inject-env-variable-plate
properties:
- build-discarder:
num-to-keep: 15
parameters:
- string:
name: 'DAYS_OLD'
default: '15'
- lf-infra-parameters:
project: '{project}'
branch: '{stream}'
stream: '{stream}'
lftools-version: '{lftools-version}'
node: 'TestStation-CHOs'
# triggers:
# - timed: '@daily'
builders:
- clean-up-bash:
user: 'admin'
additional: |
cd /var/lib/jenkins/workspace/OnosProdCHOpost
echo "Checking if there are jenkins-logs older than ${{DAYS_OLD}} days...."
for i in $(find . -mtime +${{DAYS_OLD}})
do
echo -e "logs older than $DAYS_OLD are: "
echo $i
rm -rf $i
done
# haven't done this yet.
- job-template:
name: QA-check-style
<<: *test-free-job-boiler-plate
properties:
- build-discarder:
num-to-keep: 100
parameters:
- string:
name: 'GERRIT_CHANGE_NUMBER'
default: ''
description: '5-digit number that corresponds to the patch set change on Gerrit.'
- lf-infra-parameters:
project: '{project}'
branch: '{stream}'
stream: '{stream}'
lftools-version: '{lftools-version}'
concurrent: true
node: 'TestStation-Jeremys'
triggers:
- gerrit:
server-name: 'ONOS Project Gerrit'
trigger-on:
- patchset-created-event:
exclude-drafts: false
exclude-trivial-rebase: false
exclude-no-code-change: false
- draft-published-event
- comment-added-contains-event:
comment-contains-value: '(?i)^.*recheck$'
projects:
- project-compare-type: PLAIN
project-pattern: '{project}'
branches:
- branch-compare-type: ANT
branch-pattern:
-'**/master'
-'**/onos-1.[11-20]'
wrappers:
- lf-infra-wrappers:
build-timeout: 1800
jenkins-ssh-credential: '{jenkins-ssh-credential}'
builders:
- shell: !include-raw-escape: check-style.sh
# publishers:
# - warnings:
# workspace-file-scanners:
# - file-pattern: pep8Result.txt
# scanner: Pep8
- job-template:
name: delta-nightly
<<: *test-free-job-boiler-plate
properties:
- build-discarder:
num-to-keep: 30
parameters:
- string:
name: 'NIGHTLY_FILE_NAME'
default: ''
description: |
Name of ONOS nightly build file
will be set to the latest file if not specified here
- string:
name: 'ONOS_VERSION'
default: '1.11.0'
description: 'Version number in ONOS nightly build file'
- string:
name: 'DELTA_PATH'
default: '/home/sdn'
description: 'Path of DELTA project'
- string:
name: 'WIKI_PREFIX'
default: 'master'
- bool:
name: 'CLEANUP'
default: true
- lf-infra-parameters:
project: '{project}'
branch: '{stream}'
stream: '{stream}'
lftools-version: '{lftools-version}'
node: 'TestStation-BMs'
wrappers:
- inject:
properties-file: '/var/jenkins/TestONOS.property'
builders:
- shell: !include-raw-escape: delta-script.sh
# Todo : add graph and confluence ( use pipeline for post build ..? )
- job-template:
name: init-CHO
<<: *test-free-job-boiler-plate
properties:
- build-discarder:
num-to-keep: 30
parameters:
- string:
name: 'ONOSBranch'
default: 'master'
description: |
set onos branch to test. default to "master",
but can also be set at "onos-1.2", etc.
This parameter is also use to trigger where the test results to be posted
- string:
name: 'ONOSJVMHeap'
default: "\"${{JAVA_OPTS:--Xms8G -Xmx8G}}\""
description: 'onos cell jvm heap size setting'
- string:
name: 'TestONBranch'
default: 'master'
description: 'sets TestON branch'
- string:
name: 'ONOSTag'
default: ''
- lf-infra-parameters:
project: '{project}'
branch: '{stream}'
stream: '{stream}'
lftools-version: '{lftools-version}'
node: 'TestStation-CHOs'
wrappers:
- inject:
properties-file: '/var/lib/jenkins/TestONOS.property'
script-content: |
echo "ONOSBranch=$ONOSBranch" > /var/lib/jenkins/TestONOS.property
echo "TestONBranch=$TestONBranch" >> /var/lib/jenkins/TestONOS.property
echo "ONOSTag=$ONOSTag" >> /var/lib/jenkins/TestONOS.property
override-build-parameters: true
builders:
- shell: !include-raw-escape: cho-init.sh
- job-template:
name: running-CHO
<<: *test-free-job-boiler-plate
properties:
- build-discarder:
num-to-keep: 30
parameters:
- lf-infra-parameters:
project: '{project}'
branch: '{stream}'
stream: '{stream}'
lftools-version: '{lftools-version}'
node: 'TestStation-CHOs'
triggers:
- reverse:
jobs: 'init-CHO'
result: 'failure'
builders:
- shell: !include-raw-escape: running-cho.sh
- job-template:
name: post-CHO-master
<<: *test-free-job-boiler-plate
properties:
- lf-infra-properties:
project: '{project}'
build-days-to-keep: 7
parameters:
- lf-infra-parameters:
project: '{project}'
branch: '{stream}'
stream: '{stream}'
lftools-version: '{lftools-version}'
node: 'TestStation-CHOs'
# triggers:
# - timed: 'H/60 * * * *'
wrappers:
- inject:
properties-file: '/var/lib/jenkins/TestONOS.property'
builders:
- shell: !include-raw-escape: cho-post.sh
# plot data needed.
- job-template:
name: 'SR-log-{version}'
<<: *test-free-job-boiler-plate
properties:
- build-discarder:
num-to-keep: 30
parameters:
- lf-infra-parameters:
project: '{project}'
branch: '{stream}'
stream: '{stream}'
lftools-version: '{lftools-version}'
node: 'TestStation-VMs'
publishers:
- archive:
artifacts: '*.jpg'
#TODO LIST : DELTA -> perhaps change into pipeline?? , CHO_jobs, Check_style, Personal stations : necessary?
- project:
name: post-result-jobs
project-name: post-result-jobs
<<: *test-free-init-procedure-plate
<<: *init-station-plate
jobs:
- 'postjob-{station-type}'
- project:
name: cleanup-jobs
project-name: cleanup-jobs
<<: *test-free-init-procedure-plate
<<: *init-station-plate
jobs:
- 'test-station-log-cleanup-VM'
- 'test-station-log-cleanup-BM'
- 'test-station-log-cleanup-CHO'
- project:
name: check-style
project-name: check-style
<<: *test-free-init-procedure-plate
jobs:
- 'QA-check-style'
- project:
name: delta-test
project-name: delta-test
<<: *test-free-init-procedure-plate
jobs:
- 'delta-nightly'
- project:
name: cho-tests
project-name: cho-tests
<<: *test-free-init-procedure-plate
jobs:
- 'init-CHO'
- 'running-CHO'
- 'post-CHO-master'
- project:
name: log-pipeline
<<: *job-free-version-plate
project-name: 'log-pipeline'
<<: *test-free-init-procedure-plate
jobs:
- 'SR-log-{version}'