--- ############### # CMAKE STAGE # ############### - lf_cmake_stage: &lf_cmake_stage name: lf-cmake-stage ###################### # Default parameters # ###################### branch: master build-days-to-keep: 7 build-dir: '$WORKSPACE/target' build-timeout: 15 cmake-opts: '' cron: '@daily' disable-job: false git-url: '$GIT_URL/$PROJECT' github-url: 'https://github.com' install-prefix: '$BUILD_DIR/output' make-opts: '' mvn-global-settings: global-settings pre-build: '' stream: master submodule-recursive: true 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}' 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}' - string: name: NEXUS_GROUP_ID default: '{nexus-group-id}' description: 'Project Group ID in Nexus to upload to.' - string: name: STAGING_PROFILE_ID default: '{staging-profile-id}' description: 'Nexus staging profile ID.' - string: name: VERSION default: '{version}' description: | (default: '') Project version to stage release as. There are 2 methods for using this value: 1) Defined explicitly here. 2) Leave this value blank and set /tmp/artifact_version Use method 2 in conjunction with 'pre-build' configuration to generate the artifact_version automatically from files in the project's repository. For example with pre-build script: #!/bin/bash MAJOR_VERSION="$(grep 'set(OCIO_VERSION_MAJOR' CMakeLists.txt \ | awk '{{print $NF}}' | awk -F')' '{{print $1}}')" MINOR_VERSION="$(grep 'set(OCIO_VERSION_MINOR' CMakeLists.txt \ | awk '{{print $NF}}' | awk -F')' '{{print $1}}')" PATCH_VERSION="$(grep 'set(OCIO_VERSION_PATCH' CMakeLists.txt \ | 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: - shell: !include-raw-escape: ../shell/lftools-install.sh - lf-provide-maven-settings: global-settings-file: '{mvn-global-settings}' settings-file: '{mvn-settings}' - lf-infra-create-netrc: server-id: staging - shell: '{pre-build}' - shell: !include-raw-escape: ../shell/cmake-build.sh - 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_stage scm: - lf-infra-gerrit-scm: branch: '$GERRIT_BRANCH' jenkins-ssh-credential: '{jenkins-ssh-credential}' git-url: '{git-url}' refspec: '$GERRIT_REFSPEC' submodule-recursive: '{submodule-recursive}' choosing-strategy: gerrit triggers: - timed: '{obj:cron}' - gerrit: server-name: '{gerrit-server-name}' trigger-on: - comment-added-contains-event: comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(stage-release)$' projects: - project-compare-type: 'ANT' project-pattern: '{project}' branches: - branch-compare-type: 'ANT' branch-pattern: '**/{branch}' - job-template: name: '{project-name}-cmake-stage-{stream}' id: github-cmake-stage concurrent: true <<: *lf_cmake_stage properties: - lf-infra-properties: build-days-to-keep: '{build-days-to-keep}' - github: url: '{github-url}/{github-org}/{project}' scm: - lf-infra-github-scm: url: '{git-clone-url}{github-org}/{project}' refspec: '+refs/pull/*:refs/remotes/origin/pr/*' branch: '$sha1' submodule-recursive: '{submodule-recursive}' choosing-strategy: default jenkins-ssh-credential: '{jenkins-ssh-credential}' triggers: - timed: '{obj:cron}' - github-pull-request: trigger-phrase: '^(stage-release)$' only-trigger-phrase: true status-context: 'CMake Stage' permit-all: true github-hooks: true white-list-target-branches: - '{branch}' ################ # CMAKE VERIFY # ################ - lf_cmake_verify: &lf_cmake_verify name: lf-cmake-verify ###################### # Default parameters # ###################### branch: master build-days-to-keep: 7 build-dir: '$WORKSPACE/target' build-timeout: 15 cmake-opts: '' disable-job: false git-url: '$GIT_URL/$PROJECT' github-url: 'https://github.com' install-prefix: '$BUILD_DIR/output' make-opts: '' pre-build: '' stream: master submodule-recursive: true 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[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$' gerrit_trigger_file_paths: - compare-type: REG_EXP pattern: '.*' # github_included_regions MUST match gerrit_trigger_file_paths 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}' 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: - 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_verify scm: - lf-infra-gerrit-scm: branch: '$GERRIT_BRANCH' jenkins-ssh-credential: '{jenkins-ssh-credential}' git-url: '{git-url}' refspec: '$GERRIT_REFSPEC' submodule-recursive: '{submodule-recursive}' choosing-strategy: gerrit triggers: - 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}' - job-template: name: '{project-name}-cmake-verify-{stream}' id: github-cmake-verify concurrent: true <<: *lf_cmake_verify properties: - lf-infra-properties: build-days-to-keep: '{build-days-to-keep}' - github: url: '{github-url}/{github-org}/{project}' scm: - lf-infra-github-scm: url: '{git-clone-url}{github-org}/{project}' refspec: '+refs/pull/*:refs/remotes/origin/pr/*' branch: '$sha1' submodule-recursive: '{submodule-recursive}' choosing-strategy: default jenkins-ssh-credential: '{jenkins-ssh-credential}' triggers: - github-pull-request: trigger-phrase: '^(recheck|reverify)$' only-trigger-phrase: false status-context: 'CMake Verify' permit-all: true github-hooks: true included-regions: '{obj:github_included_regions}' white-list-target-branches: - '{branch}'