blob: f5f3878ca85dc224662a859411189c41752a235a [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}"