From c3e89d53c2ce02a9bda9ba77771168d5526a3ab3 Mon Sep 17 00:00:00 2001 From: jawabuu <49921621+jawabuu@users.noreply.github.com> Date: Fri, 16 Apr 2021 19:13:43 +0300 Subject: [PATCH] feat: publish superset helm chart (#14163) * Create initial helm-release action for superset * Add lintconf to ensure chart passes validation * Add lint-test job * Add apache licence headers * Run job for master only * Move helm-lint to separate workflow * Helm release for master & helm dir changes only * Dummy change to test linter --- .github/workflows/superset-helm-lint.yml | 45 ++++++++++++++++ .github/workflows/superset-helm-release.yml | 35 +++++++++++++ helm/superset/values.yaml | 2 + lintconf.yaml | 58 +++++++++++++++++++++ 4 files changed, 140 insertions(+) create mode 100644 .github/workflows/superset-helm-lint.yml create mode 100644 .github/workflows/superset-helm-release.yml create mode 100644 lintconf.yaml diff --git a/.github/workflows/superset-helm-lint.yml b/.github/workflows/superset-helm-lint.yml new file mode 100644 index 000000000..2309eaa61 --- /dev/null +++ b/.github/workflows/superset-helm-lint.yml @@ -0,0 +1,45 @@ +name: Lint and Test Charts + +on: + pull_request: + paths: + - 'helm/**' + +jobs: + lint-test: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Set up Helm + uses: azure/setup-helm@v1 + with: + version: v3.5.4 + + - uses: actions/setup-python@v2 + with: + python-version: 3.7 + + - name: Set up chart-testing + uses: helm/chart-testing-action@v2.0.1 + + - name: Run chart-testing (list-changed) + id: list-changed + run: | + changed=$(ct list-changed --print-config) + if [[ -n "$changed" ]]; then + echo "::set-output name=changed::true" + fi + env: + CT_CHART_DIRS: helm + CT_SINCE: HEAD + + - name: Run chart-testing (lint) + run: ct lint --print-config + env: + CT_CHART_DIRS: helm + CT_LINT_CONF: lintconf.yaml + CT_SINCE: HEAD diff --git a/.github/workflows/superset-helm-release.yml b/.github/workflows/superset-helm-release.yml new file mode 100644 index 000000000..f69d13e33 --- /dev/null +++ b/.github/workflows/superset-helm-release.yml @@ -0,0 +1,35 @@ +name: Release Charts + +on: + push: + branches: + - 'master' + paths: + - 'helm/**' + +jobs: + release: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Configure Git + run: | + git config user.name "$GITHUB_ACTOR" + git config user.email "$GITHUB_ACTOR@users.noreply.github.com" + + - name: Install Helm + uses: azure/setup-helm@v1 + with: + version: v3.5.4 + + - name: Run chart-releaser + uses: helm/chart-releaser-action@v1.2.0 + with: + charts_dir: helm + env: + CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + CR_RELEASE_NAME_TEMPLATE: "superset-helm-chart-{{ .Version }}" diff --git a/helm/superset/values.yaml b/helm/superset/values.yaml index 1a25419d1..1c8acd446 100644 --- a/helm/superset/values.yaml +++ b/helm/superset/values.yaml @@ -372,3 +372,5 @@ nodeSelector: {} tolerations: [] affinity: {} + +dummy: true diff --git a/lintconf.yaml b/lintconf.yaml new file mode 100644 index 000000000..7a62003d9 --- /dev/null +++ b/lintconf.yaml @@ -0,0 +1,58 @@ +# +# 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. +# +--- +rules: + braces: + min-spaces-inside: 0 + max-spaces-inside: 0 + min-spaces-inside-empty: -1 + max-spaces-inside-empty: -1 + brackets: + min-spaces-inside: -1 + max-spaces-inside: -1 + min-spaces-inside-empty: -1 + max-spaces-inside-empty: -1 + colons: + max-spaces-before: 0 + max-spaces-after: 1 + commas: + max-spaces-before: 0 + min-spaces-after: 1 + max-spaces-after: 1 + comments: + require-starting-space: false + min-spaces-from-content: -1 + document-end: disable + document-start: disable # No --- to start a file + empty-lines: + max: 2 + max-start: 0 + max-end: 0 + hyphens: + max-spaces-after: 1 + indentation: + spaces: consistent + indent-sequences: whatever # - list indentation will handle both indentation and without + check-multi-line-strings: false + key-duplicates: enable + line-length: disable # Lines can be any length + new-line-at-end-of-file: enable + new-lines: + type: unix + trailing-spaces: enable + truthy: + level: warning