:build-node: The node to run build on.
:jenkins-ssh-credential: Credential to use for SSH.
(Configure in defaults.yaml)
+ :mvn-settings: The name of settings file containing credentials for the project.
:nexus-group-id: The Maven style Group ID for the namespace of the project
in Nexus.
:staging-profile-id: The unique Nexus Staging Profile ID for the project.
:install-prefix: CMAKE_INSTALL_PREFIX to use for install.
(default: $BUILD_DIR/output)
:make-opts: Parameters to pass to make. (default: '')
+ :mvn-global-settings: The name of the Maven global settings to use for
+ Maven configuration. (default: global-settings)
:pre-build: Shell script to run before performing build. Useful for
setting up dependencies. (default: '')
:stream: Keyword that to represent a release code-name.
CMake Verify
------------
-Verify job which runs cmake && make && make install to test a project build..
+Verify job which runs cmake && make && make install to test a project build.
:Template Names:
---
+####################
+# COMMON FUNCTIONS #
+####################
+
+- lf_cmake_common: &lf_cmake_common
+ name: lf-cmake-common
+
+ #####################
+ # 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}"
+ - lf-cmake-parameters:
+ build-dir: "{build-dir}"
+ cmake-opts: "{cmake-opts}"
+ install-prefix: "{install-prefix}"
+ make-opts: "{make-opts}"
+
+ wrappers:
+ - lf-infra-wrappers:
+ build-timeout: "{build-timeout}"
+ jenkins-ssh-credential: "{jenkins-ssh-credential}"
+
+ publishers:
+ - lf-infra-publish
+
###############
# CMAKE SONAR #
###############
submodule-timeout: 10
submodule-disable: false
- #####################
- # 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}"
- lftools-version: "{lftools-version}"
- - lf-cmake-parameters:
- build-dir: "{build-dir}"
- cmake-opts: "{cmake-opts}"
- install-prefix: "{install-prefix}"
- make-opts: "{make-opts}"
-
- wrappers:
- - lf-infra-wrappers:
- build-timeout: "{build-timeout}"
- jenkins-ssh-credential: "{jenkins-ssh-credential}"
-
builders:
- lf-infra-pre-build
- shell: "{pre-build}"
- shell: !include-raw-escape: ../shell/cmake-sonar.sh
- lf-provide-maven-settings-cleanup
- publishers:
- - lf-infra-publish
-
- job-template:
name: "{project-name}-cmake-sonar"
id: gerrit-cmake-sonar
concurrent: false
+ <<: *lf_cmake_common
<<: *lf_cmake_sonar
scm:
name: "{project-name}-cmake-sonar"
id: github-cmake-sonar
concurrent: false
+ <<: *lf_cmake_common
<<: *lf_cmake_sonar
properties:
sonar-properties: ""
sonar-task: ""
- #####################
- # Job Configuration #
- #####################
-
- project-type: freestyle
- node: "{build-node}"
- disabled: "{disable-job}"
-
- properties:
- - lf-infra-properties:
- build-days-to-keep: "{build-days-to-keep}"
-
- wrappers:
- - lf-infra-wrappers:
- build-timeout: "{build-timeout}"
- jenkins-ssh-credential: "{jenkins-ssh-credential}"
-
parameters:
- lf-infra-parameters:
project: "{project}"
sonar-java-opts: "{sonar-java-opts}"
sonar-additional-args: "{sonar-additional-args}"
- publishers:
- - lf-infra-publish
-
- job-template:
name: "{project-name}-cmake-sonarqube"
id: gerrit-cmake-sonarqube
concurrent: false
+ <<: *lf_cmake_common
<<: *lf_cmake_sonarqube
- ######################
- # Default parameters #
- ######################
-
gerrit_sonar_triggers:
- comment-added-contains-event:
comment-contains-value: '^Patch Set\s+\d+:\s+run-sonar\s*$'
name: "{project-name}-cmake-sonarqube"
id: github-cmake-sonarqube
concurrent: false
+ <<: *lf_cmake_common
<<: *lf_cmake_sonarqube
scm:
submodule-disable: false
version: ""
- #####################
- # 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}"
| awk '{{print $NF}}' | awk -F')' '{{print $1}}')"
echo "${{MAJOR_VERSION}}.${{MINOR_VERSION}}.${{PATCH_VERSION}}" > /tmp/artifact_version
- wrappers:
- - lf-infra-wrappers:
- build-timeout: "{build-timeout}"
- jenkins-ssh-credential: "{jenkins-ssh-credential}"
-
builders:
- lf-infra-pre-build
- lf-provide-maven-settings:
- shell: !include-raw-escape: ../shell/cmake-stage.sh
- lf-provide-maven-settings-cleanup
- publishers:
- - lf-infra-publish
-
- job-template:
name: "{project-name}-cmake-stage-{stream}"
id: gerrit-cmake-stage
concurrent: true
+ <<: *lf_cmake_common
<<: *lf_cmake_stage
scm:
name: "{project-name}-cmake-stage-{stream}"
id: github-cmake-stage
concurrent: true
+ <<: *lf_cmake_common
<<: *lf_cmake_stage
properties:
github_included_regions:
- ".*"
- #####################
- # 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}"
- - lf-cmake-parameters:
- build-dir: "{build-dir}"
- cmake-opts: "{cmake-opts}"
- install-prefix: "{install-prefix}"
- make-opts: "{make-opts}"
-
- wrappers:
- - lf-infra-wrappers:
- build-timeout: "{build-timeout}"
- jenkins-ssh-credential: "{jenkins-ssh-credential}"
-
builders:
- shell: "{pre-build}"
- shell: !include-raw-escape: ../shell/cmake-build.sh
- publishers:
- - lf-infra-publish
-
- job-template:
name: "{project-name}-cmake-verify-{stream}"
id: gerrit-cmake-verify
concurrent: true
+ <<: *lf_cmake_common
<<: *lf_cmake_verify
scm:
name: "{project-name}-cmake-verify-{stream}"
id: github-cmake-verify
concurrent: true
+ <<: *lf_cmake_common
<<: *lf_cmake_verify
properties: