diff --git a/.circleci/chart-testing.yaml b/.circleci/chart-testing.yaml new file mode 100644 index 00000000..f9b5e85a --- /dev/null +++ b/.circleci/chart-testing.yaml @@ -0,0 +1,2 @@ +chart-repos: + - argo=https://argoproj.github.io/argo-helm diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 00000000..60db788d --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,38 @@ +version: 2.1 +jobs: + lint: + docker: + - image: gcr.io/kubernetes-charts-ci/test-image:v3.0.1 + steps: + - checkout + - run: ct lint --config .circleci/chart-testing.yaml + # Technically this only needs to be run on master, but it's good to have it run on every PR + # so that it is regularly tested. + publish: + docker: + # We just need an image with `helm` on it. Handily we know of one already. + - image: gcr.io/kubernetes-charts-ci/test-image:v3.0.1 + steps: + # install the additional keys needed to push to Github. Alex Collins owns these keys. + - add_ssh_keys + - run: git config --global user.email "nobody@circleci.com" + - run: git config --global user.name "Circle CI Build" + - checkout + - run: helm init --client-only + # Only actually publish charts on master. + - run: | + set -x + if [ "$CIRCLE_BRANCH" = "master" ]; then + export GIT_PUSH=true + else + export GIT_PUSH=false + fi + sh ./scripts/publish.sh +workflows: + version: 2 + workflow: + jobs: + - lint + - publish: + requires: + - lint \ No newline at end of file diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index c0058839..3f860547 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -3,4 +3,7 @@ Checklist: * [ ] I have update the chart version in `Chart.yaml` following Semantic Versioning. * [ ] Any new values are backwards compatible and/or have sensible default. * [ ] I have followed the testing instructions in the [contributing guide](https://github.com/argoproj/argo-helm/blob/master/CONTRIBUTING.md). -* [ ] I have signed the CLA. +* [ ] I have signed the CLA and the build is green. +* [ ] I will test my changes again once merged to master and published. + +Changes are automatically published when merged to `master`. They are not published on branches. \ No newline at end of file diff --git a/.gitignore b/.gitignore index 8a77cce9..ad3d67a1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ output .vscode .DS_Store -/*.tgz \ No newline at end of file +*.tgz diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d5b2e044..3bdd1cd3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -53,7 +53,7 @@ argocd app sync guestbook ## Publishing Changes -To push changes use following script: +Changes are automatically publish whenever a commit is merged to master. The CI job (see `.circleci/config.yaml`) runs this: ``` GIT_PUSH=true ./scripts/publish.sh diff --git a/scripts/publish.sh b/scripts/publish.sh index 8b943495..40c5e66c 100755 --- a/scripts/publish.sh +++ b/scripts/publish.sh @@ -2,7 +2,7 @@ set -eux SRCROOT="$(cd "$(dirname "$0")/.." && pwd)" -GIT_PUSH=${GIT_PUSH:-true} +GIT_PUSH=${GIT_PUSH:-false} rm -rf $SRCROOT/output && git clone -b gh-pages git@github.com:argoproj/argo-helm.git $SRCROOT/output