feat: switch Helm chart publishing from OCI registry to GitHub Pages
Replaces OCI push (oci://ghcr.io/cpfarhood/charts) with GitHub Pages Helm repository at https://cpfarhood.github.io/devcontainer. The release workflow now packages the chart, maintains an index.yaml on the gh-pages branch, and auto-creates the branch on first run. Usage: helm repo add devcontainer https://cpfarhood.github.io/devcontainer Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
This commit is contained in:
@@ -107,13 +107,55 @@ jobs:
|
|||||||
cache-to: type=gha,mode=max
|
cache-to: type=gha,mode=max
|
||||||
platforms: linux/amd64
|
platforms: linux/amd64
|
||||||
|
|
||||||
- name: Package Helm Chart
|
- name: Package and Publish Helm Chart to GitHub Pages
|
||||||
run: |
|
run: |
|
||||||
helm registry login ghcr.io \
|
# Package the chart
|
||||||
--username ${{ github.actor }} \
|
|
||||||
--password ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
helm package chart/
|
helm package chart/
|
||||||
helm push devcontainer-${{ steps.version.outputs.version }}.tgz oci://ghcr.io/cpfarhood/charts
|
|
||||||
|
# Checkout or create gh-pages branch in a temporary directory
|
||||||
|
git worktree add /tmp/gh-pages gh-pages 2>/dev/null || {
|
||||||
|
git worktree add --detach /tmp/gh-pages
|
||||||
|
cd /tmp/gh-pages
|
||||||
|
git checkout --orphan gh-pages
|
||||||
|
git rm -rf . 2>/dev/null || true
|
||||||
|
cat > index.html <<'HTMLEOF'
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head><title>Dev Container Helm Chart Repository</title></head>
|
||||||
|
<body>
|
||||||
|
<h1>Dev Container Helm Chart Repository</h1>
|
||||||
|
<p>Add this repository to Helm:</p>
|
||||||
|
<pre>helm repo add devcontainer https://cpfarhood.github.io/devcontainer</pre>
|
||||||
|
<p>Install the chart:</p>
|
||||||
|
<pre>helm install mydev devcontainer/devcontainer --set name=mydev</pre>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
HTMLEOF
|
||||||
|
git add index.html
|
||||||
|
git commit -m "Initialize gh-pages branch"
|
||||||
|
git push origin gh-pages
|
||||||
|
cd -
|
||||||
|
}
|
||||||
|
|
||||||
|
# Copy packaged chart to gh-pages worktree
|
||||||
|
cp devcontainer-${{ steps.version.outputs.version }}.tgz /tmp/gh-pages/
|
||||||
|
|
||||||
|
# Update Helm repo index
|
||||||
|
cd /tmp/gh-pages
|
||||||
|
if [ -f index.yaml ]; then
|
||||||
|
helm repo index . --url https://cpfarhood.github.io/devcontainer --merge index.yaml
|
||||||
|
else
|
||||||
|
helm repo index . --url https://cpfarhood.github.io/devcontainer
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Commit and push
|
||||||
|
git add index.yaml *.tgz index.html 2>/dev/null || true
|
||||||
|
git commit -m "Publish chart ${{ steps.version.outputs.version }}"
|
||||||
|
git push origin gh-pages
|
||||||
|
cd -
|
||||||
|
|
||||||
|
# Clean up worktree
|
||||||
|
git worktree remove /tmp/gh-pages
|
||||||
|
|
||||||
- name: Generate Release Notes
|
- name: Generate Release Notes
|
||||||
id: notes
|
id: notes
|
||||||
@@ -139,7 +181,9 @@ jobs:
|
|||||||
|
|
||||||
### Helm Chart
|
### Helm Chart
|
||||||
\`\`\`bash
|
\`\`\`bash
|
||||||
helm install devcontainer oci://ghcr.io/cpfarhood/charts/devcontainer --version ${{ steps.version.outputs.version }}
|
helm repo add devcontainer https://cpfarhood.github.io/devcontainer
|
||||||
|
helm repo update
|
||||||
|
helm install mydev devcontainer/devcontainer --version ${{ steps.version.outputs.version }} --set name=mydev
|
||||||
\`\`\`
|
\`\`\`
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user