From 50a1cb9a5c8731a3266704079f33aca4fbeaa110 Mon Sep 17 00:00:00 2001 From: moilanik Date: Tue, 23 Jun 2026 12:41:50 +0300 Subject: [PATCH] extra deps for chart build --- .gitea/workflows/helm-build-push.yml | 13 +++++++++++++ docs/workflows.md | 10 ++++++---- skills/consumer-pipelines/SKILL.md | 25 +++++++++++++++++++++---- 3 files changed, 40 insertions(+), 8 deletions(-) diff --git a/.gitea/workflows/helm-build-push.yml b/.gitea/workflows/helm-build-push.yml index 986dd35..3dd38f4 100644 --- a/.gitea/workflows/helm-build-push.yml +++ b/.gitea/workflows/helm-build-push.yml @@ -8,6 +8,12 @@ on: version: required: true type: string + chart_path: + required: true + type: string + extra_dependency_paths: + required: false + type: string secrets: GITEA_TOKEN: required: true @@ -47,6 +53,13 @@ jobs: repository: niko/gitea-ci-library path: .ci + - name: Resolve extra subchart dependencies + if: inputs.extra_dependency_paths != '' + run: | + for path in $(echo "${{ inputs.extra_dependency_paths }}" | tr ',' '\n'); do + helm dependency update "${path}" + done + - name: Package Helm chart run: | CHART_DIR=$(dirname "${CHART_FILE}") diff --git a/docs/workflows.md b/docs/workflows.md index 43983d5..98f7600 100644 --- a/docs/workflows.md +++ b/docs/workflows.md @@ -103,7 +103,8 @@ joten `actions/checkout` toimii ilman node-asennuksia. |-----------|------------|--------| | `env_json` | Kyllä | Konffi `gitea-env.conf`:stä | | `version` | Kyllä | Version string (check-version output) | -| `chart_path` | Ei | Polku Chart.yaml-hakemistoon, oletus `.` | +| `chart_path` | Kyllä | Polku Chart.yaml-hakemistoon | +| `extra_dependency_paths` | Ei | Pilkulla erotellut polut subcharttien dependeinceille, joille ajetaan `helm dependency update` ennen päächartin buildia | **`env_json`-avaimet:** @@ -124,9 +125,10 @@ build-push (helm package → helm push OCI) → tag-commit (git-tagin luonti) **Steppien kuvaus `build-push`-jobissa:** 1. **Node.js-asennus** — `apk add --no-cache nodejs` (vaaditaan `actions/checkout`-actionia varten) 2. **Checkout** — sovellusrepo ja gitea-ci-library `.ci/`-polkuun -3. **Package** — `helm package` versiolla `$VERSION` -4. **Push OCI** — `helm push` registryyn autentikoinnilla -5. **Report status** — commit-status + UI-linkki +3. **Resolve extra subchart dependencies** — `helm dependency update` jokaiselle `extra_dependency_paths`-polulle (vain jos input on annettu) +4. **Package** — `helm dependency update` + `helm package` versiolla `$VERSION` +5. **Push OCI** — `helm push` registryyn autentikoinnilla +6. **Report status** — commit-status + UI-linkki **Kompromissi:** Kontti `alpine/helm` ei sisällä node.js:ää, mutta `actions/checkout@v4` on JavaScript-action ja vaatii sen. Siksi nodejs diff --git a/skills/consumer-pipelines/SKILL.md b/skills/consumer-pipelines/SKILL.md index 8fc0a6c..2630d46 100644 --- a/skills/consumer-pipelines/SKILL.md +++ b/skills/consumer-pipelines/SKILL.md @@ -368,9 +368,18 @@ Pakkaa ja pushee Helm-chartin OCI-registryyn. Käyttää `alpine/helm`-konttia. ```yaml HELM_REGISTRY: gitea.app.keskikuja.site/niko -VERSION_FILE: platform-helm/Chart.yaml # chart-hakemisto + versionlähde +VERSION_FILE: platform-helm/Chart.yaml # versionlähde, chart_path määrää chart-hakemiston ``` +**Inputit:** + +| Parametri | Pakollinen | Kuvaus | +|-----------|------------|--------| +| `env_json` | Kyllä | Konffi `gitea-env.conf`:stä | +| `version` | Kyllä | Version string (check-version output) | +| `chart_path` | Kyllä | Polku Chart.yaml-hakemistoon (esim. `platform-helm`) | +| `extra_dependency_paths` | Ei | Pilkulla erotellut polut subcharttien dependeinceille | + **Käyttö reitittimessä:** ```yaml @@ -382,11 +391,19 @@ helm-build-push: with: env_json: ${{ needs.load-config.outputs.env_json }} version: ${{ needs.check-version.outputs.version }} + chart_path: platform-helm + # extra_dependency_paths: subchart-a,subchart-b # tarvittaessa ``` -Chart-hakemisto johdetaan `VERSION_FILE`-polusta: `dirname "${VERSION_FILE}"`. -Jos `VERSION_FILE` on `Chart.yaml`, konteksti on juuri. Jos `platform-helm/Chart.yaml`, -konteksti on `platform-helm/`. +`chart_path` on eksplisiittinen polku chart-hakemistoon (esim. `platform-helm`). +`VERSION_FILE` määrää version lähteen (`Chart.yaml:n` `version`-kenttä) — +nämä voivat olla eri polkuja, mutta tyypillisesti molemmat osoittavat samaan +chart-hakemistoon. + +**`extra_dependency_paths`:** Jos chartilla on alikarttoja (subchartteja) jotka +vaativat `helm dependency update` -ajon ennen päächartin buildia, anna niiden +polut pilkulla eroteltuna. Provider ajaa `helm dependency update` jokaiselle +polulle ennen päächartin buildia. **Yksittäisten Helm-UI-linkkien raportointi:** `HELM_UI_URL` on tarkoitettu yleiselle registry UI:lle — provider muodostaa linkin