其他
云开发 Action,赋予 GitHub 云上超能力
为何需要在意 GitHub Actions ?
一体化:开发、代码审查、Issue、PR、构建、部署都不用离开 GitHub,使专注变为常态; 一键部署 › 自动部署:使用或了解过 CloudBase Framework 的用户都知道一键部署这个非常方便的服务,再加上云开发 Action,每次代码变更 ( push
pr
star
...) 就可触发一键部署,不再需要人工干预;对私密型数据更好的保护:密钥一经上传到 GitHub Secrets 之后,便不可能以任何形式明文查看该密钥,这比本地的
.env
安全得多 🔐
云开发 Action V2 有哪些升级?
cloudbase-manager-node
是我的第一个尝试,这也是 V1 的解决方案,它也支持很多对其它云开发项目的管理。云开发 Action V2 诞生历程
tcb login --apiKeyId "$SECRET_ID" --apiKey "$SECRET_KEY"
tcb framework deploy -e "$ENV_ID"
SHELL
,用 GitHub 文档的术语来说,它是一个 composite run steps action
,核心的功能实现后,剩下的就是体验上的优化:快速上手 V2
.github/workflows/main.yml
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
),请在以上代码中新增以下内容:+env:
+ accessToken: ${{ secrets.accessToken }}
env
下的 accessToken
键值对是我们部署时设置的环境变量,它的功能与本地的 .env
文件相同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}}"
}
}
]
}
}
}
}
}
secretId
, secretKey
, envId
, accessToken
信息example
函数到云开发中,即时函数的环境变量也会设置成功。