From 3e26ccbea5930e295cff13c1ff64e258cbce0281 Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Wed, 15 Apr 2026 17:39:17 +0300 Subject: [PATCH 01/13] first commit --- .github/workflows/pr-validation.yml | 105 ++++++++++++++++++++++++++++ .github/workflows/release.yml | 54 +++++++++++--- cliff.toml | 67 ++++++++++++++++++ 3 files changed, 217 insertions(+), 9 deletions(-) create mode 100644 .github/workflows/pr-validation.yml create mode 100644 cliff.toml diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml new file mode 100644 index 00000000..88c4172e --- /dev/null +++ b/.github/workflows/pr-validation.yml @@ -0,0 +1,105 @@ +name: PR Validation + +on: + pull_request: + types: [opened, edited, reopened] + +jobs: + validate-and-label: + runs-on: ubuntu-latest + permissions: + pull-requests: write + issues: write + + steps: + - name: Validate PR title and assign label + uses: actions/github-script@v7 + with: + script: | + const title = context.payload.pull_request.title; + const prNumber = context.payload.pull_request.number; + + const allowedScopes = ['feature', 'fix', 'docs', 'perf', 'improvement', 'revert', 'breaking', 'ci']; + + const scopeToLabel = { + feature: { name: 'feature', color: '0075ca' }, + ci: { name: 'ci', color: '0075ca' }, + fix: { name: 'bug', color: 'd73a4a' }, + docs: { name: 'documentation', color: '0052cc' }, + improvement: { name: 'improvement', color: 'bfd4f2'}, + revert: { name: 'revert', color: 'fef2c0' }, + breaking: { name: 'breaking-change',color: 'b60205' }, + }; + + const match = title.match(/^\[([^\]]+)\]\s+\S+/); + + if (!match) { + core.setFailed( + `PR title must follow the format: [scope] description\n` + + `Example: [Feat] Add SeaweedFS bucket auto-creation\n` + + `Allowed scopes: ${allowedScopes.join(', ')}` + ); + return; + } + + const scope = match[1].toLowerCase(); + + if (!allowedScopes.includes(scope)) { + core.setFailed( + `Invalid scope "[${match[1]}]".\n` + + `Allowed scopes: ${allowedScopes.join(', ')}\n` + + `Example: [Feat] Add SeaweedFS bucket auto-creation` + ); + return; + } + + const { name: labelName, color: labelColor } = scopeToLabel[scope]; + + // Ensure label exists in the repo, create it if not + try { + await github.rest.issues.getLabel({ + owner: context.repo.owner, + repo: context.repo.repo, + name: labelName, + }); + } catch (e) { + if (e.status === 404) { + await github.rest.issues.createLabel({ + owner: context.repo.owner, + repo: context.repo.repo, + name: labelName, + color: labelColor, + }); + core.info(`Created label: ${labelName}`); + } else { + throw e; + } + } + + // Remove any stale scope labels from a previous title edit + const allScopeLabels = Object.values(scopeToLabel).map(l => l.name); + const currentLabels = context.payload.pull_request.labels.map(l => l.name); + + for (const stale of currentLabels) { + if (allScopeLabels.includes(stale) && stale !== labelName) { + await github.rest.issues.removeLabel({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: prNumber, + name: stale, + }); + core.info(`Removed stale label: ${stale}`); + } + } + + // Apply the correct label if not already present + if (!currentLabels.includes(labelName)) { + await github.rest.issues.addLabels({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: prNumber, + labels: [labelName], + }); + } + + core.info(`PR title valid — scope: [${scope}] → label: ${labelName}`); diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a2cfb4f2..b673f917 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -36,6 +36,21 @@ jobs: git config user.name "$GITHUB_ACTOR" git config user.email "$GITHUB_ACTOR@users.noreply.github.com" + - name: Extract Chart Version and check RC + id: version_check + run: | + CHART_VERSION=$(grep '^version:' charts/mlrun-ce/Chart.yaml | awk '{print $2}') + if [[ -z "$CHART_VERSION" ]]; then + echo "Error: Failed to extract version from Chart.yaml" >&2 + exit 1 + fi + echo "version=$CHART_VERSION" >> $GITHUB_OUTPUT + if [[ "$CHART_VERSION" =~ -rc ]]; then + echo "is_rc=true" >> $GITHUB_OUTPUT + else + echo "is_rc=false" >> $GITHUB_OUTPUT + fi + - name: Add Helm Repos run: | helm repo add stable https://charts.helm.sh/stable @@ -52,18 +67,39 @@ jobs: env: CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" - - name: Extract Chart Version from Chart.yaml - id: extract_version + - name: Find first RC tag for this version + if: steps.version_check.outputs.is_rc == 'false' + id: first_rc run: | - CHART_VERSION=$(grep '^version:' charts/mlrun-ce/Chart.yaml | awk '{print $2}') - if [[ -z "$CHART_VERSION" ]]; then - echo "Error: Failed to extract version from Chart.yaml" >&2 - exit 1 - fi - echo "version=$CHART_VERSION" >> $GITHUB_OUTPUT + VERSION="${{ steps.version_check.outputs.version }}" + FIRST_RC=$(git tag --sort=version:refname \ + | grep "^mlrun-ce-${VERSION}-rc." \ + | head -1) + echo "tag=${FIRST_RC}" >> $GITHUB_OUTPUT + echo "First RC tag: ${FIRST_RC}" + + - name: Generate release notes with git-cliff + if: steps.version_check.outputs.is_rc == 'false' + uses: orhun/git-cliff-action@v4 + with: + config: cliff.toml + args: >- + ${{ steps.first_rc.outputs.tag }}^..HEAD + --tag mlrun-ce-${{ steps.version_check.outputs.version }} + --ignore-tags "mlrun-ce-${{ steps.version_check.outputs.version }}-rc.*" + env: + OUTPUT: RELEASE_NOTES.md + + - name: Update GitHub Release with release notes + if: steps.version_check.outputs.is_rc == 'false' + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + gh release edit "mlrun-ce-${{ steps.version_check.outputs.version }}" \ + --notes-file RELEASE_NOTES.md outputs: - version: ${{ steps.extract_version.outputs.version }} + version: ${{ steps.version_check.outputs.version }} deploy_ce_onprem: needs: release diff --git a/cliff.toml b/cliff.toml new file mode 100644 index 00000000..d68d65f8 --- /dev/null +++ b/cliff.toml @@ -0,0 +1,67 @@ +[changelog] +header = "" +body = """ +{% for group, commits in commits | sort(attribute="group") | group_by(attribute="group") %}\ + ### {{ group | striptags | trim | upper_first }} + {% for commit in commits %}\ + - {% if commit.scope %}*({{ commit.scope }})* {% endif %}\ + {% if commit.breaking %}[**breaking**] {% endif %}\ + {{ commit.message | split(pat="\n") | first | upper_first }} \ + ([{{ commit.id | truncate(length=7, end="") }}](https://github.com/mlrun/ce/commit/{{ commit.id }}))\ + \n \ + {% endfor %} +{% endfor %}\n +""" +trim = true +footer = "" + +[git] +conventional_commits = false +filter_unconventional = false +split_commits = false +commit_preprocessors = [] +commit_parsers = [ + # skip merge commits + { message = "(?i)^merge", skip = true }, + + # new PR title format (enforced going forward): [scope] ... + { message = "(?i)^\\[feat\\]", group = "Features" }, + { message = "(?i)^\\[fix\\]", group = "Bug Fixes" }, + { message = "(?i)^\\[perf\\]", group = "Performance" }, + { message = "(?i)^\\[refactor\\]", group = "Refactor" }, + { message = "(?i)^\\[docs?\\]", group = "Documentation" }, + { message = "(?i)^\\[chore\\]", group = "Miscellaneous" }, + { message = "(?i)^\\[revert\\]", group = "Reverts" }, + { message = "(?i)^\\[breaking\\]", group = "Breaking Changes" }, + + # conventional commits format: feat: / fix: ... + { message = "(?i)^feat", group = "Features" }, + { message = "(?i)^fix", group = "Bug Fixes" }, + { message = "(?i)^perf", group = "Performance" }, + { message = "(?i)^refactor", group = "Refactor" }, + { message = "(?i)^docs?", group = "Documentation" }, + { message = "(?i)^chore\\(deps\\)", group = "Dependencies" }, + { message = "(?i)^chore", group = "Miscellaneous" }, + { message = "(?i)^revert", group = "Reverts" }, + + # historical [ComponentName] format — infer type from the verb in the message + { message = "(?i)^\\[[^\\]]+\\].*(fix|bug|broken|regression)", group = "Bug Fixes" }, + { message = "(?i)^\\[[^\\]]+\\].*(add|support|enable|upgrade|update|migrate|connect|expose|allow)", group = "Features" }, + { message = "(?i)^\\[[^\\]]+\\].*(disable|remove|clean|deprecat)", group = "Miscellaneous" }, + { message = "(?i)^\\[[^\\]]+\\]", group = "Changes" }, + + # plain English fallback + { message = "(?i)^(fix|bug)", group = "Bug Fixes" }, + { message = "(?i)^(add|update|upgrade|support|enable|migrate|expose|allow)", group = "Features" }, + { message = "(?i)^(remove|disable|clean|deprecat)", group = "Miscellaneous" }, + + # catch-all — anything that didn't match above + { message = ".*", group = "Other" }, +] +protect_breaking_commits = false +filter_commits = false +tag_pattern = "mlrun-ce-[0-9].*" +skip_tags = "" +ignore_tags = "" +topo_order = false +sort_commits = "newest" From 91aa535fe398ebef6b4c4a1272bcb47210539fc4 Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Wed, 15 Apr 2026 17:47:58 +0300 Subject: [PATCH 02/13] fix --- .github/workflows/pr-validation.yml | 39 +++++++---------------------- 1 file changed, 9 insertions(+), 30 deletions(-) diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml index 88c4172e..4c66fa91 100644 --- a/.github/workflows/pr-validation.yml +++ b/.github/workflows/pr-validation.yml @@ -22,13 +22,13 @@ jobs: const allowedScopes = ['feature', 'fix', 'docs', 'perf', 'improvement', 'revert', 'breaking', 'ci']; const scopeToLabel = { - feature: { name: 'feature', color: '0075ca' }, - ci: { name: 'ci', color: '0075ca' }, - fix: { name: 'bug', color: 'd73a4a' }, - docs: { name: 'documentation', color: '0052cc' }, - improvement: { name: 'improvement', color: 'bfd4f2'}, - revert: { name: 'revert', color: 'fef2c0' }, - breaking: { name: 'breaking-change',color: 'b60205' }, + feature: 'feature', + ci: 'ci', + fix: 'bug', + docs: 'documentation', + improvement: 'improvement', + revert: 'revert', + breaking: 'breaking-change', }; const match = title.match(/^\[([^\]]+)\]\s+\S+/); @@ -53,31 +53,10 @@ jobs: return; } - const { name: labelName, color: labelColor } = scopeToLabel[scope]; - - // Ensure label exists in the repo, create it if not - try { - await github.rest.issues.getLabel({ - owner: context.repo.owner, - repo: context.repo.repo, - name: labelName, - }); - } catch (e) { - if (e.status === 404) { - await github.rest.issues.createLabel({ - owner: context.repo.owner, - repo: context.repo.repo, - name: labelName, - color: labelColor, - }); - core.info(`Created label: ${labelName}`); - } else { - throw e; - } - } + const labelName = scopeToLabel[scope]; // Remove any stale scope labels from a previous title edit - const allScopeLabels = Object.values(scopeToLabel).map(l => l.name); + const allScopeLabels = Object.values(scopeToLabel); const currentLabels = context.payload.pull_request.labels.map(l => l.name); for (const stale of currentLabels) { From 355728a81fce02a233323b76cccdc2dc0aced72b Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Thu, 16 Apr 2026 10:47:22 +0300 Subject: [PATCH 03/13] fix run issue --- .github/workflows/pr-validation.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml index 4c66fa91..4dde66c2 100644 --- a/.github/workflows/pr-validation.yml +++ b/.github/workflows/pr-validation.yml @@ -2,19 +2,19 @@ name: PR Validation on: pull_request: - types: [opened, edited, reopened] + types: [opened, edited, reopened, synchronize] jobs: validate-and-label: runs-on: ubuntu-latest permissions: pull-requests: write - issues: write steps: - name: Validate PR title and assign label uses: actions/github-script@v7 with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" script: | const title = context.payload.pull_request.title; const prNumber = context.payload.pull_request.number; From ba88c03624e19e0a409f6723d2976da982099578 Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Thu, 16 Apr 2026 10:49:43 +0300 Subject: [PATCH 04/13] fix run issue --- .github/workflows/pr-validation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml index 4dde66c2..59271c39 100644 --- a/.github/workflows/pr-validation.yml +++ b/.github/workflows/pr-validation.yml @@ -14,7 +14,7 @@ jobs: - name: Validate PR title and assign label uses: actions/github-script@v7 with: - repo-token: "${{ secrets.GITHUB_TOKEN }}" + github-token: "${{ secrets.GITHUB_TOKEN }}" script: | const title = context.payload.pull_request.title; const prNumber = context.payload.pull_request.number; From 5ed1f8353c10004be1a9cd0acd0a19cbf0bc5797 Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Thu, 16 Apr 2026 11:19:17 +0300 Subject: [PATCH 05/13] fix run issue --- .github/workflows/pr-validation.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml index 59271c39..d61ee441 100644 --- a/.github/workflows/pr-validation.yml +++ b/.github/workflows/pr-validation.yml @@ -1,14 +1,14 @@ name: PR Validation on: - pull_request: + pull_request_target: types: [opened, edited, reopened, synchronize] jobs: validate-and-label: runs-on: ubuntu-latest permissions: - pull-requests: write + issues: write steps: - name: Validate PR title and assign label From 9640e9cc5955baabcde303f00928687777855840 Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Thu, 16 Apr 2026 11:45:07 +0300 Subject: [PATCH 06/13] remove label --- .github/workflows/pr-validation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml index d61ee441..8b9aa3d9 100644 --- a/.github/workflows/pr-validation.yml +++ b/.github/workflows/pr-validation.yml @@ -19,7 +19,7 @@ jobs: const title = context.payload.pull_request.title; const prNumber = context.payload.pull_request.number; - const allowedScopes = ['feature', 'fix', 'docs', 'perf', 'improvement', 'revert', 'breaking', 'ci']; + const allowedScopes = ['feature', 'fix', 'docs', 'improvement', 'revert', 'breaking', 'ci']; const scopeToLabel = { feature: 'feature', From cbe71fc2b18506ea817982271e4d884502023c3d Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Mon, 20 Apr 2026 15:02:22 +0300 Subject: [PATCH 07/13] fix after review --- .github/workflows/pr-validation.yml | 8 ++++---- .github/workflows/release.yml | 28 +++++++++++++++++++++++----- cliff.toml | 23 ++++++++++------------- 3 files changed, 37 insertions(+), 22 deletions(-) diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml index 8b9aa3d9..6a9e24b5 100644 --- a/.github/workflows/pr-validation.yml +++ b/.github/workflows/pr-validation.yml @@ -36,8 +36,8 @@ jobs: if (!match) { core.setFailed( `PR title must follow the format: [scope] description\n` + - `Example: [Feat] Add SeaweedFS bucket auto-creation\n` + - `Allowed scopes: ${allowedScopes.join(', ')}` + `Allowed scopes (case-insensitive): [Feature], [Fix], [Docs], [Improvement], [Revert], [Breaking], [CI]\n` + + `Example: [Feature] Add SeaweedFS bucket auto-creation` ); return; } @@ -47,8 +47,8 @@ jobs: if (!allowedScopes.includes(scope)) { core.setFailed( `Invalid scope "[${match[1]}]".\n` + - `Allowed scopes: ${allowedScopes.join(', ')}\n` + - `Example: [Feat] Add SeaweedFS bucket auto-creation` + `Allowed scopes (case-insensitive): [Feature], [Fix], [Docs], [Improvement], [Revert], [Breaking], [CI]\n` + + `Example: [Fix] Resolve crash on startup` ); return; } diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b673f917..5de4bdfd 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -72,11 +72,29 @@ jobs: id: first_rc run: | VERSION="${{ steps.version_check.outputs.version }}" + FIRST_RC=$(git tag --sort=version:refname \ - | grep "^mlrun-ce-${VERSION}-rc." \ + | grep "^mlrun-ce-${VERSION}-rc\." \ | head -1) - echo "tag=${FIRST_RC}" >> $GITHUB_OUTPUT - echo "First RC tag: ${FIRST_RC}" + + if [[ -n "$FIRST_RC" ]]; then + echo "range=${FIRST_RC}^..HEAD" >> $GITHUB_OUTPUT + echo "Range start: first RC tag ${FIRST_RC}" + else + # Hotfix with no RC — use previous stable tag so notes cover only this version + PREV_STABLE=$(git tag --sort=version:refname \ + | grep "^mlrun-ce-[0-9]" \ + | grep -v "\-rc\." \ + | grep -v "^mlrun-ce-${VERSION}$" \ + | tail -1) + if [[ -n "$PREV_STABLE" ]]; then + echo "range=${PREV_STABLE}..HEAD" >> $GITHUB_OUTPUT + echo "Range start: previous stable tag ${PREV_STABLE}" + else + echo "range=HEAD" >> $GITHUB_OUTPUT + echo "Range start: none (first ever release)" + fi + fi - name: Generate release notes with git-cliff if: steps.version_check.outputs.is_rc == 'false' @@ -84,7 +102,7 @@ jobs: with: config: cliff.toml args: >- - ${{ steps.first_rc.outputs.tag }}^..HEAD + ${{ steps.first_rc.outputs.range }} --tag mlrun-ce-${{ steps.version_check.outputs.version }} --ignore-tags "mlrun-ce-${{ steps.version_check.outputs.version }}-rc.*" env: @@ -93,7 +111,7 @@ jobs: - name: Update GitHub Release with release notes if: steps.version_check.outputs.is_rc == 'false' env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" run: | gh release edit "mlrun-ce-${{ steps.version_check.outputs.version }}" \ --notes-file RELEASE_NOTES.md diff --git a/cliff.toml b/cliff.toml index d68d65f8..aa741b03 100644 --- a/cliff.toml +++ b/cliff.toml @@ -24,36 +24,33 @@ commit_parsers = [ # skip merge commits { message = "(?i)^merge", skip = true }, - # new PR title format (enforced going forward): [scope] ... - { message = "(?i)^\\[feat\\]", group = "Features" }, + # new PR title format (enforced by pr-validation.yml): [scope] description + # allowed scopes: feature, fix, docs, improvement, revert, breaking, ci + { message = "(?i)^\\[feature\\]", group = "Features" }, { message = "(?i)^\\[fix\\]", group = "Bug Fixes" }, - { message = "(?i)^\\[perf\\]", group = "Performance" }, - { message = "(?i)^\\[refactor\\]", group = "Refactor" }, - { message = "(?i)^\\[docs?\\]", group = "Documentation" }, - { message = "(?i)^\\[chore\\]", group = "Miscellaneous" }, + { message = "(?i)^\\[docs\\]", group = "Documentation" }, + { message = "(?i)^\\[improvement\\]", group = "Improvements" }, { message = "(?i)^\\[revert\\]", group = "Reverts" }, { message = "(?i)^\\[breaking\\]", group = "Breaking Changes" }, + { message = "(?i)^\\[ci\\]", group = "CI/CD" }, # conventional commits format: feat: / fix: ... { message = "(?i)^feat", group = "Features" }, { message = "(?i)^fix", group = "Bug Fixes" }, - { message = "(?i)^perf", group = "Performance" }, - { message = "(?i)^refactor", group = "Refactor" }, + { message = "(?i)^refactor", group = "Improvements" }, { message = "(?i)^docs?", group = "Documentation" }, - { message = "(?i)^chore\\(deps\\)", group = "Dependencies" }, - { message = "(?i)^chore", group = "Miscellaneous" }, + { message = "(?i)^chore\\(deps\\)", group = "Improvements" }, { message = "(?i)^revert", group = "Reverts" }, # historical [ComponentName] format — infer type from the verb in the message { message = "(?i)^\\[[^\\]]+\\].*(fix|bug|broken|regression)", group = "Bug Fixes" }, { message = "(?i)^\\[[^\\]]+\\].*(add|support|enable|upgrade|update|migrate|connect|expose|allow)", group = "Features" }, - { message = "(?i)^\\[[^\\]]+\\].*(disable|remove|clean|deprecat)", group = "Miscellaneous" }, - { message = "(?i)^\\[[^\\]]+\\]", group = "Changes" }, + { message = "(?i)^\\[[^\\]]+\\]", group = "Other" }, # plain English fallback { message = "(?i)^(fix|bug)", group = "Bug Fixes" }, { message = "(?i)^(add|update|upgrade|support|enable|migrate|expose|allow)", group = "Features" }, - { message = "(?i)^(remove|disable|clean|deprecat)", group = "Miscellaneous" }, + { message = "(?i)^(remove|disable|clean|deprecat)", group = "Other" }, # catch-all — anything that didn't match above { message = ".*", group = "Other" }, From 3413976c63b7f124c3147faf42d0dabe5f855051 Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Sun, 26 Apr 2026 17:59:11 +0300 Subject: [PATCH 08/13] fix after review --- .github/workflows/pr-validation.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml index 6a9e24b5..2ec97d5c 100644 --- a/.github/workflows/pr-validation.yml +++ b/.github/workflows/pr-validation.yml @@ -2,7 +2,10 @@ name: PR Validation on: pull_request_target: - types: [opened, edited, reopened, synchronize] + types: [opened, edited, reopened] +concurrency: + group: pr-validation-${{ github.event.pull_request.number }} + cancel-in-progress: true jobs: validate-and-label: From 72ae16166abe0cf752a07185ab336adae2e7e7e1 Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Tue, 28 Apr 2026 14:34:04 +0300 Subject: [PATCH 09/13] change chart version --- .github/workflows/pr-validation.yml | 2 +- charts/mlrun-ce/Chart.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml index 2ec97d5c..28673fa7 100644 --- a/.github/workflows/pr-validation.yml +++ b/.github/workflows/pr-validation.yml @@ -11,7 +11,7 @@ jobs: validate-and-label: runs-on: ubuntu-latest permissions: - issues: write + pull-requests: write steps: - name: Validate PR title and assign label diff --git a/charts/mlrun-ce/Chart.yaml b/charts/mlrun-ce/Chart.yaml index 04562d73..06d2db3f 100644 --- a/charts/mlrun-ce/Chart.yaml +++ b/charts/mlrun-ce/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v1 name: mlrun-ce -version: 0.11.0-rc.33 +version: 0.11.0-rc.35 description: MLRun Open Source Stack home: https://iguazio.com icon: https://www.iguazio.com/wp-content/uploads/2019/10/Iguazio-Logo.png From c5d7b50db6dfcd17567117ef53a1fff9d48f5d64 Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Tue, 28 Apr 2026 14:36:08 +0300 Subject: [PATCH 10/13] change chart version --- charts/mlrun-ce/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/mlrun-ce/Chart.yaml b/charts/mlrun-ce/Chart.yaml index 06d2db3f..daf968ed 100644 --- a/charts/mlrun-ce/Chart.yaml +++ b/charts/mlrun-ce/Chart.yaml @@ -8,4 +8,4 @@ sources: [] maintainers: - name: MLRun email: mlrun@iguazio.com - url: https://www.mlrun.org/ + url: https://www.mlrun.org/ \ No newline at end of file From 6cb4f4b673761ae982934a459363d41457034a0f Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Tue, 28 Apr 2026 14:48:48 +0300 Subject: [PATCH 11/13] print the release rc --- .github/workflows/release.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5de4bdfd..de18f4ca 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -47,8 +47,10 @@ jobs: echo "version=$CHART_VERSION" >> $GITHUB_OUTPUT if [[ "$CHART_VERSION" =~ -rc ]]; then echo "is_rc=true" >> $GITHUB_OUTPUT + echo "Chart version: $CHART_VERSION (RC release)" else echo "is_rc=false" >> $GITHUB_OUTPUT + echo "Chart version: $CHART_VERSION (stable release)" fi - name: Add Helm Repos From 79daf5bb8ce244472b909dbe66c7d2f8317e3c74 Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Tue, 28 Apr 2026 15:46:12 +0300 Subject: [PATCH 12/13] change GitHub env --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index de18f4ca..2b062cd9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -113,7 +113,7 @@ jobs: - name: Update GitHub Release with release notes if: steps.version_check.outputs.is_rc == 'false' env: - CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + GH_TOKEN: "${{ secrets.GITHUB_TOKEN }}" run: | gh release edit "mlrun-ce-${{ steps.version_check.outputs.version }}" \ --notes-file RELEASE_NOTES.md From 0aa31b7e4ac98fe4300ae44a8ef68756ee49e770 Mon Sep 17 00:00:00 2001 From: GiladShapira94 Date: Wed, 29 Apr 2026 09:49:13 +0300 Subject: [PATCH 13/13] revert chart version change --- charts/mlrun-ce/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/mlrun-ce/Chart.yaml b/charts/mlrun-ce/Chart.yaml index daf968ed..16ed4151 100644 --- a/charts/mlrun-ce/Chart.yaml +++ b/charts/mlrun-ce/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v1 name: mlrun-ce -version: 0.11.0-rc.35 +version: 0.11.0-rc.34 description: MLRun Open Source Stack home: https://iguazio.com icon: https://www.iguazio.com/wp-content/uploads/2019/10/Iguazio-Logo.png