From 366bb56596bee065616a5d9c31af9020d17888f5 Mon Sep 17 00:00:00 2001 From: "maksim.nabokikh" Date: Mon, 3 Mar 2025 12:38:16 +0100 Subject: [PATCH] Add workflows for the chart to CI Signed-off-by: maksim.nabokikh --- .github/dependabot.yml | 25 +++++++ .github/release.yml | 17 +++++ .github/workflows/chart-release.yml | 35 +++++++++ .github/workflows/chart-test.yaml | 107 ++++++++++++++++++++++++++++ 4 files changed, 184 insertions(+) create mode 100644 .github/dependabot.yml create mode 100644 .github/release.yml create mode 100644 .github/workflows/chart-release.yml create mode 100644 .github/workflows/chart-test.yaml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..94c3ffb --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,25 @@ +version: 2 +updates: + # Dependencies listed in go.mod + - package-ecosystem: "gomod" + directory: "/" # Location of package manifests + schedule: + interval: "weekly" + + # Dependencies listed in .github/workflows/*.yml + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + + # Dependencies listed in Dockerfile + - package-ecosystem: "docker" + directory: "/" + schedule: + interval: "weekly" + + # Dependencies listed in frontend/package.json + - package-ecosystem: "npm" + directory: "/" + schedule: + interval: "weekly" diff --git a/.github/release.yml b/.github/release.yml new file mode 100644 index 0000000..582f625 --- /dev/null +++ b/.github/release.yml @@ -0,0 +1,17 @@ +changelog: + exclude: + labels: + - ignore + categories: + - title: Enhancements 🚀 + labels: + - enhancement + - title: Bug Fixes 🐛 + labels: + - bug + - title: Dependency Updates ⬆️ + labels: + - dependencies + - title: Other Changes + labels: + - "*" diff --git a/.github/workflows/chart-release.yml b/.github/workflows/chart-release.yml new file mode 100644 index 0000000..12b076d --- /dev/null +++ b/.github/workflows/chart-release.yml @@ -0,0 +1,35 @@ +name: Release Charts + +on: + push: + branches: + - master + paths: + - 'helm/**' + +jobs: + chart-release: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + 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@v4 + with: + version: v3.7.1 + + - name: Run chart-releaser + uses: helm/chart-releaser-action@v1.6.0 + with: + charts_dir: charts + config: charts/cr.yaml + env: + CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/chart-test.yaml b/.github/workflows/chart-test.yaml new file mode 100644 index 0000000..1dcab4e --- /dev/null +++ b/.github/workflows/chart-test.yaml @@ -0,0 +1,107 @@ +name: Chart Test +on: + push: + tags: + - v* + branches: + - master + pull_request: + branches: + - master + +jobs: + chart: + name: Chart + + runs-on: ubuntu-latest + outputs: + changed: ${{ steps.changes.outputs.changed }} + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Set up Helm + uses: azure/setup-helm@v4 + with: + version: v3.10.3 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.10" + + - name: Set up chart-testing + uses: helm/chart-testing-action@v2.6.1 + + - name: Lint + run: ct lint + + - name: Check generated docs + run: | + make docs + test "$(git diff --name-only)" == "" \ + || ( printf >&2 "\nREADME files are not up to date (run 'make docs'), differences:\n\n%s\n\n" "$(git diff)" ; exit 1 ; ) + + - name: Detect changes + id: changes + run: | + changed=$(ct list-changed) + if [[ -n "$changed" ]]; then + echo "changed=true" >> $GITHUB_OUTPUT + fi + + chart-test: + name: Chart Test + runs-on: ubuntu-latest + needs: chart + if: needs.chart.outputs.changed == 'true' + strategy: + fail-fast: false + matrix: + kube: ["1.24", "1.25", "1.26"] + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Set up Helm + uses: azure/setup-helm@v4 + with: + version: v3.10.3 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.10" + + - name: Set up chart-testing + uses: helm/chart-testing-action@v2.6.1 + + # See https://github.com/kubernetes-sigs/kind/releases/tag/v0.17.0 + - name: Determine KinD node image version + id: node_image + run: | + case ${{ matrix.kube }} in + 1.24) + NODE_IMAGE=kindest/node:v1.24.7@sha256:577c630ce8e509131eab1aea12c022190978dd2f745aac5eb1fe65c0807eb315 ;; + 1.25) + NODE_IMAGE=kindest/node:v1.25.3@sha256:f52781bc0d7a19fb6c405c2af83abfeb311f130707a0e219175677e366cc45d1 ;; + 1.26) + NODE_IMAGE=kindest/node:v1.26.0@sha256:691e24bd2417609db7e589e1a479b902d2e209892a10ce375fab60a8407c7352 ;; + esac + + echo "image=$NODE_IMAGE" >> $GITHUB_OUTPUT + + - name: Create KinD cluster + uses: helm/kind-action@v1.12.0 + with: + version: v0.17.0 + node_image: ${{ steps.node_image.outputs.image }} + + - name: Test + run: ct install