blob: f4a236c91e1eabef533491451dfb6c68a06175f0 [file] [log] [blame]
# Copyright (c) 2019 AT&T Intellectual Property.
#
# Licensed under the Apache License, Version 2.0 (the 'License');
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an 'AS IS' BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
---
- oran_shell_common: &oran_shell_common
name: oran-shell-common
######################
# Default parameters #
######################
archive-artifacts: >
**/*.log
branch: master
build-days-to-keep: 30
build-timeout: 15
cron: ''
concurrent: false
disable-job: false
gerrit-skip-vote: false
git-url: '$GIT_URL/$GERRIT_PROJECT'
mvn-global-settings: global-settings
stream: master
submodule-disable: false
submodule-recursive: true
submodule-timeout: 10
gerrit_trigger_file_paths:
- compare-type: REG_EXP
pattern: '.*'
#####################
# Job Configuration #
#####################
project-type: freestyle
node: '{build-node}'
disabled: '{disable-job}'
properties:
- lf-infra-properties:
build-days-to-keep: '{build-days-to-keep}'
parameters:
- lf-infra-parameters:
project: '{project}'
branch: '{branch}'
stream: '{stream}'
- string:
name: ARCHIVE_ARTIFACTS
default: '{archive-artifacts}'
description: Artifacts to archive to the logs server.
wrappers:
- lf-infra-wrappers:
build-timeout: '{build-timeout}'
jenkins-ssh-credential: '{jenkins-ssh-credential}'
builders:
- lf-infra-pre-build
- lf-provide-maven-settings:
global-settings-file: "{mvn-global-settings}"
settings-file: "{mvn-settings}"
- lf-infra-create-netrc:
server-id: "{mvn-site-id}"
- shell: '{script}'
- lf-provide-maven-settings-cleanup
publishers:
- lf-infra-publish
# Verify gerrit changeset by shell script.
# Runs on changeset branch to verify new commits; can be run on any branch.
#
# Required parameters:
# build-node: label (flavor) of jenkins build minion
# project: git repository
# project-name: Jenkins job name prefix
# script: shell script to execute
# Optional parameters:
# branch: git branch pattern, defaults to master
# stream: friendly stream name (often same as branch), defaults to master
- job-template:
name: '{project-name}-shell-verify-{stream}'
id: oran-shell-verify
<<: *oran_shell_common
gerrit_verify_triggers:
- patchset-created-event:
exclude-drafts: true
exclude-trivial-rebase: false
exclude-no-code-change: false
- draft-published-event
- comment-added-contains-event:
comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
scm:
- lf-infra-gerrit-scm:
jenkins-ssh-credential: '{jenkins-ssh-credential}'
git-url: '{git-url}'
refspec: '$GERRIT_REFSPEC'
branch: '$GERRIT_BRANCH'
submodule-recursive: '{submodule-recursive}'
submodule-timeout: '{submodule-timeout}'
submodule-disable: '{submodule-disable}'
choosing-strategy: gerrit
triggers:
- timed: '{obj:cron}'
- gerrit:
server-name: '{gerrit-server-name}'
trigger-on: '{obj:gerrit_verify_triggers}'
projects:
- project-compare-type: ANT
project-pattern: '{project}'
branches:
- branch-compare-type: ANT
branch-pattern: '**/{branch}'
file-paths: '{obj:gerrit_trigger_file_paths}'
skip-vote:
successful: '{gerrit-skip-vote}'
failed: '{gerrit-skip-vote}'
unstable: '{gerrit-skip-vote}'
notbuilt: '{gerrit-skip-vote}'
# Build from gerrit by shell script.
# Triggered automatically by merge; can be run on any branch.
#
# Required parameters:
# build-node: label (flavor) of jenkins build minion
# project: git repository
# project-name: Jenkins job name prefix
# script: shell script to execute
# Optional parameters:
# branch: git branch pattern, defaults to master
# stream: friendly stream name (often same as branch), defaults to master
- job-template:
name: '{project-name}-shell-merge-{stream}'
id: oran-shell-merge
<<: *oran_shell_common
gerrit_merge_triggers:
- change-merged-event
- comment-added-contains-event:
comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
scm:
- lf-infra-gerrit-scm:
jenkins-ssh-credential: '{jenkins-ssh-credential}'
git-url: '{git-url}'
refspec: '$GERRIT_REFSPEC'
branch: '$GERRIT_BRANCH'
submodule-recursive: '{submodule-recursive}'
submodule-timeout: '{submodule-timeout}'
submodule-disable: '{submodule-disable}'
choosing-strategy: default
triggers:
- timed: '{obj:cron}'
- gerrit:
server-name: '{gerrit-server-name}'
trigger-on: '{obj:gerrit_merge_triggers}'
projects:
- project-compare-type: ANT
project-pattern: '{project}'
branches:
- branch-compare-type: ANT
branch-pattern: '**/{branch}'
file-paths: '{obj:gerrit_trigger_file_paths}'
# Build and publish artifact from gerrit by shell script.
# Triggered automatically by merging specific release file;
# can be run on any branch.
#
# Required parameters:
# build-node: label (flavor) of jenkins build minion
# project: git repository
# project-name: Jenkins job name prefix
# script: shell script to execute
# Optional parameters:
# branch: git branch pattern, defaults to master
# stream: friendly stream name (often same as branch), defaults to master
# gerrit_release_file_paths: Pathname pattern of the release file to trigger this job
- job-template:
name: '{project-name}-shell-release-{stream}'
id: oran-shell-release
<<: *oran_shell_common
gerrit_release_file_paths:
- compare-type: REG_EXP
pattern: 'releases\/oran-shell-release.*\.yaml'
scm:
- lf-infra-gerrit-scm:
jenkins-ssh-credential: '{jenkins-ssh-credential}'
git-url: '{git-url}'
refspec: '$GERRIT_REFSPEC'
branch: '$GERRIT_BRANCH'
submodule-recursive: '{submodule-recursive}'
submodule-timeout: '{submodule-timeout}'
submodule-disable: '{submodule-disable}'
choosing-strategy: default
triggers:
- gerrit:
server-name: '{gerrit-server-name}'
trigger-on:
- change-merged-event
projects:
- project-compare-type: ANT
project-pattern: '{project}'
branches:
- branch-compare-type: ANT
branch-pattern: '**/{branch}'
file-paths: '{obj:gerrit_release_file_paths}'