77 - main
88 paths :
99 - " deploy/helm/**"
10+ - " .github/workflows/helm-publish.yml"
1011 push :
1112 branches :
1213 - main
14+ tags :
15+ - " v*"
1316 paths :
1417 - " deploy/helm/**"
18+ - " .github/workflows/helm-publish.yml"
1519 workflow_dispatch :
1620
1721env :
2933 contents : read
3034 outputs :
3135 chart-name : ${{ steps.package.outputs.name }}
36+ chart-version : ${{ steps.versions.outputs.chart_version }}
37+ chart-app-version : ${{ steps.versions.outputs.app_version }}
3238 steps :
3339 - uses : actions/checkout@v4
3440 - uses : azure/setup-helm@v4
@@ -38,20 +44,55 @@ jobs:
3844 - name : Lint chart
3945 run : helm lint ${{ env.CHART_PATH }}
4046
47+ - name : Resolve chart versions
48+ id : versions
49+ run : |
50+ if [[ "${GITHUB_REF}" == refs/tags/v* ]]; then
51+ echo "chart_version=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
52+ echo "app_version=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
53+ elif [[ "${GITHUB_EVENT_NAME}" == "pull_request" ]]; then
54+ echo "chart_version=0.0.0-pr.${{ github.event.number }}" >> $GITHUB_OUTPUT
55+ echo "app_version=pr-${{ github.event.number }}" >> $GITHUB_OUTPUT
56+ else
57+ echo "chart_version=0.0.0-latest" >> $GITHUB_OUTPUT
58+ echo "app_version=latest" >> $GITHUB_OUTPUT
59+ fi
60+
4161 - name : Package chart
4262 id : package
4363 run : |
44- helm package -u ${{ env.CHART_PATH }} --version v0.0.0-latest --destination .
64+ helm package -u ${{ env.CHART_PATH }} \
65+ --version "${{ steps.versions.outputs.chart_version }}" \
66+ --app-version "${{ steps.versions.outputs.app_version }}" \
67+ --destination .
4568 echo "name=$(ls *.tgz)" >> $GITHUB_OUTPUT
4669
4770 - name : Upload packaged chart
48- if : github.event_name != 'pull_request'
4971 uses : actions/upload-artifact@v4
5072 with :
5173 name : helm-chart
5274 path : " *.tgz"
5375 retention-days : 1
5476
77+ - name : Create package summary
78+ run : |
79+ cat >> $GITHUB_STEP_SUMMARY << EOF
80+ ## Helm Chart Package
81+
82+ - Chart: \`${{ env.CHART_NAME }}\`
83+ - Version: \`${{ steps.versions.outputs.chart_version }}\`
84+ - App Version: \`${{ steps.versions.outputs.app_version }}\`
85+ - Package: \`${{ steps.package.outputs.name }}\`
86+ - Event: \`${{ github.event_name }}\`
87+ EOF
88+
89+ if [ "${{ github.event_name }}" = "pull_request" ]; then
90+ cat >> $GITHUB_STEP_SUMMARY << EOF
91+
92+ This PR run uploads the packaged chart as the \`helm-chart\` workflow artifact.
93+ EOF
94+ fi
95+
5596 publish-chart :
5697 name : Publish to GHCR
5798 runs-on : ubuntu-latest
@@ -83,18 +124,19 @@ jobs:
83124 ## 📦 Helm Chart Published
84125
85126 **Chart:** \`${{ env.CHART_NAME }}\`
86- **Version:** \`v0.0.0-latest\`
127+ **Version:** \`${{ needs.validate-and-package.outputs.chart-version }}\`
128+ **App Version:** \`${{ needs.validate-and-package.outputs.chart-app-version }}\`
87129 **Registry:** \`${{ env.REGISTRY }}/$REPOSITORY_OWNER_LOWER/charts\`
88130
89131 ### Installation
90132
91133 \`\`\`bash
92134 # Pull the chart
93- helm pull oci://${{ env.REGISTRY }}/$REPOSITORY_OWNER_LOWER/charts/${{ env.CHART_NAME }} --version v0.0.0-latest
135+ helm pull oci://${{ env.REGISTRY }}/$REPOSITORY_OWNER_LOWER/charts/${{ env.CHART_NAME }} --version ${{ needs.validate-and-package.outputs.chart-version }}
94136
95137 # Install directly
96138 helm install semantic-router oci://${{ env.REGISTRY }}/$REPOSITORY_OWNER_LOWER/charts/${{ env.CHART_NAME }} \\
97- --version v0.0.0-latest \\
139+ --version ${{ needs.validate-and-package.outputs.chart-version }} \\
98140 --namespace vllm-semantic-router-system \\
99141 --create-namespace
100142 \`\`\`
@@ -103,7 +145,7 @@ jobs:
103145
104146 \`\`\`bash
105147 helm upgrade semantic-router oci://${{ env.REGISTRY }}/$REPOSITORY_OWNER_LOWER/charts/${{ env.CHART_NAME }} \\
106- --version v0.0.0-latest \\
148+ --version ${{ needs.validate-and-package.outputs.chart-version }} \\
107149 --namespace vllm-semantic-router-system
108150 \`\`\`
109151 EOF
0 commit comments