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=b0c4d3e4e66c233eb49ae25071993a50fde9bdcb;hp=d0cd98794a14d2a7f77eb3af7eaeb63f5672153d;hb=HEAD;hpb=7470dbac0683a33bf7a8478147e832159445a031 diff --git a/jjb/akraino-templates/akraino-jjb-templates.yaml b/jjb/akraino-templates/akraino-jjb-templates.yaml index d0cd987..b0c4d3e 100644 --- a/jjb/akraino-templates/akraino-jjb-templates.yaml +++ b/jjb/akraino-templates/akraino-jjb-templates.yaml @@ -16,9 +16,69 @@ # - 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}' + 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 @@ -27,63 +87,324 @@ gerrit_trigger_file_paths: - compare-type: REG_EXP - pattern: '.*' + 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 + - 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}' - branch: '{branch}' - stream: '{stream}' - lftools-version: '{lftools-version}' + 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-profile-id: '{staging-profile-id}' + mvn-opts: "{mvn-opts}" + 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}' - submodule-recursive: '{submodule-recursive}' + 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: 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 + - lf-jacoco-nojava-workaround - lf-maven-install: - mvn-version: '{mvn-version}' + mvn-version: "{mvn-version}" - lf-update-java-alternatives: - java-version: '{java-version}' + java-version: "{java-version}" - lf-provide-maven-settings: - global-settings-file: '{global-settings-file}' - settings-file: '{mvn-settings}' + 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} + server-id: "{mvn-staging-id}" - 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: + mvn-global-settings: "global-settings" + mvn-settings: "" + mvn-staging-id: "" - 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" + # disable_job: false + disabled: "{obj:disable_job}" + 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}' + server-name: "{gerrit-server-name}" + trigger-on: "{obj:gerrit_merge_triggers}" projects: - project-compare-type: ANT - project-pattern: '{project}' + project-pattern: "{project}" branches: - branch-compare-type: ANT - branch-pattern: '**/{branch}' - file-paths: '{obj:gerrit_trigger_file_paths}' + 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 + + publishers: + - lf-infra-publish