Skip to content

Commit e5d3b17

Browse files
committed
feat(release): handle beta versions and update documentation
1 parent 45a1c26 commit e5d3b17

File tree

3 files changed

+37
-4
lines changed

3 files changed

+37
-4
lines changed

.github/workflows/release.yml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ jobs:
1111
runs-on: ubuntu-latest
1212
outputs:
1313
version: ${{ steps.get-version.outputs.version }}
14+
release_type: ${{ steps.get-version.outputs.release_type }}
1415

1516
steps:
1617
- name: Check out ${{ github.repository }}
@@ -53,7 +54,11 @@ jobs:
5354
run: |
5455
body=$(gh release view "$TAG" --json body -q '.body')
5556
notes="**Release type: $RELEASE_TYPE**${body:+$'\n\n'$body}"
56-
gh release edit "$TAG" --notes "$notes"
57+
prerelease_flag=""
58+
if [ "$RELEASE_TYPE" = "Beta" ]; then
59+
prerelease_flag="--prerelease"
60+
fi
61+
gh release edit "$TAG" --notes "$notes" $prerelease_flag
5762
env:
5863
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
5964
TAG: v${{ steps.get-version.outputs.version }}
@@ -71,6 +76,10 @@ jobs:
7176
- name: Install Helm
7277
uses: azure/setup-helm@v4
7378

79+
- name: Add pre-release suffix for Beta
80+
if: ${{ needs.create-release.outputs.release_type == 'Beta' }}
81+
run: 'sed -i "s/^version: .*/version: ${{ needs.create-release.outputs.version }}-beta/" chart/Chart.yaml'
82+
7483
- name: Package chart
7584
run: helm package chart/
7685

README.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,14 @@ helm template test chart/ \
3030

3131
## Releasing
3232

33-
Releases are automated via GitHub Actions. Trigger the `release` workflow to:
33+
Releases are automated via GitHub Actions. When `chart/Chart.yaml` is updated on `master`, the `release` workflow:
3434

35-
1. Create a GitHub release tagged with the chart version from `chart/Chart.yaml`
36-
2. Package and publish the chart to the [Devolutions Helm repository](https://devolutions.github.io/helm-charts)
35+
1. Creates a GitHub release tagged with the chart version
36+
2. Detects the release type (Beta, Stable, LTS) from the commit message
37+
3. For Beta releases, appends a `-beta` suffix to the chart version and marks the GitHub release as a prerelease
38+
4. Packages and publishes the chart to the [Devolutions Helm repository](https://devolutions.github.io/helm-charts)
39+
40+
Beta chart versions use a SemVer pre-release identifier (e.g., `2026.1.3-beta`), so Helm only shows them when using `--devel`. See [chart/README.md](chart/README.md#release-channels) for details.
3741

3842
## License
3943

chart/README.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,26 @@ helm repo add devolutions https://devolutions.github.io/helm-charts
2929
helm repo update
3030
```
3131

32+
### Release channels
33+
34+
The chart is published in three release channels:
35+
36+
| Channel | Helm version example | `--devel` required | Description |
37+
|---------|---------------------|--------------------|-------------|
38+
| **Stable** | `2025.3.15` | No | Production-ready releases |
39+
| **LTS** | `2025.3.15` | No | Long-term support releases |
40+
| **Beta** | `2026.1.3-beta` | Yes | Pre-release versions for early testing |
41+
42+
By default, `helm install` and `helm search` only show Stable and LTS versions. To include Beta releases, add the `--devel` flag:
43+
44+
```bash
45+
# Search for all versions including beta
46+
helm search repo devolutions/devolutions-server --devel
47+
48+
# Install a specific beta version
49+
helm install dvls devolutions/devolutions-server --version 2026.1.3-beta
50+
```
51+
3252
### Create the required secrets
3353

3454
The chart expects two Kubernetes secrets to exist before installation. Create them using your preferred method (Terraform, Vault, sealed-secrets, etc.). The `kubectl` examples below are for illustration only.

0 commit comments

Comments
 (0)