This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [helmfile/helmfile-action](https://github.com/helmfile/helmfile-action) | action | minor | `v2.0.5` -> `v2.1.0` | --- ### Release Notes <details> <summary>helmfile/helmfile-action (helmfile/helmfile-action)</summary> ### [`v2.1.0`](https://github.com/helmfile/helmfile-action/releases/tag/v2.1.0) [Compare Source](https://github.com/helmfile/helmfile-action/compare/v2.0.5...v2.1.0) #### What's Changed - build(deps-dev): bump typescript from 5.8.3 to 5.9.2 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​548](https://github.com/helmfile/helmfile-action/pull/548) - build(deps-dev): bump [@​typescript-eslint/parser](https://github.com/typescript-eslint/parser) from 8.39.1 to 8.40.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​551](https://github.com/helmfile/helmfile-action/pull/551) - build(deps-dev): bump [@​types/node](https://github.com/types/node) from 24.2.1 to 24.3.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​549](https://github.com/helmfile/helmfile-action/pull/549) - build(deps-dev): bump [@​typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/eslint-plugin) from 8.39.1 to 8.40.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​550](https://github.com/helmfile/helmfile-action/pull/550) - build(deps-dev): bump jest from 30.0.5 to 30.1.1 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​554](https://github.com/helmfile/helmfile-action/pull/554) - build(deps-dev): bump [@​typescript-eslint/parser](https://github.com/typescript-eslint/parser) from 8.40.0 to 8.41.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​553](https://github.com/helmfile/helmfile-action/pull/553) - build(deps-dev): bump [@​typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/eslint-plugin) from 8.40.0 to 8.41.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​552](https://github.com/helmfile/helmfile-action/pull/552) - build(deps-dev): bump [@​types/node](https://github.com/types/node) from 24.3.0 to 24.3.1 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​559](https://github.com/helmfile/helmfile-action/pull/559) - build(deps-dev): bump jest from 30.1.1 to 30.1.3 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​557](https://github.com/helmfile/helmfile-action/pull/557) - build(deps-dev): bump [@​typescript-eslint/parser](https://github.com/typescript-eslint/parser) from 8.41.0 to 8.42.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​558](https://github.com/helmfile/helmfile-action/pull/558) - build(deps-dev): bump [@​typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/eslint-plugin) from 8.41.0 to 8.42.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​556](https://github.com/helmfile/helmfile-action/pull/556) - docs: Fix example version of helmfile-action in README.md by [@​Xiroo](https://github.com/Xiroo) in [#​560](https://github.com/helmfile/helmfile-action/pull/560) - build(deps-dev): bump [@​typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/eslint-plugin) from 8.42.0 to 8.43.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​562](https://github.com/helmfile/helmfile-action/pull/562) - build(deps-dev): bump ts-jest from 29.4.1 to 29.4.3 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​571](https://github.com/helmfile/helmfile-action/pull/571) - build(deps-dev): bump [@​vercel/ncc](https://github.com/vercel/ncc) from 0.38.3 to 0.38.4 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​570](https://github.com/helmfile/helmfile-action/pull/570) - build(deps-dev): bump [@​types/node](https://github.com/types/node) from 24.3.1 to 24.5.2 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​569](https://github.com/helmfile/helmfile-action/pull/569) - build(deps-dev): bump [@​typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/eslint-plugin) from 8.43.0 to 8.44.1 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​574](https://github.com/helmfile/helmfile-action/pull/574) - build(deps-dev): bump ts-jest from 29.4.3 to 29.4.4 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​572](https://github.com/helmfile/helmfile-action/pull/572) - build(deps-dev): bump jest from 30.1.3 to 30.2.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​575](https://github.com/helmfile/helmfile-action/pull/575) - build(deps-dev): bump typescript from 5.9.2 to 5.9.3 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​579](https://github.com/helmfile/helmfile-action/pull/579) - build(deps-dev): bump ts-jest from 29.4.4 to 29.4.5 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​590](https://github.com/helmfile/helmfile-action/pull/590) - build(deps-dev): bump [@​types/node](https://github.com/types/node) from 24.5.2 to 24.8.1 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​589](https://github.com/helmfile/helmfile-action/pull/589) - build(deps-dev): bump [@​typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/eslint-plugin) from 8.44.1 to 8.46.1 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​588](https://github.com/helmfile/helmfile-action/pull/588) - build(deps-dev): bump [@​types/node](https://github.com/types/node) from 24.8.1 to 24.9.1 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​593](https://github.com/helmfile/helmfile-action/pull/593) - build(deps-dev): bump [@​typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/eslint-plugin) from 8.46.1 to 8.46.2 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​592](https://github.com/helmfile/helmfile-action/pull/592) - build(deps-dev): bump [@​typescript-eslint/parser](https://github.com/typescript-eslint/parser) from 8.46.2 to 8.46.4 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​602](https://github.com/helmfile/helmfile-action/pull/602) - build(deps-dev): bump eslint-plugin-jest from 29.0.1 to 29.1.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​600](https://github.com/helmfile/helmfile-action/pull/600) - build(deps): bump [@​actions/http-client](https://github.com/actions/http-client) from 2.2.3 to 3.0.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​597](https://github.com/helmfile/helmfile-action/pull/597) - build(deps-dev): bump [@​types/node](https://github.com/types/node) from 24.9.1 to 24.10.0 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​596](https://github.com/helmfile/helmfile-action/pull/596) - add --verify=false for plugin install by [@​yxxhero](https://github.com/yxxhero) in [#​610](https://github.com/helmfile/helmfile-action/pull/610) - build(deps-dev): bump eslint-plugin-jest from 29.1.0 to 29.2.1 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​611](https://github.com/helmfile/helmfile-action/pull/611) - build(deps-dev): bump [@​types/node](https://github.com/types/node) from 24.10.0 to 24.10.1 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​605](https://github.com/helmfile/helmfile-action/pull/605) - build(deps): bump actions/checkout from 5 to 6 by [@​dependabot](https://github.com/dependabot)\[bot] in [#​608](https://github.com/helmfile/helmfile-action/pull/608) #### New Contributors - [@​Xiroo](https://github.com/Xiroo) made their first contribution in [#​560](https://github.com/helmfile/helmfile-action/pull/560) **Full Changelog**: <https://github.com/helmfile/helmfile-action/compare/v2...v2.1.0> </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4xMC41IiwidXBkYXRlZEluVmVyIjoiNDIuMTAuNSIsInRhcmdldEJyYW5jaCI6InYwIiwibGFiZWxzIjpbXX0=--> Reviewed-on: #6 Reviewed-by: t.behrendt <t.behrendt@noreply.localhost> Co-authored-by: Renovate Bot <renovate@t00n.de> Co-committed-by: Renovate Bot <renovate@t00n.de>
Warning
Repo is currently not in use and not tested. We are waiting for proper shared workflow UI support in gitea. Otherwise errors are hard to identify. Follow https://github.com/go-gitea/gitea/issues/24604
Reusable CI Workflow for Kubernetes Services
This directory contains a reusable CI workflow that automatically detects and validates your Kubernetes services, whether they use Helm + Kubernetes or just Kubernetes manifests.
Features
- Automatic Detection: Automatically detects if your service uses Helm (helmfile.yaml) or just Kubernetes manifests
- Conditional Validation: Only runs Helm validation when helmfile.yaml exists
- Flexible Paths: Configurable paths for k8s directory and helmfile
- Comprehensive Validation: Validates both Kubernetes manifests and Helm charts
- CI Summary: Provides a clear summary of what was validated
Usage
Basic Usage (Recommended)
Simply call the workflow without any parameters - it will automatically detect your service type:
jobs:
ci:
uses: ./.gitea/workflows/ci.yaml
Advanced Usage with Custom Paths
If your service uses non-standard directory names:
jobs:
ci:
uses: ./.gitea/workflows/ci.yaml
with:
k8s_dir: "kubernetes/"
helmfile_path: "helm/helmfile.yaml"
Force Skip Helm Validation
If you want to skip Helm validation even when helmfile.yaml exists:
jobs:
ci:
uses: ./.gitea/workflows/ci.yaml
with:
skip_helm_validation: true
Input Parameters
| Parameter | Description | Default | Required |
|---|---|---|---|
k8s_dir |
Path to Kubernetes manifests directory | k8s/ |
No |
helmfile_path |
Path to helmfile.yaml | helmfile.yaml |
No |
skip_helm_validation |
Skip Helm validation even if helmfile exists | false |
No |
Directory Structure Requirements
For Kubernetes-only services:
your-service/
├── k8s/
│ ├── deployment.yaml
│ ├── service.yaml
│ └── ...
└── .gitea/workflows/your-workflow.yaml
For Helm + Kubernetes services:
your-service/
├── k8s/
│ ├── deployment.yaml
│ ├── service.yaml
│ └── ...
├── helmfile.yaml
└── .gitea/workflows/your-workflow.yaml
What Gets Validated
Always (if k8s/ directory exists):
- Kubernetes manifest validation using
kubectl --dry-run - Namespace extraction from repository name
- Basic Kubernetes syntax and schema validation
Conditionally (if helmfile.yaml exists and Helm validation not skipped):
- Helm chart validation using
helmfile diff - Kubernetes manifests in Helm context
- Helm-specific configurations and values
Example Workflows
See example-usage.yaml for complete examples of how to use this workflow in different scenarios.
Available Actions
Extract Chart Name from Repository Name
The extract-chart-name-from-repo-name action extracts the chart name from repository names following the helm-<chart-name> convention.
Usage
- name: Extract chart name
uses: ./.gitea/actions/extract-chart-name-from-repo-name
with:
repo: ${{ github.repository_name }} # e.g., "helm-my-service"
Inputs
| Parameter | Description | Required |
|---|---|---|
repo |
The full repository name (e.g., "helm-my-chart") | Yes |
Outputs
| Output | Description |
|---|---|
chart-name |
The extracted chart name (e.g., "my-chart" from "helm-my-chart") |
Example
For a repository named helm-user-service, this action will extract user-service as the chart name.
Dependencies
This workflow requires:
./.gitea/actions/extract-namespace-from-repo-nameaction./.gitea/actions/extract-chart-name-from-repo-nameactionKUBECONFIGsecret configured in your repository- Access to your Kubernetes cluster
Troubleshooting
Helm validation skipped unexpectedly
- Check if
helmfile.yamlexists in the expected location - Verify the
skip_helm_validationparameter is not set totrue - Ensure the file path is correct if using custom paths
Kubernetes validation skipped
- Verify the
k8s/directory (or custom path) exists - Check the directory contains valid Kubernetes manifests
Permission issues
- Ensure the
KUBECONFIGsecret is properly configured - Verify the workflow has access to your Kubernetes cluster