关于github:云开发-Action赋予-GitHub-云上超能力

2次阅读

共计 3909 个字符,预计需要花费 10 分钟才能阅读完成。

背景

来自社区的 @beetcb,前几天参加了 Tencent CloudBase Github Action V2 (AKA 云开发 Atcion) 的代码与文档奉献。如果你对 应用 GitHub 主动构建和部署云开发我的项目 感兴趣,欢送随我来独特尝鲜 V2 版云开发 Action:TencentCloudBase/cloudbase-action

为何须要在意 GitHub Actions ?

GitHub Actions 是 GitHub 推出的一项解放双手、自动化开发流程的 CI/CD 服务。举个直观的例子,咱们在浏览许多开源我的项目的时候,Git Commit 左边经常出现小红叉、小绿勾:

那么这个我的项目肯定应用了 GitHub Actions (或其余 CI/CD 服务)。

这表明了很多我的项目对 GitHub Actions 的高度依赖,它在社区也是被高度认可的 ????。拿腾讯云开发来说,通过在我的项目中引入云开发 Action,即时便领有了更优雅的自动化开发流程:

  • 一体化:开发、代码审查、Issue、PR、构建、部署都不必来到 GitHub,使专一变为常态
  • 一键部署 › 主动部署:应用或理解过 CloudBase Framework 的用户都晓得一键部署这个十分不便的服务,再加上云开发 Action,每次代码变更 (push pr star …) 就可触发一键部署,不再须要人工干预
  • 对私密型数据更好的爱护:密钥一经上传到 GitHub Secrets 之后,便不可能以任何模式明文查看该密钥,这比本地的 .env 平安地多 ????

云开发 Action V1 的局限

我曾应用过 V1 版本来部署我的博客我的项目,非常不便,这也是我第一次上手云开发。随着对云开发的相熟,回过头来也不难发现 V1 我的项目的局限:只反对动态部署并且不足保护,可能是兵哥 (@binggg) 很忙吧 ????。

突破局限,拥抱 V2

发现了 V1 的局限,我尝试寻找一种解决方案,cloudbase-manager-node 是我的第一个尝试:TencentCloudBase/cloudbase-manager-node

这也是 V1 的解决方案,它也反对很多对其它云开发我的项目的治理。侥幸的是,cloudbase-framework 及时呈现在我的脑中:Tencent/cloudbase-framework

它是云开发官网出品的前后端一体化部署工具,并配有丰盛的插件;应用一个简略的配置文件,并联合 CloudBase CLI 工具,即可一键部署。

有了 cloudbase-framework,咱们就能够防止在 Action 中的二次开发,相同,用一套更加成熟的部署计划来代替

开发 V2 的过程

此次 V2 的开发 GitHub Action 真的很简略,这都要感激 cloudbase-framework 提供的一键部署能力。总结下来,把~ 大象~ 利用装进~ 冰箱~ 云开发只有三部:

npm install -g @cloudbase/cli
tcb login --apiKeyId "$SECRET_ID" --apiKey "$SECRET_KEY"
tcb framework deploy -e "$ENV_ID"

装置 → 登录 → 部署, 就是如此简略!

因为此过程不蕴含任何代码上的逻辑,所以咱们并没有应用任何编程语言来实现这些过程;通过考量,咱们抉择了执行这些命令最快的中央 — SHELL,用 GitHub 文档的术语来说,它是一个 composite run steps action,外围的性能实现后,剩下的就是体验上的优化:

  • 输入的简化:剔除部署时输入的无用信息,缩小无用日志的输入
  • 步骤分组:咱们将三个要害的步骤分为三组,并追踪并高亮正在执行的命令,让用户更分明以后的状态
  • 文档优化:利用一个简略的云函数部署,手把手教你配置 (就在上面,点它点它 ????)TencentCloudBase/cloudbase-action

疾速上手 V2

干燥的文字哪有代码乏味 ? 接下来的工夫,咱们来疾速上手一下云开发 Action:

本示例将演示:如何疾速部署云函数到 CloudBase (同时设定部署的私密环境变量作为云函数 RUNTIME 的环境变量)

1、首先咱们须要在我的项目中引入云开发 Action,编写如下的 Github Action 文件 .github/workflows/main.yml

on: [push]

jobs:
  deploy:
    runs-on: ubuntu-latest
    name: Tencent Cloudbase Github Action Example
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      - name: Deploy to Tencent CloudBase
        uses: TencentCloudBase/cloudbase-action@v2
        with:
          secretId: ${{secrets.secretId}}
          secretKey: ${{secrets.secretKey}}
          envId: ${{secrets.envId}}

对于此配置文件的具体阐明

假如咱们在部署时须要设置私密型的环境变量(比方小程序 appid 或拜访数据库的 accessToken),请在以上代码中新增以下内容:

name: Tencent Cloudbase Github Action Example
+env:
+  accessToken: ${{secrets.accessToken}}

其中 env 下的 accessToken 键值对是咱们部署时设置的环境变量,它的性能与本地的 .env 文件雷同
2、为了应用云开发 Action V2 部署云函数,咱们必须要在我的项目中配置 cloudbaserc.json 文件(并引入云函数插件和咱们刚刚配置的环境变量):

{"envId": "{{env.ENV_ID}}",
  "version": "2.0",
  "framework": {
    "name": "gh-actions-test",
    "plugins": {
      "func": {
        "use": "@cloudbase/framework-plugin-function",
        "inputs": {
          "functions": [
            {
              "name": "example",
              "memorySize": 128,
              "timeout": 5,
              "runtime": "Nodejs10.15",
              "handler": "index.main",
              "envVariables": {"accessToken": "{{env.accessToken}}"
              }
            }
          ]
        }
      }
    }
  }
}

对于此配置文件的具体阐明

3、在我的项目 Settings/Secrets 里设置 secretId, secretKey, envId, accessToken 信息

4、配置实现后,提交代码到 Github 时,云开发 Action V2 就会主动部署我的项目中的 example 函数到云开发中,即时函数的环境变量也会设置胜利

欢送奉献

置信你看完此篇文章,对 V2 能有更清晰的意识,也更有信念来参加到本我的项目中来。本我的项目遵循 All Contributors 标准,任何模式的奉献都会被退出贡献者名单,欢送你的奉献 ????

CloudBase Framework 开源我的项目介绍

???? CloudBase Framework 是云开发开源的云原生前后端一体化部署工具,反对支流前后端框架,前后端一键托管部署在云端一体化平台,反对反对小程序、Web、Flutter、后端服务等多个平台。

Github 开源地址:https://github.com/Tencent/cloudbase-framework

欢送给 CloudBase Framework 一个 ???? star

CloudBase Framework 外围贡献者打算

欢送大家参加 CloudBase Framework 的开发工作,成为咱们的贡献者,咱们将会在云开发社区展现贡献者的作品和信息,同时也会有惊喜处分。

您能够抉择如下的奉献形式:

  • 奉献技术文章:https://github.com/Tencent/cloudbase-framework/tree/master/community/posts
  • 奉献利用:https://github.com/Tencent/cloudbase-framework/blob/master/doc/app.md
  • 奉献代码,提交 Pull Request
  • 反馈 bug,提交 Issue
  • 在技术会议上发表技术演讲

CloudBase Framework 的倒退离不开社区的踊跃奉献,这是咱们的外围贡献者列表,再次感激大家的奉献:https://github.com/Tencent/cloudbase-framework#contributors-

产品介绍

云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为开发者提供高可用、主动弹性扩缩的后端云服务,蕴含计算、存储、托管等 serverless 化能力,可用于云端一体化开发多种端利用(小程序,公众号,Web 利用,Flutter 客户端等),帮忙开发者对立构建和治理后端服务和云资源,防止了利用开发过程中繁琐的服务器搭建及运维,开发者能够专一于业务逻辑的实现,开发门槛更低,效率更高。
开明云开发:https://console.cloud.tencent.com/tcb?tdl_anchor=techsite
产品文档:https://cloud.tencent.com/product/tcb?from=12763
技术文档:https://cloudbase.net?from=10004
技术交换加 Q 群:601134960
最新资讯关注微信公众号【腾讯云云开发】

正文完
 0