name: "helm: lint and test charts" on: push: branches: [ master ] paths: ['deploy/helm/seaweedfs-csi-driver/**'] pull_request: branches: [ master ] paths: ['deploy/helm/seaweedfs-csi-driver/**'] permissions: contents: read jobs: lint-test: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set up Helm uses: azure/setup-helm@v4 with: version: v3.10.0 - uses: actions/setup-python@v5 with: python-version: '3.9' check-latest: true - name: Set up chart-testing uses: helm/chart-testing-action@v2.3.1 - name: Run chart-testing (list-changed) id: list-changed run: | changed=$(ct list-changed --chart-dirs deploy/helm/seaweedfs-csi-driver/) if [[ -n "$changed" ]]; then echo "::set-output name=changed::true" fi - name: Check if Chart version was updated if: github.event_name == 'pull_request' run: | # Get the base branch chart version git fetch origin ${{ github.base_ref }} BASE_VERSION=$(git show origin/${{ github.base_ref }}:deploy/helm/seaweedfs-csi-driver/Chart.yaml | grep '^version:' | awk '{print $2}') # Get the current chart version CURRENT_VERSION=$(grep '^version:' deploy/helm/seaweedfs-csi-driver/Chart.yaml | awk '{print $2}') echo "Base version: $BASE_VERSION" echo "Current version: $CURRENT_VERSION" # Check if Helm files were changed HELM_FILES_CHANGED=$(git diff --name-only origin/${{ github.base_ref }}...HEAD | grep -c "^deploy/helm/" || echo "0") if [ "$HELM_FILES_CHANGED" -gt 0 ]; then if [ "$BASE_VERSION" = "$CURRENT_VERSION" ]; then echo "::warning::Helm chart files were modified but Chart version was not updated!" echo "::warning::Please update the version in deploy/helm/seaweedfs-csi-driver/Chart.yaml" echo "::warning::Current version: $CURRENT_VERSION" else echo "Chart version was updated from $BASE_VERSION to $CURRENT_VERSION" fi fi - name: Run chart-testing (lint) run: ct lint --all --validate-maintainers=false --chart-dirs deploy/helm/seaweedfs-csi-driver/ - name: Create kind cluster uses: helm/kind-action@v1.5.0 - name: Run chart-testing (install) run: ct install --all --chart-dirs deploy/helm/seaweedfs-csi-driver/