Skip to content

Commit

Permalink
feat(helm): add github action for chart test and release (#16)
Browse files Browse the repository at this point in the history
- adds github action CI for dynamic localpv provisioner helm chart lint, test and release.

The localPV helm charts will reside in a directory structure: `deploy/helm`

The following are the details of changes :
1. Adds Chart Lint and Test action to test and lint the chart changes. This action is only triggered if there is any change in the content of deploy/helm directory.
2. Modifies the existing Go action. As a result of the modification, the action will not run for pull requests, only if there are changes in the deploy/helm directory.
3. Adds a Release Charts action to release the helm chart. This action triggers only when the push in against develop and there is a change in the content of deploy/helm directory.

Signed-off-by: prateekpandey14 <[email protected]>
  • Loading branch information
prateekpandey14 authored Dec 14, 2020
1 parent 0e57532 commit 609ab7b
Show file tree
Hide file tree
Showing 4 changed files with 98 additions and 0 deletions.
52 changes: 52 additions & 0 deletions .github/workflows/chart-lint-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: Chart Lint and Test

on:
push:
paths:
- 'deploy/helm/**'
branches:
- develop
pull_request:
paths:
- 'deploy/helm/**'
branches:
- develop

jobs:
lint-test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0

- name: Set up Helm
uses: azure/setup-helm@v1
with:
version: v3.4.0

- uses: actions/setup-python@v2
with:
python-version: 3.7

- name: Set up chart-testing
uses: helm/[email protected]

- name: Run chart-testing (list-changed)
id: list-changed
run: |
changed=$(ct list-changed --config ct.yaml)
if [[ -n "$changed" ]]; then
echo "::set-output name=changed::true"
fi
- name: Run chart-testing (lint)
run: ct lint --config ct.yaml

- name: Create kind cluster
uses: helm/[email protected]
if: steps.list-changed.outputs.changed == 'true'

- name: Run chart-testing (install)
run: ct install --config ct.yaml
2 changes: 2 additions & 0 deletions .github/workflows/pull_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ name: ci

on:
pull_request:
paths-ignore:
- 'deploy/helm/**'
branches:
# on pull requests to develop and release branches
- develop
Expand Down
38 changes: 38 additions & 0 deletions .github/workflows/release-charts.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Release Charts

on:
push:
paths:
- 'deploy/helm/**'
branches:
- develop

jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0

- name: Configure Git
run: |
git config user.name "$GITHUB_ACTOR"
git config user.email "[email protected]"
- name: Install Helm
uses: azure/setup-helm@v1
with:
version: v3.4.0

- name: Add dependency chart repos
run: |
helm repo add openebs-ndm https://openebs.github.io/node-disk-manager
- name: Run chart-releaser
uses: helm/[email protected]
env:
CR_TOKEN: "${{ secrets.CR_TOKEN }}"
with:
charts_dir: deploy/helm
6 changes: 6 additions & 0 deletions ct.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# See https://github.com/helm/chart-testing#configuration
remote: origin
target-branch: develop
chart-dirs:
- deploy/helm
helm-extra-args: --timeout=500s

0 comments on commit 609ab7b

Please sign in to comment.