name: Helmfile lint
run-name: Helmfile lint

on:
  push:
  pull_request:
    branches:
      - 'main'

jobs:
  helmfile-lint:
    runs-on: ubuntu-latest
    container:
      image: ghcr.io/helmfile/helmfile:v0.171.0
    steps:
    -
      name: Checkout repository
      uses: actions/checkout@v6
    -
      name: Helmfile lint
      shell: bash
      run: |
        set -e
        HELMFILE=src/helm/helmfile.yaml.gotmpl
        environments=$(awk 'BEGIN {in_env=0} /^environments:/ {in_env=1; next} /^---/ {in_env=0} in_env && /^  [^ ]/ {gsub(/^  /,""); gsub(/:.*$/,""); print}' "$HELMFILE")
        for env in $environments; do
          echo "################### $env lint ###################"
          helmfile -e $env lint -f $HELMFILE || exit 1
          echo -e "\n"
        done