Skip to content

Commit

Permalink
Automate ignoring deprecated charts
Browse files Browse the repository at this point in the history
  • Loading branch information
WyriHaximus committed Nov 30, 2024
1 parent efa39fb commit 543e1f3
Showing 1 changed file with 67 additions and 30 deletions.
97 changes: 67 additions & 30 deletions .github/workflows/helm-charts-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,33 +3,48 @@ name: "helm-charts/test"
on: pull_request

jobs:
lint:
generate-charts:
runs-on: ubuntu-latest
name: Generate Charts
outputs:
deprecated: ${{ steps.deprecated.outputs.charts }}
maintained: ${{ steps.maintained.outputs.charts }}
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Fetch history
run: git fetch --prune --unshallow
- name: Install Chart Tester
uses: helm/[email protected]
- name: Add WyriHaximusNet repo
run: helm repo add WyriHaximusNet https://helm.wyrihaximus.net/
- name: Lint charts
id: lint
run: ct lint --all
with:
sparse-checkout: |
charts/
- name: Get values files
uses: tj-actions/glob@v22
id: charts
with:
separator: ","
files: |
charts/${{ matrix.chart }}/**/Chart.yaml
- name: Deprecated Charts
id: deprecated
run: |
printf "charts=%s" $(echo "${{ steps.charts.outputs.paths }}" | docker run -i --rm -v $(pwd):$(pwd) -w $(pwd) ghcr.io/wyrihaximusnet/php:8.4-nts-alpine-root php -r 'echo str_replace(["charts", "Chart.yaml", "/", "\\"], "", json_encode(array_values(array_filter(explode(",", trim(fgets(STDIN))), static fn (string $path): bool => str_contains(file_get_contents($path), "deprecated: true") && !str_contains($path, "commons"))))) . "\n";') >> $GITHUB_OUTPUT
- name: Maintained Charts
id: maintained
run: |
printf "charts=%s" $(echo "${{ steps.charts.outputs.paths }}" | docker run -i --rm -v $(pwd):$(pwd) -w $(pwd) ghcr.io/wyrihaximusnet/php:8.4-nts-alpine-root php -r 'echo str_replace(["charts", "Chart.yaml", "/", "\\"], "", json_encode(array_values(array_filter(explode(",", trim(fgets(STDIN))), static fn (string $path): bool => !str_contains(file_get_contents($path), "deprecated: true") && !str_contains($path, "commons"))))) . "\n";') >> $GITHUB_OUTPUT
- name: Show chart lists
run: |
echo "Deprecated:"
echo ${{ steps.deprecated.outputs.charts }}
echo "Maintained:"
echo ${{ steps.maintained.outputs.charts }}
validate-values-schema:
runs-on: ubuntu-latest
name: Validate values schema json
needs:
- generate-charts
strategy:
fail-fast: false
matrix:
chart:
- cron-jobs
- default-backend
- docker-hub-exporter
- pi-hole-exporter
- redirect
- redis-db-assignment-operator
chart: ${{ fromJson(needs.generate-charts.outputs.maintained) }}
steps:
- name: Checkout
uses: actions/checkout@v4
Expand All @@ -49,23 +64,42 @@ jobs:
input: ${{ steps.valueFiles.outputs.paths }}
output: charts/${{ matrix.chart }}/values.schema.json
fail-on-diff: true
lint:
name: Lint
runs-on: ubuntu-latest
needs:
- validate-values-schema
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Fetch history
run: git fetch --prune --unshallow
- name: Install Chart Tester
uses: helm/[email protected]
- name: Add WyriHaximusNet repo
run: helm repo add WyriHaximusNet https://helm.wyrihaximus.net/
- name: Lint charts
id: lint
run: ct lint --all
test:
name: Test on Kubernetes v${{ matrix.k8s }}
runs-on: ubuntu-latest
needs:
- generate-charts
- lint
- validate-values-schema
strategy:
fail-fast: false
matrix:
k8s:
- "1.23"
- "1.24"
- "1.25"
- "1.26"
- "1.27"
- "1.28"
- "1.29"
- "1.30"
# - "1.23"
# - "1.24"
# - "1.25"
# - "1.26"
# - "1.27"
# - "1.28"
# - "1.29"
# - "1.30"
- "1.31"
steps:
- name: Checkout
Expand Down Expand Up @@ -115,9 +149,12 @@ jobs:
cp charts/pi-hole-exporter/library-ci/*.yaml charts/pi-hole-exporter/templates/
sed -i 's/library/application/g' charts/commons/Chart.yaml
sed -i 's/library/application/g' charts/cron-jobs/Chart.yaml
rm -Rf charts/commento
rm -Rf charts/commentoplusplus
rm -Rf charts/horizontal-pod-autoscalers
echo '${{ needs.generate-charts.outputs.deprecated }}' >> charts.json
cat charts.json
jq -c '.[]' charts.json
jq -c '.[]' charts.json | while read chart; do
echo "${chart}"
done
- run: kubectl get pods -A
- run: kubectl get svc -A
- name: Test Changed Charts
Expand Down

0 comments on commit 543e1f3

Please sign in to comment.