diff --git a/docs/imgs/tencent-scf-actions.png b/docs/imgs/tencent-scf-actions.png new file mode 100644 index 0000000..7e39ccf Binary files /dev/null and b/docs/imgs/tencent-scf-actions.png differ diff --git a/docs/imgs/tencent-scf-secret_yml.png b/docs/imgs/tencent-scf-secret_yml.png new file mode 100644 index 0000000..5ce0cda Binary files /dev/null and b/docs/imgs/tencent-scf-secret_yml.png differ diff --git a/gitHubActions/README.md b/gitHubActions/README.md new file mode 100644 index 0000000..a359296 --- /dev/null +++ b/gitHubActions/README.md @@ -0,0 +1,47 @@ +# GitHub Actions 部署 + + + +- [介绍](#介绍) +- [步骤](#步骤) + - [复刻项目](#复刻项目) + - [添加 Secrets 配置](#添加-secrets-配置) + - [测试运行 Actions](#测试运行-actions) +- [其他](#其他) + + + +## 介绍 +GA 是微软(巨硬)收购 G 站之后新增的内置 CI/CD 方案,其核心就是一个可以运行脚本的小型服务器。 + +有了它,我们就可以实现每天线上自动运行我们的应用程序,通过配置还可以实现版本的自动同步更新。 + +## 步骤 +### 复刻项目 +首先点击本页面右上角的 fork 按钮,复刻本项目到自己的仓库 + +### 添加 Secrets 配置 +进入自己 fork 的仓库,点击 Settings-> Secrets-> New Secrets, 添加 1 个 Secrets,其名称为`COOKIESTR`,值为刚才我们保存的 `cookie 字符串`。它们将作为配置项,在应用启动时传入程序。 + +![Secrets图示](../docs/imgs/git-secrets.png) + +![添加CookieStr图示](../docs/imgs/git-secrets-add-cookie.png) + + +### 测试运行 Actions +刚 Fork 完,所有 Actions 都是默认关闭的,都配置好后,需要手动点击 Enable 开启 Actions。开启后请手动执行一次工作流,验证是否可以正常工作,操作步骤如下图所示: + +![Actions图示](../docs/imgs/run-workflow.png) + +运行结束后,请查看运行日志: + +![Actions日志图示](../docs/imgs/github-actions-log-1.png) +![Actions日志图示](../docs/imgs/github-actions-log-2.png) + + +## 其他 +Actions 的执行策略默认是每天 0 点整触发运行,如要设置为指定的运行时间,请详见下面**常见问题**章节中的《**Actions 如何修改定时任务的执行时间?**》 + +**建议每个人都设置下每日执行时间!不要使用默认时间!最好也不要设定在整点,错开峰值,避免 G 站的同一个IP在相同时间去请求 B 站接口,导致 IP 被禁!** + +**应用运行后,会进行0到30分钟的随机睡眠,是为了使每天定时运行时间在范围内波动。刚开始如果需要频繁调试,建议使用empty-task.yml来调试,或者参考下面的个性化自定义配置章节,将睡眠配置为1分钟,避免每次测试都需要等待半小时** diff --git a/bak/bilibili-daily-task.yml b/gitHubActions/bak/bilibili-daily-task.yml similarity index 100% rename from bak/bilibili-daily-task.yml rename to gitHubActions/bak/bilibili-daily-task.yml diff --git a/bak/live-lottery-task.yml b/gitHubActions/bak/live-lottery-task.yml similarity index 100% rename from bak/live-lottery-task.yml rename to gitHubActions/bak/live-lottery-task.yml diff --git a/tencentScf/README.md b/tencentScf/README.md index 70a7792..2a9b48b 100644 --- a/tencentScf/README.md +++ b/tencentScf/README.md @@ -4,12 +4,21 @@ - [1. 介绍](#1-介绍) - [2. 注册账号](#2-注册账号) - [3. 部署](#3-部署) - - [3.1. 方式一:上传zip包部署](#31-方式一上传zip包部署) - - [3.1.1. 下载压缩包到本地](#311-下载压缩包到本地) - - [3.1.2. 云函数控制台新增函数服务](#312-云函数控制台新增函数服务) - - [3.1.3. 手动运行测试](#313-手动运行测试) - - [3.1.4. 配置触发器,设定运行时间和频率](#314-配置触发器设定运行时间和频率) - - [3.2. 方式二:Actions自动部署](#32-方式二actions自动部署) + - [3.1. 方式一:Actions自动部署(推荐)](#31-方式一actions自动部署推荐) + - [3.1.1. 复刻本仓库到自己的GitHub仓库](#311-复刻本仓库到自己的github仓库) + - [3.1.2. 到腾讯云获取密钥](#312-到腾讯云获取密钥) + - [3.1.3. 通过 Secrets 添加配置](#313-通过-secrets-添加配置) + - [3.1.3.1. 密钥相关配置](#3131-密钥相关配置) + - [3.1.3.2. 云函数配置](#3132-云函数配置) + - [3.1.3.3. 自动定时更新部署配置](#3133-自动定时更新部署配置) + - [3.1.4. 手动执行Actions](#314-手动执行actions) + - [3.1.5. 测试云函数](#315-测试云函数) + - [3.2. 方式二:上传zip包部署](#32-方式二上传zip包部署) + - [3.2.1. 下载压缩包到本地](#321-下载压缩包到本地) + - [3.2.2. 云函数控制台新增函数服务](#322-云函数控制台新增函数服务) + - [3.2.3. 手动运行测试](#323-手动运行测试) + - [3.2.4. 配置触发器,设定运行时间和频率](#324-配置触发器设定运行时间和频率) +- [4. 测试](#4-测试) @@ -17,13 +26,87 @@ 见[腾讯云官网](https://cloud.tencent.com/document/product/583) ## 2. 注册账号 -注册成功后,需要激活云函数SCF功能。因为会赠送免费额度,所以正常使用是免费的。 +注册成功后,需要激活云函数 SCF 功能。因为会赠送免费额度,所以正常使用是免费的。 ## 3. 部署 -### 3.1. 方式一:上传zip包部署 -#### 3.1.1. 下载压缩包到本地 +### 3.1. 方式一:Actions自动部署(推荐) +该方式可以实现自动定期部署,保证代码始终的最新版本的。 +#### 3.1.1. 复刻本仓库到自己的GitHub仓库 +点击本 GitHub 仓库右上角的 `Fork` 按钮,复刻本项目到自己的仓库。 + +#### 3.1.2. 到腾讯云获取密钥 +[官方对授权的说明](https://cloud.tencent.com/document/product/1154/43006) + +手动部署时,可以通过扫描二维码来进行授权。但为了避免人工的重复授权,我们将采用密钥授权的方式,步骤如下: + +**Ⅰ.登录腾讯云后,点击进入[腾讯云密钥管理](https://console.cloud.tencent.com/cam/capi)页面** + +如果提示创建子账号,可以先拒绝。简单起见,直接使用主账号创建即可。 + +**Ⅱ.点击新建密钥按钮,创建一个密钥。复制并保存 `SecretId` 和 `SecretKey` 两项内容,待会儿会用到它们** + +如下图所示: +![新建密钥](../docs/imags/tencent-scf-secret.png) + +#### 3.1.3. 通过 Secrets 添加配置 +进入自己 fork 的仓库,点击 Settings-> Secrets-> New repository secret,添加如下 Secrets 作为配置: + +##### 3.1.3.1. 密钥相关配置 +这两个配置决定了会部署到哪个腾讯云账户的 SCF 下面。 + +| 配置名称 | Name | Value | +| :----: | :----: | :----: | +| Id | `TENCENT_SECRET_ID` | 刚才在官网获取到的 SecretId | +| Key | `TENCENT_SECRET_KEY` | 刚才在官网获取到的 SecretKey | + +##### 3.1.3.2. 云函数配置 +Actions 使用 `Serverless Framework` 来部署,通过 `serverless.yml` 来配置函数信息(如函数应用名称、区域、环境变量和触发器等)。 + +配置步骤如下: + +**Ⅰ.拷贝或下载 [serverless.yml](../src/tencentScf/serverless.yml) 文件内容到本地文件中,开始编辑内容** + +其中主要需要改的是最下方的环境变量,这些环境变量在部署后会添加到云函数中(即云函数控制台看到的环境变量集合),它们将作为应用配置传入bilibili_tool + +其中 cookie 是必填项,其他应用配置的也可以通过添加相应的环境变量实现,建议自己添加UA、推送等配置。(配置信息请参考[配置说明文档](../docs/configuration.md)) + +其他 `serverless.yml` 可选配置内容请参考[官方说明](https://github.com/serverless-components/tencent-scf/blob/master/docs/configure.md) + +**Ⅱ.拷贝修改后的内容,将其整个添加到 secrets 中** + +| 配置名称 | Name | Value | +| :----: | :----: | :----: | +| serverless.yml内容 | `TENCENT_SERVERLESS_YML` | 刚才拷贝的整个文件内容 | + +如下图所示: +![新增serverless.yml配置到secret](../docs/imgs/tencent-scf-secret_yml.png) + +##### 3.1.3.3. 自动定时更新部署配置 + +添加如下配置开启自动定时部署: + +| 配置名称 | Name | Value | +| :----: | :----: | :----: | +| 定时自动部署 | `IsAutoDeployTencentScf` | true | + +自动部署只是定时会将自己仓库的代码部署到云函数,想要自动更新,还需要开启仓库的自动同步,详见常见问题文档中的 《我 Fork 之后如何同步原作者的更新内容?》章节 + +#### 3.1.4. 手动执行Actions +在自己仓库页面,依次点击 Actions ——> auto-deploy-tencent-scf ——> Run workfolw ,手动触发部署工作流。 + +如下图所示: +[运行actions](../docs/imgs/tencent-scf-secret_yml.png) + +#### 3.1.5. 测试云函数 +如果部署成功,那么登录自己的腾讯云函数控制台,就可以看到对应的函数应用了。 + +请参考下节《测试》进行手动测试函数运行。 + +### 3.2. 方式二:上传zip包部署 +该方式比较简单直观,但是代码是上传是固定版本,想更新的话需要再次手动上传。 +#### 3.2.1. 下载压缩包到本地 点击[BiliBiliTool/release](https://github.com/RayWangQvQ/BiliBiliTool/releases),选择最新版本的 `tencent-scf.zip` ,下载到本地 -#### 3.1.2. 云函数控制台新增函数服务 +#### 3.2.2. 云函数控制台新增函数服务 **Ⅰ.进入[云函数控制台](https://console.cloud.tencent.com/scf/),单击左侧导航栏【函数服务】,进入“函数服务”页面。顶部地域选择一个靠近自己地址的,点击新建按钮。** 如下图: @@ -66,20 +149,10 @@ 触发器配置先不用管,可以等测试完成后再添加 -#### 3.1.3. 手动运行测试 -**Ⅰ.成功创建函数后,会看到如下的函数管理页面,点击顶部函数代码 Tab 页,准备测试。** - -如下图: - -![tencent-scf-test-1.png](../docs/imgs/tencent-scf-test-1.png) - -**Ⅱ.下拉,找到测试按钮,点击运行测试,页面下方会同步显示日志。如果运行正常,则表示部署已成功。** - -如下图: +#### 3.2.3. 手动运行测试 +参考下节《测试》进行手动测试。 -![tencent-scf-test-2](../docs/imgs/tencent-scf-test-2.png) - -#### 3.1.4. 配置触发器,设定运行时间和频率 +#### 3.2.4. 配置触发器,设定运行时间和频率 **Ⅰ.点击左侧【触发管理】导航,点击“创建触发器”按钮** 如下图: @@ -102,5 +175,16 @@ 等到触发器设定的时间,对应的触发器就会去运行应用,自动完成任务。 -### 3.2. 方式二:Actions自动部署 -待开发 \ No newline at end of file +## 4. 测试 + +**Ⅰ.成功部署好函数后,会看到如下的函数管理页面,点击顶部函数代码 Tab 页,准备测试。** + +如下图: + +![tencent-scf-test-1.png](../docs/imgs/tencent-scf-test-1.png) + +**Ⅱ.下拉,找到测试按钮,点击运行测试,页面下方会同步显示日志。如果运行正常,则表示部署已成功。** + +如下图: + +![tencent-scf-test-2](../docs/imgs/tencent-scf-test-2.png) \ No newline at end of file diff --git a/tencentScf/serverless.yml b/tencentScf/serverless.yml index 4dd8ed7..b07047c 100644 --- a/tencentScf/serverless.yml +++ b/tencentScf/serverless.yml @@ -41,5 +41,3 @@ inputs: variables: # 根据自己的需要修改 Ray_CloseConsoleWhenEnd: 1 Ray_BiliBiliCookies__1: 123 # cookie,必填 - Ray_Security__UserAgent: abc # UA - Ray_Serilog__WriteTo__9__Args__token: xyz # PushPlus推送