Skip to content

GitHub Action自动部署博客

1440字约5分钟

HexoGitHub Action

2024-3-2

更新

因为Gitee Pages停止服务,所以本文删掉了Gitee Pages的部署步骤

参考

在此之前,默认你可以正常上传和下载仓库的文件

部署前准备

  1. TOKEN_GITHUB :GitHub的 token (私人令牌的密钥只会显示一次,如果忘了,那只能重新创建了)

    打开GitHub Token的方法:点击自己的Github头像 --> Settings --> Developer settings --> Personal access tokens --> Tokens(classic) --> Generate new token --> Generate new token(classic)

    Note 那里是自己Token的名字,名字可以随便取

    Expiration 是自己令牌的有效期,选择 No expiration 永不过期

    下面的 Select scopes 那里选择 repo以及其子项,然后在选择 workflow

    一切完成之后点击最下面的 Generate token 即可生成自己的 GitHub Token,记住GitHub Token只会显示一次,请务必要记住,否则自能重新生成

  2. GIT_NAME :自己Git名称 ,在设置SSH密钥时使用的Git名称

  3. GIT_EMAIL :自己的Git邮箱,在设置SSH密钥时使用的Git邮箱

❗❗❗

以上的这些信息要部署到自己的GitHub Action仓库中,所以建议将这些信息存放在txt文本中,方便整理添加

❗❗❗

  1. 创建两个GitHub仓库

    Action仓库:用来执行 GitHub Action (推荐私有,这样安全一点)

    Pages仓库:用来存放部署好的静态文件(设置公开,否则无法使用GitHub Pages)

  2. GitHub Action权限设置:打开刚刚创建的仓库,打开 Settings --> Actions --> General ,找到 Workflow permissions 选项,选择 Read and write permissions ,以及 Allow GitHub Actions to create and approve pull requests ,然后在点击下面的Save按钮

  3. 设置秘密文件:将上面准备的 TOKEN_GITHUBTOKEN_GITEEGIT_NAMEGIT_EMAILGITEE_PASSWORD 添加到GitHub Action仓库中

    添加方法在Settings --> Secrets and variables --> Actions 中,找到 Repository secrets 选项,点击 New repository secret 添加

    名字就为上面对应的五个名字 TOKEN_GITHUBTOKEN_GITEEGIT_NAMEGIT_EMAILGITEE_PASSWORD


编写GitHub Action脚本

创建文件夹 .github,然后在 .github 里面创建文件夹 workflows ,在 workflows 中创建文件 xxx.ymlyml 文件的名字可以随便取,然后编写 yml 文件

注意yml语句要对齐

❗❗❗

如果你不知道gulp插件的用法,建议去看看这篇博客使用gulp压缩博客静态资源 | Akilarの糖果屋

如果你觉得麻烦,可以不下载gulp插件,删掉关于 gulp 的语句即可

如果你的根目录中没有gulp的执行文件(也就是 gulpfile.js ),那么GitHub Action运行gulp时则会报错,这点须知(我已经把关于gulp的代码注释掉了,自己按需启用

❗❗❗


注意 ❗❗❗

GitHub Pages如果之前没有部署过,则需要自己手动部署一次,记得要在设置里面启动GitHub Pages


部署GitHub Action

❗❗❗将博客根目录下的 .git文件夹和 themes/自己的主题文件夹 下的 .git 文件夹删掉❗❗❗

将自己的 .github 文件夹放在自己博客的根目录下,在使用git将所有文件及文件夹上传到仓库1中,GitHub检测到 .github 会自动执行里面的脚本

Git上传代码:

git init

git add *

git commit -m "github action"

# GitHub地址改为上面创建的仓库1地址
git remote add origin git@github.com:xxx.git

git branch -M main

git push -f origin main

打开仓库1,点击 Actions 查看 GitHub Action 的运行情况

GitHub Action运行完成之后会显示一个绿色的 ✅ ,则表示运行成功

如果是红色的❌,则表示部署失败,则点击进去查看报错情况,然后根据报错情况自己百度,我上面推荐的那些博客说的也比较细致,推荐去看看,主要是第一篇和第二篇,或许能解决你的问题