Skip to content

Commit 7ac3818

Browse files
authored
Merge pull request #219 from hivellm/feat/ha-cluster-v2.5.0
feat: HA cluster with Raft consensus, GHCR publishing and Helm repo
2 parents c8b065e + 5fd3cef commit 7ac3818

3 files changed

Lines changed: 72 additions & 11 deletions

File tree

.github/workflows/helm-release.yml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: Release Helm Chart
2+
3+
on:
4+
release:
5+
types: [published]
6+
7+
permissions:
8+
contents: write
9+
pages: write
10+
11+
jobs:
12+
release-helm:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: Checkout
16+
uses: actions/checkout@v6
17+
with:
18+
fetch-depth: 0
19+
20+
- name: Configure Git
21+
run: |
22+
git config user.name "$GITHUB_ACTOR"
23+
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
24+
25+
- name: Set chart version from release tag
26+
env:
27+
REF_NAME: ${{ github.ref }}
28+
run: |
29+
VERSION="${REF_NAME#refs/tags/v}"
30+
sed -i "s/^version:.*/version: $VERSION/" helm/vectorizer/Chart.yaml
31+
sed -i "s/^appVersion:.*/appVersion: \"$VERSION\"/" helm/vectorizer/Chart.yaml
32+
33+
- name: Update Helm values with GHCR image
34+
env:
35+
REPO: ${{ github.repository }}
36+
REF_NAME: ${{ github.ref }}
37+
run: |
38+
sed -i "s|repository:.*|repository: ghcr.io/$REPO|" helm/vectorizer/values.yaml
39+
VERSION="${REF_NAME#refs/tags/v}"
40+
sed -i "s|tag:.*|tag: \"$VERSION\"|" helm/vectorizer/values.yaml
41+
42+
- name: Install Helm
43+
uses: azure/setup-helm@v4
44+
with:
45+
version: v3.17.0
46+
47+
- name: Run chart-releaser
48+
uses: helm/chart-releaser-action@v1.7.0
49+
with:
50+
charts_dir: helm
51+
env:
52+
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"

.github/workflows/release-artifacts.yml

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
name: Build and publish release packages
22
permissions:
33
contents: write
4+
packages: write
45
on:
56
release:
67
# 'published' is triggered when publishing draft release, 'created' is not
@@ -255,9 +256,8 @@ jobs:
255256
bin: vectorizer-cli
256257
token: ${{ secrets.GITHUB_TOKEN }}
257258

258-
# Docker só roda após dashboard + binários para Docker + build do backend (release) ok.
259-
# Uma tag (version + latest), manifesto multi-plataforma (linux/amd64 + linux/arm64).
260-
# Requer secrets: DOCKERHUB_USERNAME, DOCKERHUB_TOKEN.
259+
# Docker: multi-platform image pushed to GitHub Container Registry (ghcr.io).
260+
# Zero secrets — usa GITHUB_TOKEN automático.
261261
publish-docker:
262262
needs:
263263
- build-dashboard
@@ -285,22 +285,31 @@ jobs:
285285
uses: docker/setup-buildx-action@v3
286286
- name: Set version from tag
287287
id: version
288-
run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
289-
- name: Login to Docker Hub
288+
run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> "$GITHUB_OUTPUT"
289+
- name: Login to GitHub Container Registry
290290
uses: docker/login-action@v3
291291
with:
292-
username: ${{ secrets.DOCKERHUB_USERNAME }}
293-
password: ${{ secrets.DOCKERHUB_TOKEN }}
292+
registry: ghcr.io
293+
username: ${{ github.repository_owner }}
294+
password: ${{ secrets.GITHUB_TOKEN }}
295+
- name: Docker metadata (tags + labels)
296+
id: meta
297+
uses: docker/metadata-action@v5
298+
with:
299+
images: ghcr.io/${{ github.repository }}
300+
tags: |
301+
type=semver,pattern={{version}}
302+
type=semver,pattern={{major}}.{{minor}}
303+
type=raw,value=latest,enable={{is_default_branch}}
294304
- name: Build and push Docker image (from artifacts)
295305
uses: docker/build-push-action@v6
296306
with:
297307
context: .
298308
file: ./Dockerfile.artifacts
299309
push: true
300310
platforms: linux/amd64,linux/arm64
301-
tags: |
302-
${{ secrets.DOCKERHUB_USERNAME }}/vectorizer:${{ steps.version.outputs.VERSION }}
303-
${{ secrets.DOCKERHUB_USERNAME }}/vectorizer:latest
311+
tags: ${{ steps.meta.outputs.tags }}
312+
labels: ${{ steps.meta.outputs.labels }}
304313
build-args: |
305314
GIT_COMMIT_ID=${{ steps.version.outputs.VERSION }}
306315
BUILD_DATE=${{ github.event.release.published_at }}

helm/vectorizer/values.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
replicaCount: 1
33

44
image:
5-
repository: vectorizer
5+
repository: ghcr.io/hivellm/vectorizer
66
pullPolicy: IfNotPresent
77
tag: "latest"
88

0 commit comments

Comments
 (0)