Skip to content

Commit

Permalink
完善自动发布流程
Browse files Browse the repository at this point in the history
  • Loading branch information
comsince committed Apr 20, 2024
1 parent 04fac73 commit e8086c0
Show file tree
Hide file tree
Showing 2 changed files with 101 additions and 1 deletion.
10 changes: 10 additions & 0 deletions .github/workflows/build_deploy_server.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,13 @@ jobs:
password: ${{ secrets.SERVER_PASSWORD }}
source: "build/"
target: "/data/github/fsharechat.cn" # 更改为您的目标服务器目录

- name: SSH into server
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USERNAME }}
password: ${{ secrets.SERVER_PASSWORD }}
script: |
nginx -t
nginx -s reload
92 changes: 91 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,4 +59,94 @@ On every `git commit` we check that images added to `static/img/*` do not exceed

# reference

* [questdb.io](https://github.com/questdb/questdb.io)
* [questdb.io](https://github.com/questdb/questdb.io)


# github aciton

当前流程是自动编译项目,然后将build目录转发到服务器指定目录,此项目提交自动发布到服务器,无需二次上传,自动刷新nginx

* 如下为nginx配置

```
location / {
root /data/github/fsharechat.cn/build;
index index.html index.htm;
try_files $uri $uri/ /index.html =404;
}
```

# 详细步骤

要在 GitHub Actions 中编译 Docusaurus 项目并将生成的构建目录(build)提交到指定服务器目录,可以按照以下步骤进行操作:

1. 在 Docusaurus 项目的根目录下创建一个名为 `.github/workflows/main.yml` 的文件。

2. 将以下内容复制到 `main.yml` 文件中:

```yaml
name: Build and Deploy Docusaurus

on:
push:
branches:
- main # 更改为您的主要分支名称

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v2

- name: Install Node.js
uses: actions/setup-node@v2
with:
node-version: 14

- name: Install dependencies
run: yarn install

- name: Build Docusaurus
run: yarn build

- name: Deploy to server
uses: appleboy/scp-action@master
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USERNAME }}
password: ${{ secrets.SERVER_PASSWORD }}
source: "build/"
target: "/path/to/destination" # 更改为您的目标服务器目录
```
3. 替换上述代码中的以下部分:
- `branches` 字段:根据您的项目分支名称进行调整。
- `target` 字段:将 `/path/to/destination` 更改为服务器上的目标目录路径。

4. 创建一个名为 `SERVER_HOST` 的 GitHub Secrets,将其值设置为目标服务器的主机名或 IP 地址。
- 在 GitHub 仓库页面的右上角,依次点击 "Settings"、"Secrets"、"New repository secret"。
- 设置名称为 `SERVER_HOST`,值为目标服务器的主机名或 IP 地址。

5. 创建 `SERVER_USERNAME` 和 `SERVER_PASSWORD` 两个 GitHub Secrets,将其分别设置为连接到目标服务器所需的用户名和密码。
- 在 GitHub 仓库页面的右上角,依次点击 "Settings"、"Secrets"、"New repository secret"。
- 设置名称为 `SERVER_USERNAME`,值为连接到目标服务器所需的用户名。
- 设置名称为 `SERVER_PASSWORD`,值为连接到目标服务器所需的密码。

**NOTE:** 注意这里的一定要确认服务器用户名,密码是否正确

6. 将更改的代码和 Secrets 推送到 GitHub 仓库。

# 原理说明

当您推送到 GitHub 仓库的 `main` 分支时,GitHub Actions 将自动触发工作流程。该工作流程将在 Ubuntu 环境中运行,并执行以下操作:

- 检出仓库代码。
- 安装 Node.js。
- 安装项目的依赖项。
- 构建 Docusaurus 项目。
- 使用 SCP 将构建目录中的内容(build)上传到指定服务器目录。

请确保替换代码中的占位符,并根据服务器连接要求设置正确的 Secrets 值。

0 comments on commit e8086c0

Please sign in to comment.