58 lines
1.5 KiB
YAML
58 lines
1.5 KiB
YAML
name: Helm Integration
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
paths:
|
|
- "deploy/helm/**"
|
|
- ".github/workflows/helm-*.yml"
|
|
- "docs/KUBERNETES.md"
|
|
- "README.md"
|
|
pull_request:
|
|
paths:
|
|
- "deploy/helm/**"
|
|
- ".github/workflows/helm-*.yml"
|
|
- "docs/KUBERNETES.md"
|
|
- "README.md"
|
|
workflow_dispatch: {}
|
|
|
|
jobs:
|
|
kind-smoke-test:
|
|
name: Deploy to Kind and Smoke Test
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 15
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up Helm
|
|
uses: azure/setup-helm@v4
|
|
with:
|
|
version: v3.15.2
|
|
|
|
- name: Create Kind cluster
|
|
uses: helm/kind-action@v1.8.0
|
|
with:
|
|
wait: 120s
|
|
|
|
- name: Install Pulse chart
|
|
run: |
|
|
helm upgrade --install pulse ./deploy/helm/pulse \
|
|
--namespace pulse \
|
|
--create-namespace \
|
|
--set persistence.enabled=false \
|
|
--set server.secretEnv.create=true \
|
|
--set server.secretEnv.data.API_TOKENS=dummy-token \
|
|
--wait \
|
|
--timeout 5m
|
|
|
|
- name: Verify deployment is available
|
|
run: kubectl -n pulse wait --for=condition=available deployment/pulse --timeout=120s
|
|
|
|
- name: Hit health endpoint from inside the cluster
|
|
run: |
|
|
kubectl -n pulse run smoke-test \
|
|
--rm \
|
|
--image=curlimages/curl:8.3.0 \
|
|
--restart=Never \
|
|
-- curl -fsS http://pulse:7655/health
|