Github Actions的使用

2022/11/8 Github

每次向Github提交Vuepress代码时,总是需要进行push和shell文件的运行,以此来进行重新部署,十分麻烦。所以要使用Github Actions来进行项目自动化部署。

# 初始化

首先在所在项目内创建.github\workflows文件路径,在该路径下创建main.yml文件,进行如下配置:

name: docs

on:
  # 每当 push 到 main 分支时触发部署
  push:
    branches: [main]
  # 手动触发部署
  workflow_dispatch:

jobs:
  docs:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2
        with:
          # “最近更新时间” 等 git 日志相关信息,需要拉取全部提交记录
          fetch-depth: 0

      - name: Setup Node.js
        uses: actions/setup-node@v1
        with:
          # 选择要使用的 node 版本
          node-version: "16"

      # 缓存 node_modules
      - name: Cache dependencies
        uses: actions/cache@v2
        id: yarn-cache
        with:
          path: |
            **/node_modules
          key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
          restore-keys: |
            ${{ runner.os }}-yarn-

      # 如果缓存没有命中,安装依赖
      - name: Install dependencies
        if: steps.yarn-cache.outputs.cache-hit != 'true'
        run: yarn

      # 运行构建脚本
      - name: Build VuePress site
        run: yarn build

      # 查看 workflow 的文档来获取更多信息
      # @see https://github.com/crazy-max/ghaction-github-pages
      - name: Deploy to GitHub Pages
        uses: JamesIves/github-pages-deploy-action@3.7.1
        with:
          ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}
          # 部署到 gh-pages 分支
          BRANCH: gh-pages
          # 部署目录为 VuePress 的默认输出目录
          FOLDER: ./public
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
44
45
46
47
48
49
50
51
52
53
54
55

此处需要注意的是:需要对您的Github仓库进行个人密钥Token的配置。

# 个人Token配置

# Token生成

进入Github(科学上网),选择个人的setting配置项。

github 01

选择 Person access tokens 下的 Token(classic) 新建Token:

github 02

需要注意,此处的Note最好为ACCESS_Token,且选择repo选项。

# 仓库Token配置

进入到仓库的 setting 选项,选择 secret 选项卡,进行密钥的配置。

github 02

# 开始部署

回到本地,进行git的日常提交。

git add .
git commit -m "actions"
git push
1
2
3

随后打开github,查看Actions选项内是否正常进行了部署。

若为下图所示,则恭喜创建成功! github 02

# 错误

当然情况总是不尽人意,报错也十有八九。 github 02

这样的报错,可能性有许多。

Run actions/checkout@v3
Syncing repository: 1553690132/blog
Getting Git version info
Temporarily overriding HOME='/home/runner/work/_temp/674fd481-242d-40bc-9d02-284326485d82' before making global git config changes
Adding repository directory to the temporary git global config as a safe directory
/usr/bin/git config --global --add safe.directory /home/runner/work/blog/blog
Deleting the contents of '/home/runner/work/blog/blog'
Initializing the repository
Disabling automatic garbage collection
Setting up auth
Fetching the repository
Determining the checkout info
Checking out the ref
Setting up auth for fetching submodules
Fetching submodules
  /usr/bin/git submodule sync --recursive
  /usr/bin/git -c protocol.version=2 submodule update --init --force --depth=1 --recursive
  Error: fatal: No url found for submodule path 'public' in .gitmodules
  Error: The process '/usr/bin/git' failed with exit code 128
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

此处我的报错,就是因为在deploy.sh文件内,未对项目部署时进入的文件夹进行确切指定,需要进行如下修改:

# 进入生成的文件夹
cd ./public
1
2

报错总是莫名其妙,但自动化部署可以节省我们大巴的时间,所以还是值得一试的利器。

Last Updated: 2022/11/8 15:10:34
    等你下课
    周杰伦