This is an automated email from the ASF dual-hosted git repository.

snazy pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/polaris.git


The following commit(s) were added to refs/heads/main by this push:
     new 0b1f606f CI: add basic Helm testing (#352)
0b1f606f is described below

commit 0b1f606f46195e10ea1f171433364b189eb6ad40
Author: Alexandre Dutra <[email protected]>
AuthorDate: Tue Oct 15 15:19:38 2024 +0200

    CI: add basic Helm testing (#352)
    
    * CI: add basic Helm testing
    
    * Make test required
    
    ---------
    
    Co-authored-by: Robert Stupp <[email protected]>
---
 .asf.yaml                                          |  1 +
 .github/workflows/helm.yml                         | 91 ++++++++++++++++++++++
 helm/polaris/Chart.yaml                            |  3 +
 helm/polaris/{Chart.yaml => ci/simple-values.yaml} | 18 ++---
 helm/polaris/values.yaml                           |  2 +-
 5 files changed, 101 insertions(+), 14 deletions(-)

diff --git a/.asf.yaml b/.asf.yaml
index 4ee05617..217cc525 100644
--- a/.asf.yaml
+++ b/.asf.yaml
@@ -51,6 +51,7 @@ github:
           - build
           - regtest
           - site
+          - helm-tests
 
   features:
     wiki: false
diff --git a/.github/workflows/helm.yml b/.github/workflows/helm.yml
new file mode 100644
index 00000000..07e6e196
--- /dev/null
+++ b/.github/workflows/helm.yml
@@ -0,0 +1,91 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+# This workflow uses actions that are not certified by GitHub.
+# They are provided by a third-party and are governed by
+# separate terms of service, privacy policy, and support
+# documentation.
+
+name: Helm tests
+
+on:
+  push:
+    branches: [ "main" ]
+  pull_request:
+    branches: [ "main" ]
+
+jobs:
+
+  helm-tests:
+    name: Helm tests
+    runs-on: ubuntu-latest
+    timeout-minutes: 60
+
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v4
+        with:
+          fetch-depth: 0
+
+      - name: Set up Helm
+        uses: azure/[email protected]
+        with:
+          version: 'v3.16.0'
+
+      - name: Set up chart-testing
+        uses: helm/[email protected]
+
+      - name: Run chart-testing (list-changed)
+        id: list-changed
+        run: |
+          changed=$(ct list-changed --target-branch ${{ 
github.event.repository.default_branch }} --chart-dirs helm)
+          if [[ -n "$changed" ]]; then
+            echo "changed=true" >> "$GITHUB_OUTPUT"
+          fi
+
+      - name: Run 'helm template' validation
+        if: steps.list-changed.outputs.changed == 'true'
+        run: |
+          cd helm/polaris
+          for f in values.yaml ci/*.yaml; do
+            echo "::group::helm template $f"
+            helm template --debug --namespace polaris-ns --values $f .
+            echo "::endgroup::"
+          done
+
+      - name: Run chart-testing (lint)
+        if: steps.list-changed.outputs.changed == 'true'
+        run: ct lint --target-branch ${{ 
github.event.repository.default_branch }} --debug --charts ./helm/polaris
+
+      - name: Set up Minikube
+        if: steps.list-changed.outputs.changed == 'true'
+        uses: medyagh/[email protected]
+
+      - name: Docker build
+        if: steps.list-changed.outputs.changed == 'true'
+        run: |
+          eval $(minikube docker-env)
+          docker build -f ./Dockerfile -t polaris:latest .
+
+      - name: Run chart-testing (install)
+        if: steps.list-changed.outputs.changed == 'true'
+        run: |
+          ct install --target-branch ${{ 
github.event.repository.default_branch }} \
+            --helm-extra-set-args "--set=image.repository=polaris 
--set=image.tag=latest" \
+            --debug --charts ./helm/polaris
diff --git a/helm/polaris/Chart.yaml b/helm/polaris/Chart.yaml
index 8fe6691b..3328146d 100644
--- a/helm/polaris/Chart.yaml
+++ b/helm/polaris/Chart.yaml
@@ -29,3 +29,6 @@ sources:
 keywords:
   - polaris
   - iceberg
+maintainers:
+  - name: MonkeyCanCode
+  - name: adutra
diff --git a/helm/polaris/Chart.yaml b/helm/polaris/ci/simple-values.yaml
similarity index 67%
copy from helm/polaris/Chart.yaml
copy to helm/polaris/ci/simple-values.yaml
index 8fe6691b..9aa65dd5 100644
--- a/helm/polaris/Chart.yaml
+++ b/helm/polaris/ci/simple-values.yaml
@@ -7,7 +7,7 @@
 # "License"); you may not use this file except in compliance
 # with the License.  You may obtain a copy of the License at
 #
-#  http://www.apache.org/licenses/LICENSE-2.0
+#   http://www.apache.org/licenses/LICENSE-2.0
 #
 # Unless required by applicable law or agreed to in writing,
 # software distributed under the License is distributed on an
@@ -17,15 +17,7 @@
 # under the License.
 #
 
-apiVersion: v2
-name: polaris
-description: A Helm chart for Polaris
-type: application
-version: 0.1.0
-home: https://polaris.apache.org/
-icon: 
https://raw.githubusercontent.com/apache/polaris/main/docs/img/logos/polaris-brandmark.png
-sources:
-  - https://github.com/apache/polaris
-keywords:
-  - polaris
-  - iceberg
+image:
+  repository: polaris
+  tag: latest
+  pullPolicy: Never
diff --git a/helm/polaris/values.yaml b/helm/polaris/values.yaml
index 243914d9..bbba26af 100644
--- a/helm/polaris/values.yaml
+++ b/helm/polaris/values.yaml
@@ -257,7 +257,7 @@ polarisServerConfig:
 
     # The hostname of the interface to which the HTTP server socket wil be 
found. If omitted, the
     # socket will listen on all interfaces.
-    #bindHost: localhost
+    # bindHost: localhost
 
     #  ssl:
     #    keyStore: ./example.keystore

Reply via email to