GitHub Action
Tencent CloudBase Github Action
云开发 Tencent CloudBase Github Action 借力于 CloudBase Framework,可以将 Github 项目自动部署到云开发环境
如果你目前使用的是 Tencent CloudBase Github Action V1 版本,请参考 V1 README,推荐使用 V2 版本以获取更多功能
- 云开发官网地址: https://cloudbase.net/
- 云开发控制台地址: https://console.cloud.tencent.com/tcb
支持列表:
- 部署静态网站
- 部署云函数
- 部署到云托管环境
- 部署微信小程序应用
- 配置登录鉴权和云数据库
完整列表请查看插件介绍
提示:标注 🔐 的参数属于敏感信息,需要放在项目的
secret
存储中,用法可以参考最后的实例
Required 云开发的访问密钥 secretId.
在腾讯云访问管理页面获取
Required 云开发的访问密钥 secretKey.
在腾讯云访问管理页面获取
Required 云开发的环境 id envId.
可以在云开发的控制台获取
请确保项目根目录存在 cloudbaserc.json
文件并配置好 CloudBase Framework,参考教程
如需配置部署地域,请参考配置字段
如果你的项目正在使用 CloudBase Framework,那么此 Action 就是 0 配置的
然后请根据你的需求引入相关插件,支持自动检测生成插件配置或手动填写插件配置
以下示例将演示:如何快速部署云函数到 CloudBase(同时设定部署的私密环境变量)
-
编写如下的 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/[email protected] 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
文件相同 -
在项目中配置
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}}" } } ] } } } } }
-
在项目 Settings/Secrets 里设置
secretId
,secretKey
,envId
,accessToken
信息 -
配置完成后,提交代码到 Github 时,就会自动部署项目中的
example
函数到云开发中,即时函数的环境变量也会设置成功
Thanks goes to these wonderful people (emoji key):
beet 💻 |
Zhaoxuan "Tony" Wu 💻 |
This project follows the all-contributors specification. Contributions of any kind welcome!