前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用 Github Action 自动发布 Chart 并托管到 Github Pages

利用 Github Action 自动发布 Chart 并托管到 Github Pages

原创
作者头像
imroc
修改2024-05-09 10:21:02
1090
修改2024-05-09 10:21:02
举报

项目结构

在仓库根目录下创建 charts 目录,然后在该目录下开发所需要的 chart,如:

代码语言:txt
复制
.
├── charts
│   └── mychart
│       ├── Chart.yaml
│       ├── templates
│       │   ├── deployment.yaml
│       │   ├── _helpers.tpl
│       │   └── service.yaml
│       └── values.yaml

准备 gh-pages 分支

创建 gh-pages 分支并 push 到 github 仓库:

代码语言:bash
复制
git checkout --orphan gh-pages # 创建 gh-pages 空分支
touch README.md
git add README.md
git push origin -u gh-pages

Github Action

为项目添加 GitHub Action,在 .github/workflows 下新增 yaml(如 helm-release.yaml):

代码语言:txt
复制
.github
└── workflows
    ├── docker-ci.yaml
    └── helm-release.yaml
代码语言:yaml
复制
name: Release Charts

on:
  push:
    branches:
      - main
jobs:
  release:
    permissions:
      contents: write # to push chart release and create a release (helm/chart-releaser-action)

    runs-on: ubuntu-latest
    steps:
      - name: Checkout Code
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Configure Git
        run: |
          git config user.name "$GITHUB_ACTOR"
          git config user.email "$GITHUB_ACTOR@users.noreply.github.com"

      - name: Set up Helm
        uses: azure/setup-helm@v4

      - name: Run chart-releaser
        uses: helm/chart-releaser-action@v1.6.0
        env:
          CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"

提示: 1. GITHUB_TOKEN 这个 Secret 是 Github 为项目自动生成的,无需手动添加。 2. Configure Git 中是 Github Action 提交 chart 到 gh-pages 分支时所用到的 Git 用户信息,可根据情况自行修改。

触发 Chart 自动发布

确保在 Chart.yaml 中定义好 version,提交并 push 代码触发 Github Action 工作流。

如果成功,可以在 release 页面看到自动生成的压缩包:

同时,在 gh-pages 分支可以看到 index.yaml 自动生成(index.yaml 中会引用 release 中的 chart 压缩包):

遇到过的问题

第一次提交不会发布 chart,因为它会对比历史来发现 chart 是否有变更,第一次提交无法对比,也不会发布 chart。

参考资料

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 项目结构
  • 准备 gh-pages 分支
  • Github Action
  • 触发 Chart 自动发布
  • 遇到过的问题
  • 参考资料
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档