Merge "Adding the JJB config for EPC service"
diff --git a/jjb/cord-macros.yaml b/jjb/cord-macros.yaml
index 1cca914..c6a71db 100644
--- a/jjb/cord-macros.yaml
+++ b/jjb/cord-macros.yaml
@@ -22,6 +22,27 @@
reset-first: true
depth: 1
+# same as lf-infra-gerrit-scm, but allows checkouts to a subdir of $WORKSPACE
+# with the `basedir` option
+#
+# `basedir` serves the same function as `destination-dir` in the repo scm
+# macros, seems strange that they're named differently.
+- scm:
+ name: cord-infra-gerrit-scm
+ scm:
+ - git:
+ credentials-id: '{jenkins-ssh-credential}'
+ url: '{git-url}'
+ refspec: '{refspec}'
+ branches:
+ - 'refs/heads/{branch}'
+ skip-tag: true
+ wipe-workspace: true
+ submodule:
+ recursive: '{submodule-recursive}'
+ choosing-strategy: '{choosing-strategy}'
+ basedir: '{basedir}'
+
# download a specific patchset after checking out entire source tree with repo
# docs: https://docs.openstack.org/infra/jenkins-job-builder/builders.html#builders.inject
- builder:
diff --git a/jjb/cord-test/att-workflow.yaml b/jjb/cord-test/att-workflow.yaml
new file mode 100644
index 0000000..2cd21aa
--- /dev/null
+++ b/jjb/cord-test/att-workflow.yaml
@@ -0,0 +1,29 @@
+---
+# POD Build Pipeline Jobs for ATT-WorkflowDriver
+
+- project:
+ name: attworkflowdriver-build-job
+
+ project-name: '{name}'
+
+ build-timeout: '300'
+
+ jobs:
+ - 'build_pod_manual':
+ testvm: 'onf-build'
+ config-pod: 'onlab-pod1'
+ profile: 'att-workflow'
+ branch: 'master'
+ scenario: ''
+ Jenkinsfile: 'Jenkinsfile-att-workflow'
+ oltDebVersion: 'openolt-master.deb'
+
+ # flex pod1 with olt/onu
+ - 'build_pod_manual':
+ testvm: 'qa-testvm-pod'
+ config-pod: 'flex-pod1-olt'
+ profile: 'att-workflow'
+ branch: 'master'
+ scenario: ''
+ Jenkinsfile: 'Jenkinsfile-attworkflow'
+ oltDebVersion: 'openolt-master.deb'
diff --git a/jjb/cord-test/ecord-build.yaml b/jjb/cord-test/ecord-build.yaml
deleted file mode 100644
index 0194247..0000000
--- a/jjb/cord-test/ecord-build.yaml
+++ /dev/null
@@ -1,78 +0,0 @@
----
-# POD Nightly Build Pipeline E-CORD Jobs
-
-- project:
- name: ecord-nightly-build-pipeline
-
- project-name: '{name}'
-
- build-timeout: '300'
-
- jobs:
- # ONLAB ECORD build jobs (ecord-global)
- - 'build_ecord_pod_manual':
- pod: 'onf-build'
- pod_config: 'onlab-ecord-global.yml'
- profile: 'ecord-global'
- branch: 'cord-4.1'
- Jenkinsfile: 'Jenkinsfile.newBuildSystem'
- local_pod_name: 'onlab-ecord-global'
-
- # ONLAB Global POD test jobs (ecord-global)
- - 'build_ecord_pod_manual_test':
- pod: 'onf-build'
- pod_config: 'onlab-ecord-global.yml'
- profile: 'ecord-global'
- branch: 'cord-4.1'
- Jenkinsfile: 'Jenkinsfile-ecord-global'
- local_pod_name: 'onlab_ecord-global'
-
- # ONLAB LOCAL build jobs (ecord-local)
- - 'build_ecord_pod_manual':
- pod: 'onf-build'
- pod_config: 'onlab-ecord-local-pod1.yml'
- profile: 'ecord-local'
- branch: 'cord-4.1'
- Jenkinsfile: 'Jenkinsfile.newBuildSystem'
- local_pod_name: 'onlab-ecord-local-pod1'
-
- - 'build_ecord_pod_manual':
- pod: 'onf-build'
- pod_config: 'onlab-ecord-local-pod2.yml'
- profile: 'ecord-local'
- branch: 'cord-4.1'
- Jenkinsfile: 'Jenkinsfile.newBuildSystem'
- local_pod_name: 'onlab-ecord-local-pod2'
-
- - 'build_ecord_pod_manual':
- pod: 'onf-build'
- pod_config: 'onlab-ecord-local-pod3.yml'
- profile: 'ecord-local'
- branch: 'cord-4.1'
- Jenkinsfile: 'Jenkinsfile.newBuildSystem'
- local_pod_name: 'onlab-ecord-local-pod3'
-
- # ONLAB Local POD test jobs (ecord-local)
- - 'build_ecord_pod_manual_test':
- pod: 'onf-build'
- pod_config: 'onlab-ecord-local-pod1.yml'
- profile: 'ecord-local'
- branch: 'cord-4.1'
- Jenkinsfile: 'Jenkinsfile-ecord-local'
- local_pod_name: 'onlab-ecord-local-pod1'
-
- - 'build_ecord_pod_manual_test':
- pod: 'onf-build'
- pod_config: 'onlab-ecord-local-pod2.yml'
- profile: 'ecord-local'
- branch: 'cord-4.1'
- Jenkinsfile: 'Jenkinsfile-ecord-local'
- local_pod_name: 'onlab-ecord-local-pod2'
-
- - 'build_ecord_pod_manual_test':
- pod: 'onf-build'
- pod_config: 'onlab-ecord-local-pod3.yml'
- profile: 'ecord-local'
- branch: 'cord-4.1'
- Jenkinsfile: 'Jenkinsfile-ecord-local'
- local_pod_name: 'onlab-ecord-local-pod3'
diff --git a/jjb/cord-test/nightly-build-pipeline.yaml b/jjb/cord-test/nightly-build-pipeline.yaml
index 1f6177e..5918318 100644
--- a/jjb/cord-test/nightly-build-pipeline.yaml
+++ b/jjb/cord-test/nightly-build-pipeline.yaml
@@ -13,187 +13,13 @@
build-days-to-keep: '{build-days-to-keep}'
artifact-num-to-keep: '{artifact-num-to-keep}'
-- job-template:
- name: 'build_{profile}_{pod}_{branch}'
- id: build_pod_first
- description: |
- <!-- Managed by Jenkins Job Builder -->
- Nightly Physical POD Builds at {pod} using {pod_config} <br /><br />
- Created from job-template {id} from ci-management/jjb/cord-test/cord-test-pipeline.yaml <br />
- Created by Kailash Khalasi - kailash@opennetworking.org <br />
- Copyright (c) 2017 Open Networking Foundation (ONF)
-
- <<: *test-pipe-job-boiler-plate
-
- parameters:
- - string:
- name: devNodeName
- default: '{pod}'
- description: 'Jenkins node name of Dev Node'
-
- - string:
- name: configRepoUrl
- default: 'https://gerrit.opencord.org/pod-configs'
- description: 'The URL of the POD configs repository'
-
- - string:
- name: configRepoBaseDir
- default: 'pod-configs/'
- description: 'The directory inside the POD configs repository'
-
- - string:
- name: configRepoFile
- default: 'deployment-configs/{pod_config}'
- description: 'The deployment config file'
-
- - string:
- name: branch
- default: '{branch}'
-
- - string:
- name: notificationEmail
- default: 'kailash@opennetworking.org, you@opennetworking.org, suchitra@opennetworking.org'
- description: ''
-
- concurrent: true
-
- pipeline-scm:
- script-path: '{Jenkinsfile}'
- scm:
- - git:
- url: '{gerrit-server-url}/cord'
- branches:
- - '{branch}'
-
- triggers:
- - timed: |
- TZ=America/Los_Angeles
- H {time} * * *
-
- job-template:
- name: 'build_{profile}_{pod}_{branch}'
- id: build_pod
- description: |
- <!-- Managed by Jenkins Job Builder -->
- Nightly Physical POD Builds at {pod} using {pod_config} <br /><br />
- Created from job-template {id} from ci-management/jjb/cord-test/cord-test-pipeline.yaml <br />
- Created by Kailash Khalasi - kailash@opennetworking.org <br />
- Copyright (c) 2017 Open Networking Foundation (ONF)
-
- <<: *test-pipe-job-boiler-plate
-
- parameters:
- - string:
- name: devNodeName
- default: '{pod}'
- description: 'Jenkins node name of Dev Node'
-
- - string:
- name: configRepoUrl
- default: 'https://gerrit.opencord.org/pod-configs'
- description: 'The URL of the POD configs repository'
-
- - string:
- name: configRepoBaseDir
- default: 'pod-configs/'
- description: 'The directory inside the POD configs repository'
-
- - string:
- name: configRepoFile
- default: 'deployment-configs/{pod_config}'
- description: 'The deployment config file'
-
- - string:
- name: branch
- default: '{branch}'
-
- - string:
- name: notificationEmail
- default: 'kailash@opennetworking.org, you@opennetworking.org, suchitra@opennetworking.org'
- description: ''
-
- concurrent: true
-
- pipeline-scm:
- script-path: '{Jenkinsfile}'
- scm:
- - git:
- url: '{gerrit-server-url}/cord'
- branches:
- - '{branch}'
-
- triggers:
- - reverse:
- jobs: 'build_{profile}_{pod}_{fromBranch}_test'
- result: 'failure'
-
-
-- job-template:
- name: 'build_{profile}_{pod}_{branch}_test'
- id: build_pod_test
- description: |
- <!-- Managed by Jenkins Job Builder -->
- Post Tests on {pod} triggered by build_{pod}_{branch} <br /><br />
- Created from job-template {id} from ci-management/jjb/cord-test/cord-test-pipeline.yaml <br />
- Created by Kailash Khalasi - kailash@opennetworking.org <br />
- Copyright (c) 2017 Open Networking Foundation (ONF)
-
- branches: '{branch}'
-
- <<: *test-pipe-job-boiler-plate
-
- parameters:
- - string:
- name: devNodeName
- default: '{pod}'
- description: 'Jenkins node name of Dev Node'
-
- - string:
- name: configRepoUrl
- default: 'https://gerrit.opencord.org/pod-configs'
- description: 'The URL of the POD configs repository'
-
- - string:
- name: configRepoBaseDir
- default: 'pod-configs/'
- description: 'The directory inside the POD configs repository'
-
- - string:
- name: configRepoFile
- default: 'deployment-configs/{pod_config}'
- description: 'The deployment config file'
-
- - string:
- name: branch
- default: '{branch}'
-
- - string:
- name: notificationEmail
- default: 'kailash@opennetworking.org, you@opennetworking.org, suchitra@opennetworking.org'
- description: ''
-
- concurrent: true
-
- pipeline-scm:
- script-path: '{Jenkinsfile}'
- scm:
- - git:
- url: '{gerrit-server-url}/cord-tester'
- branches:
- - '{branch}'
-
- triggers:
- - reverse:
- jobs: 'build_{profile}_{pod}_{branch}'
- result: 'failure'
-
-- job-template:
- name: 'build_{profile}_{pod}_{branch}'
+ name: 'build_{profile}_{testvm}_{scenario}_{branch}'
id: build_pod_manual
description: |
<!-- Managed by Jenkins Job Builder -->
- Manual Build on POD {pod} using {pod_config} <br /><br />
+ Manual Build on POD {config-pod} using {Jenkinsfile} <br /><br />
Created from job-template {id} from ci-management/jjb/cord-test/cord-test-pipeline.yaml <br />
Created by QA (Suchitra Vemuri - suchitra@opennetworking.org ) <br />
Copyright (c) 2018 Open Networking Foundation (ONF)
@@ -202,78 +28,39 @@
parameters:
- string:
- name: devNodeName
- default: '{pod}'
- description: 'Jenkins node name of Dev Node'
+ name: TestNodeName
+ default: '{testvm}'
+ description: 'Jenkins node name of TestVM Node'
- string:
- name: configRepoUrl
- default: 'https://gerrit.opencord.org/pod-configs'
- description: 'The URL of the POD configs repository'
+ name: cordRepoUrl
+ default: '{gerrit-server-url}'
+ description: 'The URL of the CORD Project repository'
- string:
- name: configRepoBaseDir
- default: 'pod-configs/'
+ name: configBaseDir
+ default: 'pod-configs'
description: 'The directory inside the POD configs repository'
- string:
- name: configRepoFile
- default: 'deployment-configs/{pod_config}'
- description: 'The deployment config file'
+ name: configDeploymentDir
+ default: 'deployment-configs'
+ description: 'The deployment configs folder'
- string:
- name: branch
- default: '{branch}'
+ name: configKubernetesDir
+ default: 'kubernetes-configs'
+ description: 'The kubernetes config folder'
- string:
- name: notificationEmail
- default: 'kailash@opennetworking.org, you@opennetworking.org, suchitra@opennetworking.org'
- description: ''
-
- concurrent: true
-
- pipeline-scm:
- script-path: '{Jenkinsfile}'
- scm:
- - git:
- url: '{gerrit-server-url}/cord'
- branches:
- - '{branch}'
-
-- job-template:
- name: 'build_{profile}_{pod}_{branch}_test'
- id: build_pod_manual_test
- description: |
- <!-- Managed by Jenkins Job Builder -->
- Post Tests on {pod} triggered by build_{pod}_{branch} <br /><br />
- Created from job-template {id} from ci-management/jjb/cord-test/cord-test-pipeline.yaml <br />
- Created by QA (Suchitra Vemuri - suchitra@opennetworking.org) <br />
- Copyright (c) 2017 Open Networking Foundation (ONF)
-
- branches: '{branch}'
-
- <<: *test-pipe-job-boiler-plate
-
- parameters:
- - string:
- name: devNodeName
- default: '{pod}'
- description: 'Jenkins node name of Dev Node'
+ name: configFileName
+ default: '{config-pod}'
+ description: 'The config file'
- string:
- name: configRepoUrl
- default: 'https://gerrit.opencord.org/pod-configs'
- description: 'The URL of the POD configs repository'
-
- - string:
- name: configRepoBaseDir
- default: 'pod-configs/'
- description: 'The directory inside the POD configs repository'
-
- - string:
- name: configRepoFile
- default: 'deployment-configs/{pod_config}'
- description: 'The deployment config file'
+ name: oltDebVersion
+ default: '{oltDebVersion}'
+ description: 'OLT Software version to install'
- string:
name: branch
@@ -294,128 +81,12 @@
branches:
- '{branch}'
- triggers:
- - reverse:
- jobs: 'build_{profile}_{pod}_manual_{branch}'
- result: 'failure'
-
- job-template:
- name: 'build_{profile}_{local_pod_name}_{branch}'
- id: build_ecord_pod_manual
+ name: 'build_{profile}_{config-pod}_{scenario}_{branch}'
+ id: build_pod_timer
description: |
<!-- Managed by Jenkins Job Builder -->
- Manual Build on ECORD POD {pod} using {pod_config} <br /><br />
- Created from job-template {id} from ci-management/jjb/cord-test/cord-test-pipeline.yaml <br />
- Created by QA (Suchitra Vemuri - suchitra@opennetworking.org ) <br />
- Copyright (c) 2018 Open Networking Foundation (ONF)
-
- <<: *test-pipe-job-boiler-plate
-
- parameters:
- - string:
- name: devNodeName
- default: '{pod}'
- description: 'Jenkins node name of Dev Node'
-
- - string:
- name: configRepoUrl
- default: 'https://gerrit.opencord.org/pod-configs'
- description: 'The URL of the POD configs repository'
-
- - string:
- name: configRepoBaseDir
- default: 'pod-configs/'
- description: 'The directory inside the POD configs repository'
-
- - string:
- name: configRepoFile
- default: 'deployment-configs/{pod_config}'
- description: 'The deployment config file'
-
- - string:
- name: branch
- default: '{branch}'
-
- - string:
- name: notificationEmail
- default: 'kailash@opennetworking.org, you@opennetworking.org, suchitra@opennetworking.org'
- description: ''
-
- concurrent: true
-
- pipeline-scm:
- script-path: '{Jenkinsfile}'
- scm:
- - git:
- url: '{gerrit-server-url}/cord'
- branches:
- - '{branch}'
-
-- job-template:
- name: 'build_{profile}_{local_pod_name}_{branch}_test'
- id: build_ecord_pod_manual_test
- description: |
- <!-- Managed by Jenkins Job Builder -->
- Post Tests on {pod} triggered by build_{pod}_{branch} <br /><br />
- Created from job-template {id} from ci-management/jjb/cord-test/cord-test-pipeline.yaml <br />
- Created by QA (Suchitra Vemuri - suchitra@opennetworking.org) <br />
- Copyright (c) 2017 Open Networking Foundation (ONF)
-
- branches: '{branch}'
-
- <<: *test-pipe-job-boiler-plate
-
- parameters:
- - string:
- name: devNodeName
- default: '{pod}'
- description: 'Jenkins node name of Dev Node'
-
- - string:
- name: configRepoUrl
- default: 'https://gerrit.opencord.org/pod-configs'
- description: 'The URL of the POD configs repository'
-
- - string:
- name: configRepoBaseDir
- default: 'pod-configs/'
- description: 'The directory inside the POD configs repository'
-
- - string:
- name: configRepoFile
- default: 'deployment-configs/{pod_config}'
- description: 'The deployment config file'
-
- - string:
- name: branch
- default: '{branch}'
-
- - string:
- name: notificationEmail
- default: 'kailash@opennetworking.org, you@opennetworking.org, suchitra@opennetworking.org'
- description: ''
-
- concurrent: true
-
- pipeline-scm:
- script-path: '{Jenkinsfile}'
- scm:
- - git:
- url: '{gerrit-server-url}/cord-tester'
- branches:
- - '{branch}'
-
- triggers:
- - reverse:
- jobs: 'build_{profile}_{pod}_manual_{branch}'
- result: 'failure'
-
-- job-template:
- name: 'build_{profile}_{kube-pod}_{scenario}_{branch}'
- id: build_kube_pod_first
- description: |
- <!-- Managed by Jenkins Job Builder -->
- Nightly Kubernetes tests on {kube-pod} <br /><br />
+ Nightly Kubernetes tests on {config-pod} <br /><br />
Created from job-template {id} from ci-management/jjb/cord-test/cord-test-pipeline.yaml <br />
Created by Suchitra Vemuri, suchitra@opennetworking.org <br />
Copyright (c) 2017 Open Networking Foundation (ONF)
@@ -429,19 +100,34 @@
description: 'Jenkins node name of TestVM Node'
- string:
- name: configRepoUrl
- default: 'https://gerrit.opencord.org/pod-configs'
- description: 'The URL of the POD configs repository'
+ name: cordRepoUrl
+ default: '{gerrit-server-url}'
+ description: 'The URL of the CORD Project repository'
- string:
- name: configRepoBaseDir
- default: 'pod-configs/'
+ name: configBaseDir
+ default: 'pod-configs'
description: 'The directory inside the POD configs repository'
- string:
- name: configRepoFile
- default: 'kubernetes-configs/{kube-pod}.yml'
- description: 'The kubernetes deployment config file'
+ name: configDeploymentDir
+ default: 'deployment-configs'
+ description: 'The deployment configs folder'
+
+ - string:
+ name: configKubernetesDir
+ default: 'kubernetes-configs'
+ description: 'The kubernetes config folder'
+
+ - string:
+ name: configFileName
+ default: '{config-pod}'
+ description: 'The config file'
+
+ - string:
+ name: oltDebVersion
+ default: '{oltDebVersion}'
+ description: 'OLT Software version to install'
- string:
name: branch
diff --git a/jjb/cord-test/rcord-build.yaml b/jjb/cord-test/rcord-build.yaml
deleted file mode 100644
index 7e4eede..0000000
--- a/jjb/cord-test/rcord-build.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
----
-# POD Nightly Build Pipeline R-CORD Jobs
-
-- project:
- name: rcord-nightly-build-pipeline
-
- project-name: '{name}'
-
- build-timeout: '300'
-
- jobs:
- # Flex POD1 build job for (rcord) - soak platform
- - 'build_pod_manual':
- pod: 'flex-pod1'
- pod_config: 'flex-pod1.yml'
- profile: 'rcord'
- branch: 'cord-5.0'
- Jenkinsfile: 'Jenkinsfile.newBuildSystem'
diff --git a/jjb/cord-test/rcord-lite.yaml b/jjb/cord-test/rcord-lite.yaml
index 3ddf057..b10b1ba 100644
--- a/jjb/cord-test/rcord-lite.yaml
+++ b/jjb/cord-test/rcord-lite.yaml
@@ -10,56 +10,86 @@
jobs:
# flex onf pod 1 kubernetes build jobs (rcord lite)
- - 'build_kube_pod_first':
+ - 'build_pod_timer':
testvm: 'qa-testvm-pod'
- kube-pod: 'flex-onf-pod1'
+ config-pod: 'flex-onf-pod1'
profile: 'rcord-lite'
scenario: ''
branch: 'master'
Jenkinsfile: 'Jenkinsfile-rcordlite'
+ oltDebVersion: 'openolt-1.4.deb'
time: '20'
day: '0-31/1'
# flex pod1 with olt/onu kubernetes build jobs (rcord lite)
- - 'build_kube_pod_first':
+ - 'build_pod_timer':
testvm: 'qa-testvm-pod'
- kube-pod: 'flex-pod1-olt'
+ config-pod: 'flex-pod1-olt'
profile: 'rcord-lite'
branch: 'cord-6.0'
scenario: 'zerotouch'
Jenkinsfile: 'Jenkinsfile-rcordlite-zerotouch'
+ oltDebVersion: 'openolt-1.4.deb'
time: '0'
day: '1-31/2'
# flex pod1 with olt/onu kubernetes build jobs (rcord lite)
- - 'build_kube_pod_first':
+ - 'build_pod_timer':
testvm: 'qa-testvm-pod'
- kube-pod: 'flex-pod1-olt'
+ config-pod: 'flex-pod1-olt'
profile: 'rcord-lite'
branch: 'cord-6.0'
scenario: 'topdown'
Jenkinsfile: 'Jenkinsfile-rcordlite-topdown'
+ oltDebVersion: 'openolt-1.4.deb'
time: '0'
day: '2-30/2'
+ # flex pod1 with olt/onu kubernetes master build jobs (rcord lite)
+ - 'build_pod_timer':
+ testvm: 'qa-testvm-pod'
+ config-pod: 'flex-pod1-olt'
+ profile: 'rcord-lite'
+ branch: 'master'
+ scenario: 'zerotouch'
+ Jenkinsfile: 'Jenkinsfile-rcordlite-zerotouch'
+ oltDebVersion: 'openolt-master'
+ time: '1'
+ day: '1-31/2'
+
+ # flex pod1 with olt/onu kubernetes master build jobs (rcord lite)
+ - 'build_pod_timer':
+ testvm: 'qa-testvm-pod'
+ config-pod: 'flex-pod1-olt'
+ profile: 'rcord-lite'
+ branch: 'master'
+ scenario: 'topdown'
+ Jenkinsfile: 'Jenkinsfile-rcordlite-topdown'
+ oltDebVersion: 'openolt-master'
+ time: '1'
+ day: '2-30/2'
+
# qct pod1 kubernetes build jobs (rcord lite)
- - 'build_kube_pod_first':
+ - 'build_pod_timer':
testvm: 'qct-pod1'
- kube-pod: 'qct-pod1'
+ config-pod: 'qct-pod1'
profile: 'rcord-lite'
branch: 'master'
scenario: ''
Jenkinsfile: 'Jenkinsfile-rcordlite'
+ oltDebVersion: 'openolt-1.4.deb'
time: '0'
day: '*'
+
# flex ocp pod 2 kubernetes build jobs (rcord lite)
- - 'build_kube_pod_first':
+ - 'build_pod_timer':
testvm: 'flex-pod2'
- kube-pod: 'flex-ocp-pod2'
+ config-pod: 'flex-ocp-pod2'
profile: 'rcord-lite'
scenario: ''
branch: 'master'
Jenkinsfile: 'Jenkinsfile-rcordlite'
+ oltDebVersion: 'openolt-1.4.deb'
time: '30'
day: '0-31/1'
diff --git a/jjb/defaults.yaml b/jjb/defaults.yaml
index d4b4232..3ab54c1 100644
--- a/jjb/defaults.yaml
+++ b/jjb/defaults.yaml
@@ -14,6 +14,10 @@
# by default, don't depend on other jobs
dependency-jobs: ''
+ # SCM checkout locations within Jenkins Workspace
+ destination-dir: ''
+ basedir: ''
+
# used to rename jobs if version/branch forking is required
name-extension: ''
diff --git a/jjb/pipeline/workflow-validations.groovy b/jjb/pipeline/workflow-validations.groovy
index 67dffbe..05c1653 100644
--- a/jjb/pipeline/workflow-validations.groovy
+++ b/jjb/pipeline/workflow-validations.groovy
@@ -107,7 +107,7 @@
echo "## 'helm status' for chart: \${hchart} ##"
helm status "\${hchart}"
done
- helm test att-workflow
+ helm test --timeout 1000 att-workflow
popd
"""
diff --git a/jjb/verify/abstract-olt.yaml b/jjb/verify/abstract-olt.yaml
index b84aa7c..880d49b 100644
--- a/jjb/verify/abstract-olt.yaml
+++ b/jjb/verify/abstract-olt.yaml
@@ -15,3 +15,88 @@
- 'verify-licensed'
- 'verify-sonarqube':
dependency-jobs: 'verify_abstract-olt_licensed'
+ - 'abstract-olt-tests':
+ dependency-jobs: 'verify_abstract-olt_sonarqube'
+
+- job-template:
+ id: 'abstract-olt-tests'
+ name: 'verify_{project}_tests'
+
+ description: |
+ Created by {id} job-template from ci-management/jjb/verify/abstract-olt.yaml
+
+ triggers:
+ - cord-infra-gerrit-trigger-patchset:
+ gerrit-server-name: '{gerrit-server-name}'
+ project-regexp: '^{project}$'
+ branch-regexp: '{branch-regexp}'
+ dependency-jobs: '{dependency-jobs}'
+ file-include-regexp: '{all-files-regexp}'
+
+ properties:
+ - cord-infra-properties:
+ build-days-to-keep: '{build-days-to-keep}'
+ artifact-num-to-keep: '{artifact-num-to-keep}'
+
+ wrappers:
+ - lf-infra-wrappers:
+ build-timeout: 20
+ jenkins-ssh-credential: '{jenkins-ssh-credential}'
+
+ scm:
+ - cord-infra-gerrit-scm:
+ git-url: '$GIT_URL/$GERRIT_PROJECT'
+ refspec: '$GERRIT_REFSPEC'
+ branch: '$GERRIT_BRANCH'
+ submodule-recursive: 'false'
+ choosing-strategy: default
+ jenkins-ssh-credential: '{jenkins-ssh-credential}'
+ basedir: '{project}'
+
+ node: 'ubuntu16.04-basebuild-1c-2g'
+ project-type: freestyle
+ concurrent: true
+
+ builders:
+ - shell: |
+ #!/usr/bin/env bash
+ set -eux -o pipefail
+
+ export GOPATH=~/go
+ export PATH=$PATH:/usr/lib/go-1.10/bin:/usr/local/go/bin:~/go/bin
+
+ # move code the proper location
+ mkdir -p $GOPATH/src/gerrit.opencord.org
+ mv abstract-olt $GOPATH/src/gerrit.opencord.org/abstract-olt
+
+ # get prereqs
+ go get -v github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway
+ go get -v github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger
+ go get -v github.com/golang/protobuf/protoc-gen-go
+
+ pushd $GOPATH/src/gerrit.opencord.org/abstract-olt
+
+ make test
+
+ go test -v ./... 2>&1 | go-junit-report > $WORKSPACE/junit-report.xml
+
+ go test -coverprofile=coverage.txt -covermode=count ./...
+ gocover-cobertura < coverage.txt > $WORKSPACE/coverage.xml
+
+ popd
+
+
+ publishers:
+ - junit:
+ results: "junit-report.xml"
+ - cobertura:
+ report-file: "coverage.xml"
+ targets:
+ - files:
+ healthy: 80
+ unhealthy: 0
+ failing: 0
+ - method:
+ healthy: 50
+ unhealthy: 0
+ failing: 0
diff --git a/jjb/workflow-validations.yaml b/jjb/workflow-validations.yaml
index 44e50c4..f86fdc3 100644
--- a/jjb/workflow-validations.yaml
+++ b/jjb/workflow-validations.yaml
@@ -11,7 +11,7 @@
- job-template:
id: 'wf-validation'
- name: 'workflow-validations'
+ name: 'ATT-Event-Workflow-Validation'
description: |
<!-- Managed by Jenkins Job Builder -->
diff --git a/jjb/xos-tosca-unit.yaml b/jjb/xos-tosca-unit.yaml
index 17c21c4..2259350 100644
--- a/jjb/xos-tosca-unit.yaml
+++ b/jjb/xos-tosca-unit.yaml
@@ -23,64 +23,54 @@
wrappers:
- lf-infra-wrappers:
- build-timeout: 20
+ build-timeout: '{build-timeout}'
jenkins-ssh-credential: '{jenkins-ssh-credential}'
scm:
- - lf-infra-gerrit-scm:
- git-url: '$GIT_URL/$GERRIT_PROJECT'
- refspec: '$GERRIT_REFSPEC'
+ - cord-infra-gerrit-repo-scm:
+ manifest-url: '{gerrit-server-url}/{cord-repo-manifest}'
branch: '$GERRIT_BRANCH'
- submodule-recursive: 'false'
- choosing-strategy: gerrit
- jenkins-ssh-credential: '{jenkins-ssh-credential}'
+ destination-dir: 'cord'
- node: 'ubuntu16.04-basebuild-1c-2g'
+ node: '{build-node}'
project-type: freestyle
concurrent: true
builders:
+ - cord-infra-gerrit-repo-patch:
+ destination-dir: 'cord'
+ project: '$GERRIT_PROJECT'
+ change-number: '$GERRIT_CHANGE_NUMBER'
+ patchset-number: '$GERRIT_PATCHSET_NUMBER'
- shell: |
- #/usr/bin/env bash
- BASEDIR=$(pwd)
+ #!/usr/bin/env bash
+ set -ex -o pipefail
+
+ export XOS_DIR=$WORKSPACE/cord/orchestration/xos
+ export TOSCA_DIR=$WORKSPACE/cord/orchestration/xos-tosca
# setup virtual env
- virtualenv -q venv-xos --no-site-packages
- source $BASEDIR/venv-xos/bin/activate
- pip install --upgrade pip setuptools
-
- # download changeset
- mkdir cord && cd cord/
- repo init -u https://gerrit.opencord.org/manifest -b $GERRIT_BRANCH
- repo sync
- repo download $GERRIT_PROJECT $GERRIT_CHANGE_NUMBER/$GERRIT_PATCHSET_NUMBER
-
- # Install XOS dependencies
- pip install nose2 requests_mock plyxproto jinja2 pattern astunparse pyyaml colorama
- pip install pykwalify==1.6.1
- pip install multistructlog==1.5
- pip install networkx==1.11
- pip install netaddr==0.7.19
- pip install ipaddress==1.0.19
- pip install grpcio==1.9.1
- pip install grpcio-tools==1.9.1
- pip install nose
- pip install tosca-parser==0.9.0
- echo "Requirements Installed"
-
- cd $BASEDIR/cord/orchestration/xos/lib/xos-util; python setup.py install; echo "xos-util Installed"
- cd $BASEDIR/cord/orchestration/xos/lib/xos-config; python setup.py install; echo "xos-config Installed"
- cd $BASEDIR/cord/orchestration/xos/lib/xos-genx; python setup.py install; echo "xos-genx Installed"
-
- cd $BASEDIR/cord/orchestration/xos/xos/xos_client/xosapi; ln -s ../../../../../component/chameleon chameleon
- cd $BASEDIR/cord/orchestration/xos/xos/xos_client; make; echo "xos-client Installed"
-
- cd $BASEDIR/cord/orchestration/xos/xos/xos_client/xosapi/chameleon/protos; VOLTHA_BASE=anything make
- cd $BASEDIR/cord/orchestration/xos/xos/xos_client; python setup.py install
- chmod 777 $BASEDIR/venv-xos/lib/python2.7/site-packages/xosapi/chameleon/protoc_plugins/gw_gen.py
- chmod 777 $BASEDIR/venv-xos/lib/python2.7/site-packages/xosapi/chameleon/protoc_plugins/swagger_gen.py
- pip install -r $BASEDIR/cord/orchestration/xos-tosca/pip_requirements.txt
+ $XOS_DIR/scripts/setup_venv.sh
+ source "$WORKSPACE/venv-xos/bin/activate"
+ set -u
# Run the tests
- cd $BASEDIR/cord/orchestration/xos-tosca
+ pushd "$WORKSPACE/cord/orchestration/xos-tosca"
make tests
+ popd
+
+ publishers:
+ - junit:
+ results: "**/nose2-junit.xml"
+ - cobertura:
+ report-file: "**/coverage.xml"
+ targets:
+ - files:
+ healthy: 80
+ unhealthy: 0
+ failing: 0
+ - method:
+ healthy: 50
+ unhealthy: 0
+ failing: 0
+
diff --git a/packer/provision/basebuild.sh b/packer/provision/basebuild.sh
index 9ca0453..4900948 100644
--- a/packer/provision/basebuild.sh
+++ b/packer/provision/basebuild.sh
@@ -45,6 +45,9 @@
$(lsb_release -cs) \
stable"
+ # set up golang repo
+ add-apt-repository ppa:gophers/archive
+
apt-get update
# install basic sofware requirements
@@ -55,6 +58,7 @@
bzip2 \
curl \
git \
+ golang-1.10-go \
less \
libpcap-dev \
libxml2-utils \
@@ -112,6 +116,15 @@
typings
# end of npm install list
+ # install golang packages in /usr/local/go
+ # Set PATH=$PATH:/usr/local/go/bin` to use these
+ export GOPATH=/usr/local/go
+ mkdir -p $GOPATH
+ export PATH=$PATH:/usr/lib/go-1.10/bin:$GOPATH/bin
+ # converters for unit/coverage test
+ go get -v github.com/t-yuki/gocover-cobertura
+ go get -v github.com/jstemmer/go-junit-report
+
# ubuntu 16.04 installs the node binary as /usr/bin/nodejs, which breaks
# tools that expect it to be named just `node`. Symlink it to fix
ln -s /usr/bin/nodejs /usr/local/bin/node