[AETHER-264] [AETHER-209] Container based OMEC CI jobs
Change-Id: I36cc175291cd7d3df52543275247222f39d2b615
diff --git a/jjb/omec-ci.yaml b/jjb/omec-ci.yaml
index 85bf48b..5e76aee 100644
--- a/jjb/omec-ci.yaml
+++ b/jjb/omec-ci.yaml
@@ -16,6 +16,17 @@
- 'omec-tc1'
- 'omec-tc2'
- 'omec-deploy-staging'
+ - 'omec-deploy':
+ pod: 'dev'
+ build-node: 'omec-ci'
+ cp-context: 'dev-central-gcp'
+ dp-context: 'dev-edge-onf-menlo'
+ central-config: 'gcp-dev'
+ edge-config: 'menlo-dev'
+ - 'omec-ng40-test':
+ pod: 'dev'
+ build-node: 'ng40-host-node'
+ ng40-vm: 'ng40@192.168.122.101'
- 'omec-postmerge':
project: '{name}'
build-node: 'omec-ci'
@@ -57,6 +68,7 @@
build-node: 'ubuntu16.04-basebuild-4c-8g'
- 'omec-comac-in-a-box':
build-node: 'comac_in_a_box'
+ - 'omec-container'
# for c3po
- project:
@@ -95,6 +107,7 @@
build-node: 'ubuntu16.04-basebuild-8c-15g'
- 'omec-comac-in-a-box':
build-node: 'comac_in_a_box'
+ - 'omec-container'
# for openmme
- project:
@@ -163,6 +176,7 @@
build-node: 'ubuntu16.04-basebuild-1c-2g'
- 'omec-comac-in-a-box':
build-node: 'comac_in_a_box'
+ - 'omec-container'
# for freediameter
- project:
@@ -676,3 +690,218 @@
concurrent: false
dsl: !include-raw-escape: pipeline/{pipeline-file}
+
+# OMEC CI job which builds docker images, deploys and tests OMEC
+- job-template:
+ id: 'omec-container'
+ name: 'omec_{project}_container'
+ project-type: pipeline
+
+ description: |
+ <!-- Managed by Jenkins Job Builder -->
+ Created by {id} job-template from ci-management/jjb/omec-ci.yaml<br />
+
+ properties:
+ - cord-infra-properties:
+ build-days-to-keep: '{build-days-to-keep}'
+ artifact-num-to-keep: '{artifact-num-to-keep}'
+ - github:
+ url: 'https://github.com/{github-organization}/{project}'
+ - build-blocker:
+ use-build-blocker: true
+ blocking-jobs:
+ - "omec_.*_container"
+
+ wrappers:
+ - lf-infra-wrappers:
+ build-timeout: '{build-timeout}'
+ jenkins-ssh-credential: '{jenkins-ssh-credential}'
+
+ parameters:
+ - string:
+ name: buildNode
+ default: 'ng40-host-node'
+ description: 'Name of the Jenkins executor node to run the job on'
+
+ - string:
+ name: project
+ default: '{project}'
+ description: 'Name of the project'
+
+ - string:
+ name: ghprbTargetBranch
+ default: '$ghprbTargetBranch'
+ description: 'GitHub Pull-Request builder value. Replace default value to test manually.'
+
+ - string:
+ name: ghprbPullId
+ default: '$ghprbPullId'
+ description: 'GitHub Pull-Request builder value. Replace default value to test manually.'
+
+ - string:
+ name: ghprbActualCommit
+ default: '$ghprbActualCommit'
+ description: 'GitHub Pull-Request builder value. Replace default value to test manually.'
+
+ - string:
+ name: registry
+ default: 'registry.central.aetherproject.net'
+ description: 'Docker registry that stores images built for CI testing'
+
+ - string:
+ name: c3poBranch
+ default: 'master'
+ description: 'Branch name of c3po repo which we run tests against'
+
+ - string:
+ name: nucleusBranch
+ default: 'master'
+ description: 'Branch name of Nucleus repo which we run tests against'
+
+ - string:
+ name: ngicBranch
+ default: 'central-cp-multi-upfs'
+ description: 'Branch name of ngic-rtc repo which we run tests against'
+
+ triggers:
+ - cord-infra-github-pr-trigger:
+ github_pr_org_list: '{obj:github_pr_org_list}'
+ github_pr_auth_id: '{github_pr_auth_id}'
+ status_context: 'CORD Jenkins - Container Based Verification'
+
+ concurrent: false
+
+ pipeline-scm:
+ script-path: 'Jenkinsfile-omec-container.groovy'
+ scm:
+ - git:
+ url: 'https://github.com/{github-organization}/omec-project-ci'
+ branches:
+ - 'master'
+
+# OMEC deployment job
+- job-template:
+ id: 'omec-deploy'
+ name: 'omec_deploy_{pod}'
+ project-type: pipeline
+
+ description: |
+ <!-- Managed by Jenkins Job Builder -->
+ Created from job-template {id} from ci-management/jjb/omec-ci.yaml <br />
+
+ 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: '{build-timeout}'
+ jenkins-ssh-credential: '{jenkins-ssh-credential}'
+
+ parameters:
+ - string:
+ name: buildNode
+ default: '{build-node}'
+ description: 'Name of the Jenkins executor node to run the job on.'
+
+ - string:
+ name: cpContext
+ default: '{cp-context}'
+ description: 'K8S context for omec control plane.'
+
+ - string:
+ name: dpContext
+ default: '{dp-context}'
+ description: 'K8S context for omec data plane.'
+
+ - string:
+ name: centralConfig
+ default: '{central-config}'
+ description: 'Directory name for central yaml files under aether-pod-configs.'
+
+ - string:
+ name: edgeConfig
+ default: '{edge-config}'
+ description: 'Directory name for edge yaml files under aether-pod-configs.'
+
+ - string:
+ name: hssdbImage
+ default: 'omecproject/c3po-hssdb:master-latest'
+ description: 'Docker image for hssdb. Leave empty to use default helm-charts value'
+
+ - string:
+ name: hssImage
+ default: 'omecproject/c3po-hss:master-latest'
+ description: 'Docker image for hss. Leave empty to use default helm-charts value'
+
+ - string:
+ name: mmeImage
+ default: 'omecproject/nucleus:master-latest'
+ description: 'Docker image for mme. Leave empty to use default helm-charts value'
+
+ - string:
+ name: spgwcImage
+ default: 'omecproject/ngic-cp:central-cp-multi-upfs-latest'
+ description: 'Docker image for spgwc. Leave empty to use default helm-charts value'
+
+ - string:
+ name: spgwuImage
+ default: 'omecproject/ngic-dp:central-cp-multi-upfs-latest-debug'
+ description: 'Docker image for spgwu. Leave empty to use default helm-charts value'
+
+ concurrent: false
+
+ pipeline-scm:
+ script-path: 'Jenkinsfile-omec-deploy.groovy'
+ scm:
+ - git:
+ url: 'https://github.com/{github-organization}/omec-project-ci'
+ branches:
+ - 'master'
+
+# OMEC test job
+- job-template:
+ id: 'omec-ng40-test'
+ name: 'omec_ng40-test_{pod}'
+ project-type: pipeline
+
+ description: |
+ <!-- Managed by Jenkins Job Builder -->
+ Created from job-template {id} from ci-management/jjb/omec-ci.yaml <br />
+
+ 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: '{build-timeout}'
+ jenkins-ssh-credential: '{jenkins-ssh-credential}'
+
+ parameters:
+ - string:
+ name: buildNode
+ default: '{build-node}'
+ description: 'Name of the Jenkins executor node to run the job on.'
+
+ - string:
+ name: ng40VM
+ default: '{ng40-vm}'
+ description: 'user@IP for accessing NG40 VM from the build node.'
+
+ - string:
+ name: ntlFile
+ default: 'run.ntl'
+ description: 'NG40 test automation file'
+
+ concurrent: false
+
+ pipeline-scm:
+ script-path: 'Jenkinsfile-omec-ng40-test.groovy'
+ scm:
+ - git:
+ url: 'https://github.com/{github-organization}/omec-project-ci'
+ branches:
+ - 'master'
diff --git a/jjb/pipeline/omec-postmerge.groovy b/jjb/pipeline/omec-postmerge.groovy
index bad532d..a03b469 100644
--- a/jjb/pipeline/omec-postmerge.groovy
+++ b/jjb/pipeline/omec-postmerge.groovy
@@ -80,7 +80,7 @@
echo "Using spgwu image: ${spgwu_image}"
}
- build job: "omec-deploy-dev", parameters: [
+ build job: "omec_deploy_dev", parameters: [
string(name: 'hssdbImage', value: "${hssdb_image.trim()}"),
string(name: 'hssImage', value: "${hss_image.trim()}"),
string(name: 'mmeImage', value: "${mme_image.trim()}"),
@@ -92,7 +92,7 @@
stage ("Run NG40 Tests"){
steps {
- build job: "omec-test-dev"
+ build job: "omec_ng40-test_dev"
}
}
}