summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Phelps <jphelps@linuxfoundation.org>2018-08-15 16:26:12 -0500
committerJessica Wagantall <jwagantall@linuxfoundation.org>2018-08-23 16:05:45 +0000
commit3cffa43d73a08aa10cc5c074e3fe1072fb7d9178 (patch)
treedab84cde0f5c004ff7dd32b5976fb12d07fd5fc1
parent3d649565fde368e72dfbf5adcf78c4e5c25efbd2 (diff)
Add helm-chart publishing script
Issue-ID: CIMAN-164 Change-Id: Iae6f765c2f8a7953a308f2ce81e79e4f633a1a2e Signed-off-by: Jeremy Phelps <jphelps@linuxfoundation.org>
-rw-r--r--jjb/global-templates-helm.yaml95
-rw-r--r--jjb/oom/oom-helm.yaml33
-rwxr-xr-xshell/publish_helm_charts.sh32
3 files changed, 125 insertions, 35 deletions
diff --git a/jjb/global-templates-helm.yaml b/jjb/global-templates-helm.yaml
index 038b35936..396a28d49 100644
--- a/jjb/global-templates-helm.yaml
+++ b/jjb/global-templates-helm.yaml
@@ -14,6 +14,7 @@
# default params for helm jobs
pre_build_script: ''
+ build_script: ''
post_build_script: ''
#####################
@@ -42,10 +43,14 @@
publishers:
- lf-infra-publish
-- helm_verify_boiler_plate: &helm_verify_boiler_plate
- name: helm_verify_boiler_plate
+#################
+# JOB TEMPLATES #
+#################
+- job-template:
+ name: '{project-name}-{stream}-verify-helm'
+ # Job template for helm verify jobs
- concurrent: true
+ <<: *helm_job_boiler_plate
scm:
- gerrit-trigger-scm:
@@ -60,9 +65,20 @@
project: '{project}'
branch: '{branch}'
files: '{files}'
+ - gerrit:
+ trigger-on:
+ - comment-added-contains-event:
+ comment-contains-value: '^verify-helm$'
+
+ builders:
+ - shell: '{obj:pre_build_script}'
+ - shell: '{obj:build_script}'
+
+- job-template:
+ name: '{project-name}-{stream}-merge-helm'
+ # Job template for Helm merge jobs
-- helm_merge_boiler_plate: &helm_merge_boiler_plate
- name: helm_merge_boiler_plate
+ <<: *helm_job_boiler_plate
scm:
- gerrit-trigger-scm:
@@ -78,43 +94,64 @@
files: '{files}'
- pollscm:
cron: ''
-
-#################
-# JOB TEMPLATES #
-#################
-- job-template:
- name: '{project-name}-{stream}-verify-helm'
- # Job template for helm verify jobs
-
- <<: *helm_job_boiler_plate
- # yamllint disable-line rule:key-duplicates
- <<: *helm_verify_boiler_plate
+ - gerrit:
+ trigger-on:
+ - comment-added-contains-event:
+ comment-contains-value: '^remerge-helm$'
builders:
- - shell: '{pre_build_script}'
- - shell: '{build_script}'
- - shell: '{post_build_script}'
+ - lf-provide-maven-settings:
+ global-settings-file: '{mvn-global-settings}'
+ settings-file: '{mvn-settings}'
+ - shell: '{obj:pre_build_script}'
+ - shell: '{obj:build_script}'
+ - lf-infra-create-netrc:
+ server-id: oom-helm
+ - inject:
+ properties-content: |
+ BUILD_TYPE=snapshot
+ - shell: '{obj:post_build_script}'
+ - lf-provide-maven-settings-cleanup
- job-template:
- name: '{project-name}-{stream}-merge-helm'
- # Job template for Helm merge jobs
+ name: '{project-name}-{stream}-stage-helm'
+ # Job template for Helm stage jobs
<<: *helm_job_boiler_plate
- # yamllint disable-line rule:key-duplicates
- <<: *helm_merge_boiler_plate
+
+ scm:
+ - gerrit-trigger-scm:
+ refspec: '$GERRIT_REFSPEC'
+ choosing-strategy: 'default'
+ submodule-recursive: '{submodule-recursive}'
+
+ triggers:
+ - pollscm:
+ cron: '0 22 * * *'
+ - gerrit:
+ trigger-on:
+ - comment-added-contains-event:
+ comment-contains-value: '^stage-helm$'
builders:
- - shell: '{pre_build_script}'
- - shell: '{build_script}'
- - shell: '{post_build_script}'
+ - lf-provide-maven-settings:
+ global-settings-file: '{mvn-global-settings}'
+ settings-file: '{mvn-settings}'
+ - shell: '{obj:pre_build_script}'
+ - shell: '{obj:build_script}'
+ - lf-infra-create-netrc:
+ server-id: oom-helm
+ - inject:
+ properties-content: |
+ BUILD_TYPE=staging
+ - shell: '{obj:post_build_script}'
+ - lf-provide-maven-settings-cleanup
- job-template:
name: '{project-name}-{subproject}-{stream}-verify-helm'
# Job template for helm verify jobs
<<: *helm_job_boiler_plate
- # yamllint disable-line rule:key-duplicates
- <<: *helm_verify_boiler_plate
builders:
- shell: '{pre_build_script}'
@@ -126,8 +163,6 @@
# Job template for helm merge jobs
<<: *helm_job_boiler_plate
- # yamllint disable-line rule:key-duplicates
- <<: *helm_merge_boiler_plate
builders:
- shell: '{pre_build_script}'
diff --git a/jjb/oom/oom-helm.yaml b/jjb/oom/oom-helm.yaml
index 11a9ac337..467c16681 100644
--- a/jjb/oom/oom-helm.yaml
+++ b/jjb/oom/oom-helm.yaml
@@ -4,9 +4,22 @@
project-name: oom
project: oom
mvn-settings: oom-settings
+ mvn-global-settings: global-settings
archive-artifacts: ''
build-node: ubuntu1604-helm-2c-1g
pre_build_script: !include-raw-escape: shell/helm-repo-init.sh
+ oom_build_script: |
+ #!/bin/bash
+ set -e -o pipefail
+ cd kubernetes/
+ make all
+ subproject_build_script: |
+ #!/bin/bash
+ cd kubernetes/
+ make common
+ make {subproject}'
+ oom_post_build_script: !include-raw-escape: shell/publish_helm_charts.sh
+
stream:
- 'master':
branch: 'master'
@@ -69,15 +82,25 @@
jobs:
- '{project-name}-{stream}-verify-helm':
- build_script: 'cd kubernetes/ && make all'
+ build_script: '{oom_build_script}'
files: '**'
- '{project-name}-{stream}-merge-helm':
- build_script: 'cd kubernetes/ && make all'
+ build_script: '{oom_build_script}'
+ post_build_script: !include-raw-escape: shell/publish_helm_charts.sh
+ files: '**'
+ - '{project-name}-{stream}-stage-helm':
+ build_script: '{oom_build_script}'
+ post_build_script: !include-raw-escape: shell/publish_helm_charts.sh
files: '**'
+
+ # Below jobs disabled until future need.
- '{project-name}-{subproject}-{stream}-verify-helm':
- build_script: 'cd kubernetes/ && make common && make {subproject}'
+ disabled: true
+ build_script: '{subproject_build_script}'
- '{project-name}-{subproject}-{stream}-merge-helm':
- build_script: 'cd kubernetes/ && make common && make {subproject}'
+ disabled: true
+ build_script: '{subproject_build_script}'
- '{project-name}-{stream}-update-helm-weekly':
+ disabled: true
+ build_script: '{oom_build_script}'
files: '**'
- build_script: 'cd kubernetes/ && make all'
diff --git a/shell/publish_helm_charts.sh b/shell/publish_helm_charts.sh
new file mode 100755
index 000000000..02a0c74ae
--- /dev/null
+++ b/shell/publish_helm_charts.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+
+set -e -o pipefail
+cd kubernetes/dist/packages/ || exit
+helm_charts=()
+while IFS= read -a line; do
+ helm_charts+=( "$line" )
+done < <( ls )
+
+for chart in "${helm_charts[@]}"; do
+ chart=$(echo "$chart" | xargs)
+ case "$BUILD_TYPE" in
+ 'snapshot')
+ echo "-n --upload-file $chart https://nexus.onap.org/content/sites/oom-helm-$BUILD_TYPE/$chart"
+ curl -n --upload-file "$chart" "https://nexus.onap.org/content/sites/oom-helm-$BUILD_TYPE/$chart"
+ curl -n --upload-file "$chart" "https://nexus.onap.org/content/sites/oom-helm-$BUILD_TYPE/$GIT_COMMIT/$chart"
+ ;;
+ 'staging')
+ curl -n --upload-file "$chart" "https://nexus.onap.org/content/sites/oom-helm-$BUILD_TYPE/$chart"
+ curl -n --upload-file "$chart" "https://nexus.onap.org/content/sites/oom-helm-$BUILD_TYPE/$GIT_COMMIT/$chart"
+ ;;
+ 'release')
+ echo "Release automation not implemented yet."
+ exit 1
+ ;;
+ *)
+ echo "You must set BUILD_TYPE to one of (snapshot, staging, release)."
+ exit 1
+ ;;
+ esac
+done
+cd ../../../