diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..0e18f40 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,8 @@ +sudo: required +dist: xenial # ubuntu 16.04 distro +script: + # runs only when PR is merged + - make versionmaker +after_success: + # runs only when PR is merged and push the version file to master version + - if [[ $TRAVIS_PULL_REQUEST == 'false' ]]; then make push; fi diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..6398425 --- /dev/null +++ b/Makefile @@ -0,0 +1,12 @@ +# Makefile for building Chaos Exporter +# Reference Guide - https://www.gnu.org/software/make/manual/make.html + +.PHONY: versionmaker +versionmaker: + @echo "-----version maker-----" + bash ./scripts/version_maker.sh + +.PHONY: push +push: + @echo "---------git push to master-------" + bash ./scripts/push.sh \ No newline at end of file diff --git a/charts/kubernetes/kubernetes.chartserviceversion.yaml b/charts/kubernetes/kubernetes.chartserviceversion.yaml index 4cf9b95..f213cb0 100644 --- a/charts/kubernetes/kubernetes.chartserviceversion.yaml +++ b/charts/kubernetes/kubernetes.chartserviceversion.yaml @@ -20,7 +20,7 @@ spec: keywords: - Kubernetes - Container - version: v0.1.0 + version: 0.1.0 maturity: alpha maintainers: - name: ksatchit diff --git a/charts/kubernetes/network/experiments/k8s_nw_all_exp_crd.yaml b/charts/kubernetes/network/experiments/k8s_nw_all_exp_crd.yaml index 17ddcd8..1b55efe 100644 --- a/charts/kubernetes/network/experiments/k8s_nw_all_exp_crd.yaml +++ b/charts/kubernetes/network/experiments/k8s_nw_all_exp_crd.yaml @@ -6,7 +6,7 @@ description: kind: ChaosExperiment metadata: name: kubernetes-network-pod-nw-delay-v0.1.0 - version: v0.1.0 + version: 0.1.0 spec: definition: args: diff --git a/charts/kubernetes/network/experiments/pod-nw-delay-exp.version.yaml b/charts/kubernetes/network/experiments/pod-nw-delay-exp.version.yaml index d94fcda..3ceabb9 100644 --- a/charts/kubernetes/network/experiments/pod-nw-delay-exp.version.yaml +++ b/charts/kubernetes/network/experiments/pod-nw-delay-exp.version.yaml @@ -5,7 +5,7 @@ description: kind: ChaosExperiment metadata: name: kubernetes-network-pod-nw-delay-v0.1.0 - version: v0.1.0 + version: 0.1.0 spec: definition: args: diff --git a/charts/kubernetes/network/network.chartserviceversion.yaml b/charts/kubernetes/network/network.chartserviceversion.yaml index 44ccc38..3fbe8fa 100644 --- a/charts/kubernetes/network/network.chartserviceversion.yaml +++ b/charts/kubernetes/network/network.chartserviceversion.yaml @@ -16,7 +16,7 @@ spec: keywords: - Kubernetes - Network - version: v0.1.0 + version: 0.1.0 maturity: alpha maintainers: - name: ksatchit diff --git a/charts/kubernetes/state/experiments/container-kill-exp.version.yaml b/charts/kubernetes/state/experiments/container-kill-exp.version.yaml index ccc9582..02324fa 100644 --- a/charts/kubernetes/state/experiments/container-kill-exp.version.yaml +++ b/charts/kubernetes/state/experiments/container-kill-exp.version.yaml @@ -4,7 +4,7 @@ description: kind: ChaosExperiment metadata: name: kubernetes-state-container-kill-v0.1.0 - version: v0.1.0 + version: 0.1.0 spec: definition: args: diff --git a/charts/kubernetes/state/experiments/k8s_state_all_exp_crd.yaml b/charts/kubernetes/state/experiments/k8s_state_all_exp_crd.yaml index 3f9808c..d50bf49 100644 --- a/charts/kubernetes/state/experiments/k8s_state_all_exp_crd.yaml +++ b/charts/kubernetes/state/experiments/k8s_state_all_exp_crd.yaml @@ -6,7 +6,7 @@ description: kind: ChaosExperiment metadata: name: kubernetes-state-pod-delete-v0.1.0 - version: v0.1.0 + version: 0.1.0 spec: definition: args: @@ -35,7 +35,7 @@ description: kind: ChaosExperiment metadata: name: kubernetes-state-container-kill-v0.1.0 - version: v0.1.0 + version: 0.1.0 spec: definition: args: diff --git a/charts/kubernetes/state/experiments/pod-delete-exp.version.yaml b/charts/kubernetes/state/experiments/pod-delete-exp.version.yaml index 76c3356..23257b3 100644 --- a/charts/kubernetes/state/experiments/pod-delete-exp.version.yaml +++ b/charts/kubernetes/state/experiments/pod-delete-exp.version.yaml @@ -5,7 +5,7 @@ description: kind: ChaosExperiment metadata: name: kubernetes-state-pod-delete-v0.1.0 - version: v0.1.0 + version: 0.1.0 spec: definition: args: diff --git a/charts/kubernetes/state/state.chartserviceversion.yaml b/charts/kubernetes/state/state.chartserviceversion.yaml index 0a7c59b..d70924b 100644 --- a/charts/kubernetes/state/state.chartserviceversion.yaml +++ b/charts/kubernetes/state/state.chartserviceversion.yaml @@ -17,7 +17,7 @@ spec: keywords: - Kubernetes - State - version: v0.1.0 + version: 0.1.0 maturity: alpha maintainers: - name: ksatchit diff --git a/charts/openebs/experiments/openebs_all_exp_crd.yaml b/charts/openebs/experiments/openebs_all_exp_crd.yaml index cd39d9f..1431de4 100644 --- a/charts/openebs/experiments/openebs_all_exp_crd.yaml +++ b/charts/openebs/experiments/openebs_all_exp_crd.yaml @@ -6,7 +6,7 @@ description: kind: ChaosExperiment metadata: name: kubernetes-state-pod-delete-v0.1.0 - version: v0.1.0 + version: 0.1.0 spec: definition: args: diff --git a/charts/openebs/network/network.chartserviceversion.yaml b/charts/openebs/network/network.chartserviceversion.yaml index 0c42374..9ed2b56 100644 --- a/charts/openebs/network/network.chartserviceversion.yaml +++ b/charts/openebs/network/network.chartserviceversion.yaml @@ -1,7 +1,7 @@ apiVersion: litmuchaos.io/v1alpha1 kind: ChartServiceVersion metadata: - name: openebs-network-v0.1.0 + name: openebs-network-v0.1.0 annotations: categories: "OpenEBS" vendor: "CNCF" @@ -16,7 +16,7 @@ spec: - Kubernetes - Network - OpenEBS - version: v0.1.0 + version: 0.1.0 maturity: alpha maintainers: - name: ksatchit diff --git a/charts/openebs/openebs.chartserviceversion.yaml b/charts/openebs/openebs.chartserviceversion.yaml index 5254d90..da97dda 100644 --- a/charts/openebs/openebs.chartserviceversion.yaml +++ b/charts/openebs/openebs.chartserviceversion.yaml @@ -22,7 +22,7 @@ spec: - OpenEBS - CAS - Storage - version: v0.1.0 + version: 0.1.0 maturity: alpha maintainers: - name: ksatchit diff --git a/charts/openebs/state/experiments/openebs_state_all_exp_crd.yaml b/charts/openebs/state/experiments/openebs_state_all_exp_crd.yaml index 4ffc767..3eafc27 100644 --- a/charts/openebs/state/experiments/openebs_state_all_exp_crd.yaml +++ b/charts/openebs/state/experiments/openebs_state_all_exp_crd.yaml @@ -6,7 +6,7 @@ description: kind: ChaosExperiment metadata: name: kubernetes-state-pod-delete-v0.1.0 - version: v0.1.0 + version: 0.1.0 spec: definition: args: diff --git a/charts/openebs/state/experiments/pod-delete-exp.version.yaml b/charts/openebs/state/experiments/pod-delete-exp.version.yaml index 76c3356..23257b3 100644 --- a/charts/openebs/state/experiments/pod-delete-exp.version.yaml +++ b/charts/openebs/state/experiments/pod-delete-exp.version.yaml @@ -5,7 +5,7 @@ description: kind: ChaosExperiment metadata: name: kubernetes-state-pod-delete-v0.1.0 - version: v0.1.0 + version: 0.1.0 spec: definition: args: diff --git a/charts/openebs/state/state.chartserviceversion.yaml b/charts/openebs/state/state.chartserviceversion.yaml index 2a4b463..f51e058 100644 --- a/charts/openebs/state/state.chartserviceversion.yaml +++ b/charts/openebs/state/state.chartserviceversion.yaml @@ -18,7 +18,7 @@ spec: - Kubernetes - State - OpenEBS - version: v0.1.0 + version: 0.1.0 maturity: alpha maintainers: - name: ksatchit diff --git a/scripts/push.sh b/scripts/push.sh new file mode 100644 index 0000000..1f5322c --- /dev/null +++ b/scripts/push.sh @@ -0,0 +1,24 @@ +#!/bin/sh + +setup_git() { + git config --global user.email "travis@travis-ci.org" + git config --global user.name "Travis CI" + git remote set-url origin https://${GITHUB_TOKEN}@github.com/litmuschaos/community-charts.git > /dev/null 2>&1 +} + +commit_updated_changes() { + git checkout master + git status + git add . + git commit --message " $TRAVIS_BUILD_NUMBER: version upgraded for chaos-charts" + git status +} + +upload_files() { + git remote -v + git push origin master +} + +setup_git +commit_website_files +upload_files diff --git a/scripts/validate_version.py b/scripts/validate_version.py new file mode 100644 index 0000000..4f94743 --- /dev/null +++ b/scripts/validate_version.py @@ -0,0 +1,13 @@ +import re +import sys + +# semantic version regex +regex = "^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$" +result = re.search(regex, sys.argv[1]) + +if result: + print("version validation successful") + sys.exit(0) # on success +else: + print("version validation failed") + sys.exit(1) #on failure \ No newline at end of file diff --git a/scripts/version_maker.sh b/scripts/version_maker.sh new file mode 100644 index 0000000..516d321 --- /dev/null +++ b/scripts/version_maker.sh @@ -0,0 +1,80 @@ +#! /bin/bash + +# parsing yaml file +function yaml() { + local prefix=$2 + local s='[[:space:]]*' w='[a-zA-Z0-9_]*' fs=$(echo @|tr @ '\034') + sed -ne "s|^\($s\):|\1|" \ + -e "s|^\($s\)\($w\)$s:$s[\"']\(.*\)[\"']$s\$|\1$fs\2$fs\3|p" \ + -e "s|^\($s\)\($w\)$s:$s\(.*\)$s\$|\1$fs\2$fs\3|p" $1 | + awk -F$fs '{ + indent = length($1)/2; + vname[indent] = $2; + for (i in vname) {if (i > indent) {delete vname[i]}} + if (length($3) > 0) { + vn=""; for (i=0; i