diff --git a/.github/workflows/helm-release.yaml b/.github/workflows/helm-release.yaml index 8c28a4928..9fbd90c29 100644 --- a/.github/workflows/helm-release.yaml +++ b/.github/workflows/helm-release.yaml @@ -6,6 +6,8 @@ on: - main paths: - 'charts/**' + tags: + - 'v*' workflow_dispatch: jobs: @@ -36,13 +38,22 @@ jobs: id: version run: | # Generate version like: 0.0.0-nightly.20251213.173045 - VERSION="0.0.0-nightly.$(date -u +'%Y%m%d.%H%M%S')" + if [[ "${GITHUB_REF_TYPE}" == "tag" && "${GITHUB_REF_NAME}" == v* ]]; then + VERSION="${GITHUB_REF_NAME#v}" + else + BASE_VERSION="$(git tag -l 'v*' | sed 's/^v//' | sort -V | tail -n 1)" + if [[ -z "${BASE_VERSION}" ]]; then + BASE_VERSION="0.0.0" + fi + VERSION="${BASE_VERSION}-nightly.$(date -u +'%Y%m%d.%H%M%S')" + fi echo "version=$VERSION" >> $GITHUB_OUTPUT echo "Generated version: $VERSION" - name: Update Chart.yaml version run: | sed -i "s/^version:.*/version: ${{ steps.version.outputs.version }}/" charts/sure/Chart.yaml + sed -i "s/^appVersion:.*/appVersion: \"${{ steps.version.outputs.version }}\"/" charts/sure/Chart.yaml cat charts/sure/Chart.yaml - name: Add Helm repositories @@ -83,5 +94,20 @@ jobs: git config user.name "$GIT_USER_NAME" git config user.email "$GIT_USER_EMAIL" git add . - git commit -m "Release nightly: ${{ steps.version.outputs.version }}" + if git diff --cached --quiet; then + echo "No Helm chart updates to publish." + exit 0 + fi + if [[ "${GITHUB_REF_TYPE}" == "tag" && "${GITHUB_REF_NAME}" == v* ]]; then + git commit -m "Release chart for ${{ github.ref_name }}" + else + git commit -m "Release nightly: ${{ steps.version.outputs.version }}" + fi git push + + - name: Upload chart to GitHub Release + if: startsWith(github.ref, 'refs/tags/v') + uses: softprops/action-gh-release@v2 + with: + tag_name: ${{ github.ref_name }} + files: .cr-release-packages/*.tgz diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 2c3479071..4cdbca01a 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -349,12 +349,19 @@ jobs: - name: Bump pre-release version run: | VERSION_FILE="config/initializers/version.rb" + CHART_FILE="charts/sure/Chart.yaml" # Ensure version file exists if [ ! -f "$VERSION_FILE" ]; then echo "ERROR: Version file not found: $VERSION_FILE" exit 1 fi + + # Ensure chart file exists + if [ ! -f "$CHART_FILE" ]; then + echo "ERROR: Chart file not found: $CHART_FILE" + exit 1 + fi # Extract current version CURRENT_VERSION=$(grep -oP '"\K[0-9]+\.[0-9]+\.[0-9]+-(alpha|beta|rc)\.[0-9]+' "$VERSION_FILE") @@ -394,12 +401,21 @@ jobs: echo "Updated version.rb:" grep "semver" "$VERSION_FILE" + # Update Helm chart version and appVersion + sed -i -E "s/^version: .*/version: ${NEW_VERSION}/" "$CHART_FILE" + sed -i -E "s/^appVersion: .*/appVersion: \"${NEW_VERSION}\"/" "$CHART_FILE" + + # Verify the change + echo "Updated Chart.yaml:" + grep -E "^(version|appVersion):" "$CHART_FILE" + - name: Commit and push version bump run: | git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" git add config/initializers/version.rb + git add charts/sure/Chart.yaml # Check if there are changes to commit if git diff --cached --quiet; then