X-Git-Url: https://gerrit.akraino.org/r/gitweb?p=ci-management.git;a=blobdiff_plain;f=jjb%2Fakraino-templates%2Fakraino-jjb-templates.yaml;h=01210ac6252fb649ba7c3e1340b20d6a39a56885;hp=d0cd98794a14d2a7f77eb3af7eaeb63f5672153d;hb=0904fdd5e0e3b113ee90e77c646a7f156d878762;hpb=f0f4125d276da23f201e1ca0b940907689eef8a9 diff --git a/jjb/akraino-templates/akraino-jjb-templates.yaml b/jjb/akraino-templates/akraino-jjb-templates.yaml index d0cd987..01210ac 100644 --- a/jjb/akraino-templates/akraino-jjb-templates.yaml +++ b/jjb/akraino-templates/akraino-jjb-templates.yaml @@ -16,10 +16,70 @@ # - job-template: id: akraino-project-stream-release-config - name: '{project}-{stream}-release-config' + name: '{project-name}-{stream}-release-config' + + ###################### + # Default parameters # + ###################### + + archive-artifacts: > + **/*.log + **/hs_err_*.log + **/target/**/feature.xml + **/target/failsafe-reports/failsafe-summary.xml + **/target/surefire-reports/*-output.txt + build-days-to-keep: 30 + build-timeout: 60 + java-version: openjdk8 + maven-repo-url: '$NEXUS_URL/content/repositories/snapshots' + mvn-global-settings: global-settings + mvn-opts: '' + mvn-params: '' + mvn-version: mvn35 + nexus-shapshot-repo: snapshots + repo-id: snapshots + staging-profile-id: '' # Unused by this job. + stream: master + submodule-recursive: true + upload-files-dir: /tmp/tardir + + ##################### + # Job Configuration # + ##################### + project-type: freestyle node: '{build-node}' + 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-infra-maven-parameters: + mvn-opts: '{mvn-opts}' + mvn-params: '{mvn-params}' + mvn-version: '{mvn-version}' + # Staging repos do not make sense for CLM jobs so set it blank. + staging-profile-id: '{staging-profile-id}' + - string: + name: ARCHIVE_ARTIFACTS + default: '{archive-artifacts}' + description: Artifacts to archive to the logs server. + - string: + name: UPLOAD_FILES_PATH + default: '{upload-files-dir}' + description: File path to generate tarball and upload to repository. + + wrappers: + - lf-infra-wrappers: + build-timeout: '{build-timeout}' + jenkins-ssh-credential: '{jenkins-ssh-credential}' + gerrit_merge_triggers: - change-merged-event - comment-added-contains-event: @@ -29,6 +89,110 @@ - compare-type: REG_EXP pattern: '.*' + scm: + - lf-infra-gerrit-scm: + jenkins-ssh-credential: '{jenkins-ssh-credential}' + git-url: '{git-url}/{project}.git' + refspec: '{refspec}' + branch: '{branch}' + submodule-recursive: '{submodule-recursive}' + submodule-timeout: '{submodule-timeout}' + submodule-disable: false + 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}' + + builders: + - lf-infra-pre-build + - config-file-provider: + files: + - file-id: lftoolsini + target: "$HOME/.config/lftools/lftools.ini" + - file-id: sigul-config + variable: SIGUL_CONFIG + - file-id: sigul-password + variable: SIGUL_PASSWORD + - file-id: sigul-pki + variable: SIGUL_PKI + - file-id: signing-pubkey + variable: SIGNING_PUBKEY + - shell: !include-raw-escape: ../global-jjb/shell/sigul-configuration.sh + - shell: !include-raw-escape: ../global-jjb/shell/sigul-install.sh + - lf-maven-install: + mvn-version: '{mvn-version}' + - lf-update-java-alternatives: + java-version: '{java-version}' + - lf-provide-maven-settings: + global-settings-file: '{mvn-global-settings}' + settings-file: '{mvn-settings}' + - shell: !include-raw-escape: + - ../shell/make-tar.sh + - lf-infra-deploy-maven-file: + global-settings-file: '{mvn-global-settings}' + settings-file: '{mvn-settings}' + mvn-version: '{mvn-version}' + repo-id: '{repo-id}' + group-id: '{group-id}' + upload-files-dir: '{upload-files-dir}' + maven-repo-url: '{maven-repo-url}' + + publishers: + - lf-infra-publish + + +- job-template: + id: akraino-project-stream-stage-config + name: '{project-name}-{stream}-stage-config' + + ###################### + # Default parameters # + ###################### + + archive-artifacts: > + **/*.log + **/hs_err_*.log + **/target/**/feature.xml + **/target/failsafe-reports/failsafe-summary.xml + **/target/surefire-reports/*-output.txt + build-days-to-keep: 14 + build-timeout: 60 + cron: '@daily' + disable-job: false + git-url: '$GIT_URL/$PROJECT' + github-url: 'https://github.com' + java-version: openjdk8 + mvn-global-settings: global-settings + mvn-goals: clean deploy + mvn-opts: '' + mvn-params: '' + mvn-version: mvn35 + sign-artifacts: false + stream: master + submodule-recursive: true + upload-files-dir: m2repo # expected by "lftools deploy nexus-stage" + + ##################### + # Job Configuration # + ##################### + + project-type: freestyle + node: '{build-node}' + + properties: + - lf-infra-properties: + build-days-to-keep: '{build-days-to-keep}' + parameters: - lf-infra-parameters: project: '{project}' @@ -40,43 +204,213 @@ mvn-params: '{mvn-params}' mvn-version: '{mvn-version}' staging-profile-id: '{staging-profile-id}' + - string: + name: ARCHIVE_ARTIFACTS + default: '{archive-artifacts}' + description: Artifacts to archive to the logs server. + - string: + name: UPLOAD_FILES_PATH + default: '{upload-files-dir}' + description: File path to generate tarball and upload to repository. + - string: + name: STAGING_PROFILE_ID + default: '{staging-profile-id}' + description: Nexus staging profile ID. + - string: + name: STAGING_BUILD + default: 'true' + description: Mark this as a staging build. + + wrappers: + - lf-infra-wrappers: + build-timeout: '{build-timeout}' + jenkins-ssh-credential: '{jenkins-ssh-credential}' + + gerrit_release_triggers: + - comment-added-contains-event: + comment-contains-value: stage-release$ + + disabled: '{disable-job}' scm: - lf-infra-gerrit-scm: jenkins-ssh-credential: '{jenkins-ssh-credential}' - git-url: '{git-url}/{project}.git' - refspec: '{refspec}' - branch: '{branch}' + git-url: '{git-url}' + refspec: '$GERRIT_REFSPEC' + branch: '$GERRIT_BRANCH' submodule-recursive: '{submodule-recursive}' + submodule-timeout: '{submodule-timeout}' + submodule-disable: false choosing-strategy: default - nexus-shapshot-repo: snapshots + triggers: + - timed: '{obj:cron}' + - gerrit: + server-name: '{gerrit-server-name}' + trigger-on: '{obj:gerrit_release_triggers}' + projects: + - project-compare-type: ANT + project-pattern: '{project}' + branches: + - branch-compare-type: ANT + branch-pattern: '**/{branch}' + builders: + - lf-infra-pre-build + - config-file-provider: + files: + - file-id: lftoolsini + target: "$HOME/.config/lftools/lftools.ini" + - file-id: sigul-config + variable: SIGUL_CONFIG + - file-id: sigul-password + variable: SIGUL_PASSWORD + - file-id: sigul-pki + variable: SIGUL_PKI + - file-id: signing-pubkey + variable: SIGNING_PUBKEY + - shell: !include-raw-escape: ../global-jjb/shell/sigul-configuration.sh + - shell: !include-raw-escape: ../global-jjb/shell/sigul-install.sh + - lf-jacoco-nojava-workaround - lf-maven-install: mvn-version: '{mvn-version}' - lf-update-java-alternatives: java-version: '{java-version}' - lf-provide-maven-settings: - global-settings-file: '{global-settings-file}' + global-settings-file: '{mvn-global-settings}' settings-file: '{mvn-settings}' - lf-infra-create-netrc: server-id: '{mvn-staging-id}' - - inject: - properties-content: | - MAVEN_REPO_URL={maven-repo-url} - REPO_ID={repo-id} - GROUP_ID={group-id} - UPLOAD_FILES_PATH={upload-files-dir} - PROJECT={project} - shell: !include-raw-escape: - ../shell/make-tar.sh - - ../global-jjb/shell/common-variables.sh - - ../global-jjb/shell/lftools-install.sh - - ../global-jjb/shell/deploy-maven-file.sh + - lf-sigul-sign-dir: + sign-artifacts: '{sign-artifacts}' + sign-dir: '$WORKSPACE/m2repo' + sign-mode: serial + - lf-maven-stage - lf-provide-maven-settings-cleanup + publishers: + - lf-infra-publish + +- job-template: + id: akraino-project-stream-verify + name: '{project-name}-{stream}-verify' + archive-artifacts: > + **/*.log + build-days-to-keep: 30 + build-timeout: 60 + stream: master + project-type: freestyle + submodule-recursive: true + node: '{build-node}' + + properties: + - lf-infra-properties: + build-days-to-keep: '{build-days-to-keep}' + + parameters: + - lf-infra-parameters: + project: '{project}' + stream: '{stream}' + branch: '{branch}' + lftools-version: '{lftools-version}' + + - 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}' + + scm: + - lf-infra-gerrit-scm: + jenkins-ssh-credential: '{jenkins-ssh-credential}' + git-url: '{git-url}/{project}.git' + refspec: '$GERRIT_REFSPEC' + branch: '$GERRIT_BRANCH' + submodule-recursive: '{submodule-recursive}' + submodule-timeout: '{submodule-timeout}' + submodule-disable: false + choosing-strategy: 'gerrit' + + triggers: + - gerrit: + server-name: '{gerrit-server-name}' + trigger-on: + - patchset-created-event: + exclude-drafts: 'false' + exclude-trivial-rebase: 'false' + exclude-no-code-change: 'false' + - change-merged-event + - draft-published-event + - comment-added-contains-event: + comment-contains-value: 'recheck' + - comment-added-contains-event: + comment-contains-value: 'reverify' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: ANT + pattern: '**/*' + disable-strict-forbidden-file-verification: 'true' + forbidden-file-paths: + - compare-type: ANT + pattern: 'docs/**' + readable-message: true + + builders: + - shell: !include-raw-escape: + - ../shell/verify.sh + + publishers: + - lf-infra-publish + +- job-template: + id: akraino-project-build-node-init + name: '{project-name}-{build-node}-init' + disabled: '{obj:disabled}' + concurrent: true + + parameters: + - lf-infra-parameters: + project: '{project}' + stream: '{stream}' + branch: '{branch}' + - label: + name: '{build-node}' + default: '{build-node}' + node-eligibility: 'all' + all-nodes: true + + gerrit_merge_triggers: + - change-merged-event + - comment-added-contains-event: + comment-contains-value: remerge$ + + gerrit_trigger_file_paths: + - compare-type: REG_EXP + pattern: 'global-jjb' + + scm: + - lf-infra-gerrit-scm: + jenkins-ssh-credential: '{jenkins-ssh-credential}' + git-url: '{git-url}/{project}.git' + refspec: '$GERRIT_REFSPEC' + branch: '$GERRIT_BRANCH' + submodule-recursive: true + submodule-timeout: '{submodule-timeout}' + submodule-disable: false + choosing-strategy: default + triggers: - - timed: '{obj:cron}' - gerrit: server-name: '{gerrit-server-name}' trigger-on: '{obj:gerrit_merge_triggers}' @@ -87,3 +421,12 @@ - branch-compare-type: ANT branch-pattern: '**/{branch}' file-paths: '{obj:gerrit_trigger_file_paths}' + + builders: + - description-setter: + description: "POD: $NODE_NAME" + - shell: | + #!/bin/bash -ex + export SWAP_SIZE=0 + sudo -E ./global-jjb/jenkins-init-scripts/init.sh + sudo chown jenkins:jenkins -R archives