Skip to content

Commit

Permalink
更新文档
Browse files Browse the repository at this point in the history
  • Loading branch information
RayWangQvQ committed May 12, 2021
1 parent b588b6c commit d3e28c7
Show file tree
Hide file tree
Showing 7 changed files with 156 additions and 27 deletions.
Binary file added docs/imgs/tencent-scf-actions.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/imgs/tencent-scf-secret_yml.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
47 changes: 47 additions & 0 deletions gitHubActions/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# GitHub Actions 部署

<!-- TOC depthFrom:2 -->

- [介绍](#介绍)
- [步骤](#步骤)
- [复刻项目](#复刻项目)
- [添加 Secrets 配置](#添加-secrets-配置)
- [测试运行 Actions](#测试运行-actions)
- [其他](#其他)

<!-- /TOC -->

## 介绍
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分钟,避免每次测试都需要等待半小时**
File renamed without changes.
File renamed without changes.
134 changes: 109 additions & 25 deletions tencentScf/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,26 +4,109 @@
- [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-测试)

<!-- /TOC -->

## 1. 介绍
[腾讯云官网](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/),单击左侧导航栏【函数服务】,进入“函数服务”页面。顶部地域选择一个靠近自己地址的,点击新建按钮。**

如下图:
Expand Down Expand Up @@ -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. 配置触发器,设定运行时间和频率
**Ⅰ.点击左侧【触发管理】导航,点击“创建触发器”按钮**

如下图:
Expand All @@ -102,5 +175,16 @@

等到触发器设定的时间,对应的触发器就会去运行应用,自动完成任务。

### 3.2. 方式二:Actions自动部署
待开发
## 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)
2 changes: 0 additions & 2 deletions tencentScf/serverless.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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推送

0 comments on commit d3e28c7

Please sign in to comment.