blob: 85bf48b7b6af94ca14b851cd56784b3221cfd177 [file] [log] [blame]
---
# omec-ci jobs
# Uses github pull request builder to trigger and Jenkinsfiles from this repo
# https://github.com/omec-project/omec-project-ci
# generic OMEC test-case jobs, shared by other projects and triggered within pipelines
- project:
name: omec
build-node: 'intel-102'
github_pr_auth_id: '64fe2b1a-b33a-4f13-8442-ad8360434003'
github_pr_org_list:
- 'omec-project'
jobs:
- 'omec-tc1'
- 'omec-tc2'
- 'omec-deploy-staging'
- 'omec-postmerge':
project: '{name}'
build-node: 'omec-ci'
c3po-branch-name: 'master'
ngic-branch-name: 'central-cp-multi-upfs'
nucleus-branch-name: 'master'
pipeline-file: 'omec-postmerge.groovy'
# for ngic-rtc
- project:
name: ngic-rtc
project: '{name}'
build-node: 'intel-102'
github-organization: 'omec-project'
github_pr_auth_id: '64fe2b1a-b33a-4f13-8442-ad8360434003'
github_pr_org_list:
- 'omec-project'
jobs:
- 'omec-combined':
pipeline-file: 'Jenkinsfile-omec-combined.groovy'
mme-repo: 'openmme'
- 'omec-install':
sub-project: '{name}'
branch: 'central-cp-multi-upfs'
pipeline-file: 'Jenkinsfile-omec-install-ngic-rtc-vnf.groovy'
- 'omec-fossa':
pipeline-file: 'omec-fossa-scan.groovy'
build-node: 'omec-qa'
- 'omec-reuse':
pipeline-file: 'omec-reuse-scan.groovy'
build-node: 'omec-qa'
- 'docker-publish-github':
build-timeout: 30
docker-repo: 'omecproject'
build-node: 'ubuntu16.04-basebuild-4c-8g'
- 'omec-comac-in-a-box':
build-node: 'comac_in_a_box'
# for c3po
- project:
name: c3po
project: '{name}'
build-node: 'intel-102'
github-organization: 'omec-project'
github_pr_auth_id: '64fe2b1a-b33a-4f13-8442-ad8360434003'
github_pr_org_list:
- 'omec-project'
jobs:
- 'omec-combined':
pipeline-file: 'Jenkinsfile-omec-combined.groovy'
mme-repo: 'openmme'
- 'omec-install':
sub-project: 'c3po-sgx'
branch: 'master'
pipeline-file: 'Jenkinsfile-omec-install-c3po-sgx-vnf.groovy'
- 'omec-install':
sub-project: 'c3po-hss'
branch: 'master'
pipeline-file: 'Jenkinsfile-omec-install-c3po-hss-vnf.groovy'
- 'omec-fossa':
pipeline-file: 'omec-fossa-scan.groovy'
build-node: 'omec-qa'
- 'omec-reuse':
pipeline-file: 'omec-reuse-scan.groovy'
build-node: 'omec-qa'
- 'docker-publish-github':
build-timeout: 30
docker-repo: 'omecproject'
build-node: 'ubuntu16.04-basebuild-8c-15g'
- 'omec-comac-in-a-box':
build-node: 'comac_in_a_box'
# for openmme
- project:
name: openmme
project: '{name}'
build-node: 'intel-102'
github-organization: 'omec-project'
github_pr_auth_id: '64fe2b1a-b33a-4f13-8442-ad8360434003'
github_pr_org_list:
- 'omec-project'
jobs:
- 'omec-combined':
pipeline-file: 'Jenkinsfile-omec-combined.groovy'
mme-repo: 'openmme'
- 'omec-install':
sub-project: '{name}'
branch: 'master'
pipeline-file: 'Jenkinsfile-omec-install-openmme-vnf.groovy'
- 'omec-fossa':
pipeline-file: 'omec-fossa-scan.groovy'
build-node: 'omec-qa'
- 'omec-reuse':
pipeline-file: 'omec-reuse-scan.groovy'
build-node: 'omec-qa'
- 'docker-publish-github':
build-timeout: 30
docker-repo: 'omecproject'
build-node: 'ubuntu16.04-basebuild-1c-2g'
- 'omec-comac-in-a-box':
build-node: 'comac_in_a_box'
# for nucleus
- project:
name: Nucleus
project: '{name}'
build-node: 'intel-102'
github-organization: 'omec-project'
github_pr_auth_id: '64fe2b1a-b33a-4f13-8442-ad8360434003'
github_pr_org_list:
- 'omec-project'
jobs:
- 'omec-combined':
pipeline-file: 'Jenkinsfile-omec-combined.groovy'
mme-repo: 'Nucleus'
- 'omec-install':
sub-project: '{name}'
branch: 'master'
pipeline-file: 'Jenkinsfile-omec-install-Nucleus-vnf.groovy'
- 'omec-fossa':
pipeline-file: 'omec-fossa-scan.groovy'
build-node: 'omec-qa'
- 'omec-reuse':
pipeline-file: 'omec-reuse-scan.groovy'
build-node: 'omec-qa'
- 'docker-publish-github':
build-timeout: 60
docker-repo: 'omecproject'
build-node: 'ubuntu16.04-basebuild-1c-2g'
- 'omec-comac-in-a-box':
build-node: 'comac_in_a_box'
# for freediameter
- project:
name: freediameter
project: '{name}'
build-node: 'intel-102'
github-organization: 'omec-project'
github_pr_auth_id: '64fe2b1a-b33a-4f13-8442-ad8360434003'
github_pr_org_list:
- 'omec-project'
jobs:
- 'omec-fossa':
pipeline-file: 'omec-fossa-scan.groovy'
build-node: 'omec-qa'
- 'omec-reuse':
pipeline-file: 'omec-reuse-scan.groovy'
build-node: 'omec-qa'
# for ignite
- project:
name: ignite
project: '{name}'
build-node: 'intel-102'
github-organization: 'omec-project'
github_pr_auth_id: '64fe2b1a-b33a-4f13-8442-ad8360434003'
github_pr_org_list:
- 'omec-project'
jobs:
- 'omec-fossa':
pipeline-file: 'omec-fossa-scan.groovy'
build-node: 'omec-qa'
- 'omec-reuse':
pipeline-file: 'omec-reuse-scan.groovy'
build-node: 'omec-qa'
# for upf-epc
- project:
name: upf-epc
project: '{name}'
github-organization: 'omec-project'
github_pr_auth_id: '64fe2b1a-b33a-4f13-8442-ad8360434003'
github_pr_org_list:
- 'omec-project'
jobs:
- 'omec-fossa':
pipeline-file: 'omec-fossa-scan.groovy'
build-node: 'omec-qa'
- 'omec-reuse':
pipeline-file: 'omec-reuse-scan.groovy'
build-node: 'omec-qa'
- 'docker-publish-github':
build-timeout: 30
docker-repo: 'omecproject'
build-node: 'ubuntu16.04-basebuild-2c-4g'
extraEnvironmentVars: CPU=haswell
# Combined pipeline
- job-template:
id: 'omec-combined'
name: 'omec_{project}_combined'
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_.*_combined"
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: project
default: '{project}'
description: 'Name of the project'
- string:
name: mmeRepo
default: '{mme-repo}'
description: 'Name of the MME repo to test (openmme/Nucleus)'
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 - Combined Steps Verification'
concurrent: false
pipeline-scm:
script-path: '{pipeline-file}'
scm:
- git:
url: 'https://github.com/{github-organization}/omec-project-ci'
branches:
- 'master'
# install jobs, run for each project
- job-template:
id: 'omec-install'
name: 'omec_{sub-project}_install'
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}'
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: project
default: '{project}'
description: 'Name of the project'
- string:
name: branch
default: '{branch}'
description: 'Branch of the project'
concurrent: false
pipeline-scm:
script-path: '{pipeline-file}'
scm:
- git:
url: 'https://github.com/{github-organization}/omec-project-ci'
branches:
- 'master'
# FOSSA License Scan
- job-template:
id: 'omec-fossa'
name: 'omec_{project}_fossa'
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}'
wrappers:
- lf-infra-wrappers:
build-timeout: '{build-timeout}'
jenkins-ssh-credential: '{jenkins-ssh-credential}'
parameters:
- string:
name: ghprbPullId
default: '$ghprbPullId'
description: 'Pull request number to fetch changes from. Leave blank to run manually.'
- string:
name: branch
default: '$ghprbTargetBranch'
description: 'Branch to run. Only used when manually run.'
- string:
name: buildNode
default: '{build-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: ghprbGhRepository
default: '{github-organization}/{project}'
description: 'Repository of the project.'
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 - FOSSA Verification'
concurrent: false
project-type: pipeline
dsl: !include-raw-escape: pipeline/{pipeline-file}
# REUSE License Scan
- job-template:
id: 'omec-reuse'
name: 'omec_{project}_reuse'
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}'
wrappers:
- lf-infra-wrappers:
build-timeout: '{build-timeout}'
jenkins-ssh-credential: '{jenkins-ssh-credential}'
parameters:
- string:
name: ghprbPullId
default: '$ghprbPullId'
description: 'Pull request number to fetch changes from. Leave blank to run manually.'
- string:
name: branch
default: '$ghprbTargetBranch'
description: 'Branch to run. Only used when manually run.'
- string:
name: buildNode
default: '{build-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: ghprbGhRepository
default: '{github-organization}/{project}'
description: 'Repository of the project.'
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 - Licenses Verification'
concurrent: false
project-type: pipeline
dsl: !include-raw-escape: pipeline/{pipeline-file}
# tests
- job-template:
id: 'omec-tc1'
name: 'omec_tc1'
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}'
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: mmeRepo
default: 'openmme'
description: 'Name of the MME repo to test (openmme/Nucleus)'
concurrent: false
pipeline-scm:
script-path: 'Jenkinsfile-omec-test-TC1.groovy'
scm:
- git:
url: 'https://github.com/omec-project/omec-project-ci'
branches:
- 'master'
- job-template:
id: 'omec-tc2'
name: 'omec_tc2'
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}'
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: mmeRepo
default: 'openmme'
description: 'Name of the MME repo to test (openmme/Nucleus)'
concurrent: false
pipeline-scm:
script-path: 'Jenkinsfile-omec-test-TC2.groovy'
scm:
- git:
url: 'https://github.com/omec-project/omec-project-ci'
branches:
- 'master'
# Deploy staging
- job-template:
id: 'omec-deploy-staging'
name: 'omec-deploy-staging'
project-type: pipeline
description: |
Automated build on AMI executor using pipeline/omec-deploy-staging.groovy. <br /><br />
Created from job-template {id} from ci-management/jjb/charts.yaml <br />
Created by Jeremy Ronquillo - jeremyr@opennetworking.org <br />
Copyright (c) 2020 Open Networking Foundation (ONF)
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: 'omec-staging'
description: 'Name of the Jenkins executor node to run the job on.'
- bool:
name: useProductionCluster
default: false
description: 'Check this option to use the production cluster instead of the staging cluster. <b>Use with caution.</b>'
- string:
name: registry
default: 'omecproject'
description: 'Registry for all images that will be changed.'
- string:
name: hssdb_tag
default: ''
description: 'Tag for hssdb. Leave hssdb tag blank to omit changing.'
- string:
name: hss_tag
default: ''
description: 'Tag for hss. Leave hss tag blank to omit changing.'
- string:
name: mme_tag
default: ''
description: 'Tag for mme. Leave mme tag blank to omit changing.'
- string:
name: mmeExporter_tag
default: ''
description: 'Tag for mmeExporter. Leave mmeExporter tag blank to omit changing.'
- string:
name: spgwc_tag
default: ''
description: 'Tag for spgwc. Leave spgwc tag blank to omit changing.'
- string:
name: spgwu_tag
default: ''
description: 'Tag for spgwu. Leave spgwu tag blank to omit changing.'
concurrent: false
dsl: !include-raw-escape: pipeline/omec-deploy-staging.groovy
# Post-merge job
# Triggered by Github pull request merge
- job-template:
id: omec-postmerge
name: '{project}_postmerge'
description: |
Created by {id} job-template from ci-management/jjb/omec-ci.yaml
properties:
- cord-infra-properties:
build-days-to-keep: '{build-days-to-keep}'
artifact-num-to-keep: '{artifact-num-to-keep}'
triggers:
- cord-infra-github-pr-trigger-merge:
project: '{project}'
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 node to run the job on'
- string:
name: registry
default: 'omecproject'
description: 'Docker registry to push images to'
- string:
name: repoName
default: ''
description: 'Name of the git repo. Populated by Generic Webhook Trigger'
- string:
name: repoUrl
default: ''
description: 'URL to the git repo. Populated by Generic Webhook Trigger'
- string:
name: branchName
default: ''
description: 'Branch of the project. Populated by Generic Webhook Trigger'
- string:
name: commitHash
default: ''
description: 'SHA string of the merged commit. Populated by Generic Webhook Trigger'
- string:
name: c3poBranchName
default: '{c3po-branch-name}'
description: 'Branch name of c3po repo which we run tests against'
- string:
name: ngicBranchName
default: '{ngic-branch-name}'
description: 'Branch name of ngic-rtc repo which we run tests against'
- string:
name: nucleusBranchName
default: '{nucleus-branch-name}'
description: 'Branch name of Nucleus repo which we run tests against'
- string:
name: maintainers
default: 'jeremyr@opennetworking.org, you@opennetworking.org'
description: "The person that sould be notified if this job fails"
project-type: pipeline
concurrent: false
dsl: !include-raw-escape: pipeline/{pipeline-file}