forked from argoproj/argo-helm
79 lines
2.7 KiB
YAML
79 lines
2.7 KiB
YAML
## Reference: https://github.com/helm/chart-testing-action
|
|
---
|
|
name: Linting and Testing
|
|
on: pull_request
|
|
jobs:
|
|
chart-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
|
|
|
|
- name: Set up python
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: 3.7
|
|
|
|
- name: Setup Chart Linting
|
|
id: lint
|
|
uses: helm/chart-testing-action@v2.1.0
|
|
|
|
- name: List changed charts
|
|
id: list-changed
|
|
run: |
|
|
## If executed with debug this won't work anymore.
|
|
changed=$(ct --config ./.github/configs/ct-lint.yaml list-changed)
|
|
charts=$(echo "$changed" | tr '\n' ' ' | xargs)
|
|
if [[ -n "$changed" ]]; then
|
|
echo "::set-output name=changed::true"
|
|
echo "::set-output name=changed_charts::$charts"
|
|
fi
|
|
- name: Run chart-testing (lint)
|
|
run: ct lint --debug --config ./.github/configs/ct-lint.yaml --lint-conf ./.github/configs/lintconf.yaml
|
|
|
|
- name: Run docs-testing (helm-docs)
|
|
id: helm-docs
|
|
run: |
|
|
./scripts/helm-docs.sh
|
|
if [[ $(git diff --stat) != '' ]]; then
|
|
echo -e '\033[0;31mDocumentation outdated!\033[0m ❌'
|
|
git diff --color
|
|
exit 1
|
|
else
|
|
echo -e '\033[0;32mDocumentation up to date\033[0m ✔'
|
|
fi
|
|
|
|
- name: Create kind cluster
|
|
uses: helm/kind-action@v1.2.0
|
|
if: steps.list-changed.outputs.changed == 'true'
|
|
with:
|
|
config: .github/configs/kind-config.yaml
|
|
|
|
- name: Deploy latest ArgoCD CRDs when testing ArgoCD extensions
|
|
if: |
|
|
contains(steps.list-changed.outputs.changed_charts, 'argocd-image-updater')
|
|
run: |
|
|
kubectl apply -f charts/argo-cd/crds
|
|
|
|
- name: Skip HPA tests of ArgoCD
|
|
if: contains(steps.list-changed.outputs.changed_charts, 'argo-cd')
|
|
run: |
|
|
## Metrics API not available in kind cluster
|
|
rm charts/argo-cd/ci/ha-autoscaling-values.yaml
|
|
|
|
- name: Create an external redis for ArgoCD externalRedis feature
|
|
if: contains(steps.list-changed.outputs.changed_charts, 'argo-cd')
|
|
run: |
|
|
kubectl create namespace redis
|
|
helm repo add bitnami https://charts.bitnami.com/bitnami
|
|
helm install redis bitnami/redis --wait --namespace redis --set auth.password=argocd --set architecture=standalone
|
|
|
|
- name: Run chart-testing (install)
|
|
run: ct install --config ./.github/configs/ct-install.yaml
|
|
if: steps.list-changed.outputs.changed == 'true'
|