为云服务器添加GitHub Actions

为云服务器添加GitHub Actions

要在 GitHub Actions 中实现将一个 Hexo 项目在 pushmain 分支时,自动执行 hexo generate,并将生成的文件同步到腾讯云轻量应用服务器的 FTP 文件夹,你可以按照以下步骤配置 GitHub Actions。

1. 准备工作

  • 确保你的 Hexo 项目已经推送到 GitHub 仓库,并且可以在本地运行 hexo generate
  • 确保你有腾讯云轻量云服务的 FTP 账号、密码、主机地址和目标文件夹。

2. 配置 GitHub Actions Workflow

在你的 Hexo 项目中,创建一个 GitHub Actions 的工作流文件。路径为 .github/workflows/deploy.yml,并使用以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
name: Deploy to Tencent Cloud FTP

# 触发条件:当推送到 main 分支时执行
on:
push:
branches:
- main

jobs:
deploy:
runs-on: ubuntu-latest

steps:
# 1. 检出代码仓库
- name: Checkout repository
uses: actions/checkout@v3

# 2. 设置 Node.js 环境
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '14' # 根据你的项目需求选择 Node.js 版本

# 3. 安装 Hexo 及其依赖项
- name: Install dependencies
run: |
npm install
npm install hexo-cli -g

# 4. 生成静态文件
- name: Generate Hexo static files
run: hexo generate

# 5. 使用 FTP 上传文件到腾讯云轻量应用服务器
- name: Deploy to FTP
uses: SamKirkland/FTP-Deploy-Action@4.3.1
with:
server: ${{ secrets.FTP_HOST }} # 正确的参数名为 server
username: ${{ secrets.FTP_USERNAME }} # 正确的参数名为 username
password: ${{ secrets.FTP_PASSWORD }} # 正确的参数名为 password
local-dir: ./public/ # Hexo 生成的静态文件目录
server-dir: /public/ # 你在腾讯云轻量应用服务器上的 FTP 文件夹
state-name: ftp-deploy-state.json # 记录部署状态的文件名,支持增量更新

3. 设置 GitHub Secrets

为了保护你的 FTP 连接信息,使用 GitHub 的 Secrets 功能来存储 FTP 主机地址、用户名和密码。你可以按照以下步骤进行设置:

  1. 打开你的 GitHub 仓库,点击 Settings

  2. 在左侧菜单中,选择 Secrets and variables -> Actions

  3. 点击 New repository secret,添加以下 Secrets:

    • FTP_HOST:你的腾讯云轻量云服务的 FTP 服务器地址。
    • FTP_USERNAME:你的 FTP 用户名。
    • FTP_PASSWORD:你的 FTP 密码。
  4. 保存这些 Secrets。

4. 解释各步骤

  • Checkout repository: 使用 actions/checkout 将当前的仓库代码拉取到 GitHub Actions 运行器上。

  • Set up Node.js: 安装 Node.js 环境,以便可以运行 npmhexo 相关命令。

  • Install dependencies: 安装项目的依赖和 hexo-cli

  • Generate Hexo static files: 执行 hexo generate 命令,生成静态文件到 public 文件夹。

  • Deploy to Tencent Cloud FTP: 使用 ftp-action 上传生成的静态文件(public 文件夹)到腾讯云轻量应用服务器上的 FTP 文件夹。

5. 推送到 main 分支进行测试

每当你将代码推送到 main 分支时,这个 workflow 将自动执行,生成 Hexo 静态文件并通过 FTP 部署到腾讯云轻量云服务器。

注意事项

  1. FTP 安全:FTP 传输可能不是最安全的方式,建议使用 SFTP 进行更安全的传输。如果你的轻量云服务支持 SFTP,可以考虑使用 SFTP 而不是 FTP。
  2. Hexo 生成目录:确保 hexo generate 生成的静态文件存放在 public 文件夹中,如果有自定义的生成目录,记得修改 local-dir 为相应的路径。

这套流程可以帮助你自动化部署 Hexo 静态站点到腾讯云轻量应用服务器,节省手动操作的时间。

作者

monster1935

发布于

2024-09-08

更新于

2024-09-25

许可协议