Skip to content

Commit 816dbec

Browse files
authored
[CI] refactor helm publish workflow fix PR test error (#762)
Signed-off-by: samzong <[email protected]>
1 parent 95037ac commit 816dbec

File tree

1 file changed

+42
-61
lines changed

1 file changed

+42
-61
lines changed

.github/workflows/helm-publish.yml

Lines changed: 42 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ on:
55
branches:
66
- main
77
paths:
8-
- 'deploy/helm/**'
8+
- "deploy/helm/**"
99
push:
1010
branches:
1111
- main
1212
paths:
13-
- 'deploy/helm/**'
13+
- "deploy/helm/**"
1414
workflow_dispatch:
1515

1616
env:
@@ -20,73 +20,60 @@ env:
2020
CHART_NAME: semantic-router
2121

2222
jobs:
23-
publish-chart:
24-
name: Publish Helm Chart to GHCR
23+
validate-and-package:
24+
name: Validate and Package
2525
runs-on: ubuntu-latest
2626
permissions:
2727
contents: read
28-
packages: write
28+
outputs:
29+
chart-name: ${{ steps.package.outputs.name }}
2930
steps:
30-
- name: Checkout code
31-
uses: actions/checkout@v4
32-
33-
- name: Set up Helm
34-
uses: azure/setup-helm@v4
31+
- uses: actions/checkout@v4
32+
- uses: azure/setup-helm@v4
3533
with:
3634
version: ${{ env.HELM_VERSION }}
3735

38-
- name: Set lowercase repository owner
39-
run: echo "REPOSITORY_OWNER_LOWER=$(echo $GITHUB_REPOSITORY_OWNER | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV
40-
41-
- name: Log in to GitHub Container Registry
42-
run: |
43-
echo "${{ secrets.GITHUB_TOKEN }}" | helm registry login ${{ env.REGISTRY }} --username ${{ github.actor }} --password-stdin
44-
45-
- name: Modify chart version to latest
46-
run: |
47-
echo "::group::Modify Chart.yaml"
48-
# Backup original Chart.yaml
49-
cp ${{ env.CHART_PATH }}/Chart.yaml ${{ env.CHART_PATH }}/Chart.yaml.bak
50-
51-
# Replace version with 'v0.0.0-latest' (valid semver with prerelease tag)
52-
sed -i 's/^version:.*/version: v0.0.0-latest/' ${{ env.CHART_PATH }}/Chart.yaml
53-
54-
echo "Modified Chart.yaml:"
55-
grep '^version:' ${{ env.CHART_PATH }}/Chart.yaml
56-
echo "::endgroup::"
57-
58-
- name: Package Helm chart
59-
run: |
60-
echo "::group::Package Chart"
61-
mkdir -p ./dist
62-
helm package ${{ env.CHART_PATH }} --destination ./dist
63-
echo "::endgroup::"
64-
65-
echo "::group::Packaged Chart"
66-
ls -lh ./dist/
67-
echo "::endgroup::"
36+
- name: Lint chart
37+
run: helm lint ${{ env.CHART_PATH }}
6838

69-
- name: Push chart to GHCR
39+
- name: Package chart
40+
id: package
7041
run: |
71-
echo "::group::Push to GHCR"
72-
CHART_PACKAGE="./dist/${{ env.CHART_NAME }}-v0.0.0-latest.tgz"
42+
helm package ${{ env.CHART_PATH }} --version v0.0.0-latest --destination .
43+
echo "name=$(ls *.tgz)" >> $GITHUB_OUTPUT
7344
74-
# Push to GHCR using OCI format with v0.0.0-latest tag
75-
helm push "${CHART_PACKAGE}" oci://${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER_LOWER }}/charts
45+
- name: Upload packaged chart
46+
if: github.event_name != 'pull_request'
47+
uses: actions/upload-artifact@v4
48+
with:
49+
name: helm-chart
50+
path: "*.tgz"
51+
retention-days: 1
7652

77-
echo "::endgroup::"
53+
publish-chart:
54+
name: Publish to GHCR
55+
runs-on: ubuntu-latest
56+
if: github.event_name != 'pull_request'
57+
needs: validate-and-package
58+
permissions:
59+
packages: write
60+
steps:
61+
- uses: actions/download-artifact@v4
62+
with:
63+
name: helm-chart
7864

79-
echo "✓ Chart published successfully!"
80-
echo "Chart: ${{ env.REGISTRY }}/${{ env.REPOSITORY_OWNER_LOWER }}/charts/${{ env.CHART_NAME }}:v0.0.0-latest"
65+
- uses: azure/setup-helm@v4
66+
with:
67+
version: ${{ env.HELM_VERSION }}
8168

82-
- name: Restore original Chart.yaml
83-
if: always()
69+
- name: Publish chart
70+
env:
71+
CHART: ${{ needs.validate-and-package.outputs.chart-name }}
72+
REPO: ${{ env.REGISTRY }}/$(echo ${{ github.repository_owner }} | tr '[:upper:]' '[:lower:]')/charts
8473
run: |
85-
# Restore original Chart.yaml
86-
if [ -f "${{ env.CHART_PATH }}/Chart.yaml.bak" ]; then
87-
mv ${{ env.CHART_PATH }}/Chart.yaml.bak ${{ env.CHART_PATH }}/Chart.yaml
88-
echo "Chart.yaml restored"
89-
fi
74+
echo "${{ secrets.GITHUB_TOKEN }}" | helm registry login ${{ env.REGISTRY }} -u ${{ github.actor }} --password-stdin
75+
helm push "$CHART" "oci://$REPO"
76+
helm registry logout ${{ env.REGISTRY }}
9077
9178
- name: Create release summary
9279
run: |
@@ -118,9 +105,3 @@ jobs:
118105
--namespace vllm-semantic-router-system
119106
\`\`\`
120107
EOF
121-
122-
- name: Logout from registry
123-
if: always()
124-
run: |
125-
helm registry logout ${{ env.REGISTRY }} || true
126-

0 commit comments

Comments
 (0)