前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用google release-please实现CI/CD自动化发布

使用google release-please实现CI/CD自动化发布

原创
作者头像
RicardoCzj
修改2023-10-20 15:41:34
4720
修改2023-10-20 15:41:34
举报
文章被收录于专栏:Ricardo的分享Ricardo的分享

release-please是google开发维护的一个开源自动化发布工作,主要用于github上一些项目的自动化发布.

https://github.com/googleapis/release-please

先说效果

release-please 可以实现根据commit massages自动生成pull request, 这个PR 包含了当前版本的commit. 而release-please会自动识别上个版本到当前的commit.

当合并了这个pr后, release-please会自动的打tag, 创建发布github release, 生成changelog.md文件.

基于这些和release-please的输出, 我们可以实现CI/CD在github release创建后去跑一些流程(publish npm包、发布docker、打包发布到自己的服务器 等等.)

集成方式

release-please提供了三种集成方式: github action(推荐)、CLI、github app. 本篇主要以github action为例.

Release flows实现

1. 创建 .github/workflows/auto-release.yaml

github action可自行查看学习github相关文档.

https://github.com/google-github-actions/release-please-action

2. code以下配置,可自行根据文档和自身需求调整

代码语言:javascript
复制
name: auto-release

on:
  push:
    branches:
      - develop
  workflow_dispatch:
  
permissions:
  contents: write
  pull-requests: write


jobs:
  release-please:
    runs-on: ubuntu-latest
    steps:
      - uses: google-github-actions/release-please-action@v3
        id: release-please
        with:
          token: ${{ secrets.RICARDO_TOKEN }}
          release-type: node # 这个可以是你的项目使用的配置文件对应的语言, 一般node使用的是package.json
          package-name: your-repo-name
          default-branch: develop # 基于develop分支的commit

token使用自己的personal token,是因为github action如果使用默认的GITHUB_TOKEN不能触发其他的workflows.

token创建文档:https://docs.github.com/zh/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens

token创建之后需要在github项目的设置中去使用.

3. 完成了以上步骤之后, 就可以尝试提交commit了!!

当你使用angular的commit规范提交时,这个以上的workflows就一会自动生成一个PR. PR title的版本号会默认使用package.json中的版本号

合并了PR后就会自动的创建发布相应的release和tag

其他的workflows

实现了auto-release的workflows后, 就可以基于这个workflows去实现其他自动化的Ci/CD.

可参考: https://github.com/RicardoUU/Fortress-demo/blob/main/.github/workflows/prod.yaml

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

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

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

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

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