Github Actions

deployment

# 部署步骤

  1. 设置tokens,点击头像,Settings > Developer settings > Personal access tokens

image

  1. 点击Generate new token 按钮,填写note信息(不能为空),将repo的选项勾选(允许访问git仓库权限),提交就生成好了一个token

image

注意!!!

Token要记下来,只能拿到一次

  1. 在本地的项目中添加.github/workflows/depoy.yml的文件夹和文件,将下面的内容粘贴进去,
name: GitHub Actions Build and Deploy Demo
on:
  push:
    branches:
      - master
jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout
      uses: actions/checkout@master
    - name: Build and Deploy
      uses: JamesIves/github-pages-deploy-action@master
      env:
        ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}
        BRANCH: gh-pages
        FOLDER: dist
        BUILD_SCRIPT: npm install && npm run build
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  1. 在package.json里面添加配置选项
"homepage": "https://[用户名].github.io/[仓库地址]/",
1
  1. 配置vue.config.js,这个目的是为了配置index.html中插入的js和css路径,默认插入的路径是/,即根路径.如果是生产环境的话,就使用我们配置的那个仓库地址之后,所以后面要加一个子路径
module.exports = {
  outputDir: 'dist',
  publicPath: process.env.NODE_ENV === 'production' ? '/github的仓库名称/' : '/'
}
1
2
3
4
  1. 配置的详细介绍
# 名字
name: GitHub Actions Build and Deploy Demo
# 触发的条件 往master分支push的时候就会触发下面的任务
on:
  push:
    branches:
      - master
# 工作的流程
jobs:
  build-and-deploy:
    # 运行在一个临时的操作系统,其实是一个docker,在docker里面开启了一个乌班图系统(linux系统)
    # 整个流程完成之后,系统就销毁了
    runs-on: ubuntu-latest
    steps:
    # 第一个任务,将当前的项目checkout,克隆下来
    # actions,markect里面有很多actions,这个是官方给的
    - name: Checkout
      uses: actions/checkout@master
    # 别人写好的actions,可以到这个网站上搜索别人写好的actions,以及用法 https://github.com/marketplace/actions/deploy-to-github-pages
    - name: Build and Deploy
      uses: JamesIves/github-pages-deploy-action@master
      # 环境变量
      env:
        # 访问仓库的tocken,刚才在开发者里面设置的
        ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}
        # 创建新分支
        BRANCH: gh-pages
        # 打包之后的目录
        FOLDER: dist
        # 打包命令
        BUILD_SCRIPT: npm install && npm run 
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
  1. ACCESS_TOKEN 中的 secrets.ACCESS_TOKEN 变量,要去项目的Settings > Secrets上创建

image

image

  1. 把当前项目中的内容commit提交,可以看到当前的仓库中只有master分支

image

  1. 将项目git push origin master到远程目录,可以看到Actions里面有任务在执行

image

image

  1. 执行完毕之后可以看到任务完成

image

  1. 这个时候出现了一个新的分支gh-pages,里面的内容就是运行打包之后打包好的项目

image

image

  1. 然后去Setting > GitHub Pages里面将分支设置为gh-pages,save按钮之后就设置好了.

image

  1. 可以进行使用了,在网页中修改一个东西,然后git提交并push到远程,等actions运行完之后,网页中可以看到内容.

image

image

不过这个过程非常的长,可能部署一次,要好几分钟.

# 设置自己的域名

  1. 如果想要修改域名为自己的,可以在这里设置

image

  1. 首先要去阿里云购买一个域名,然后进入主机编辑

image

  1. 输入域名之后点击save保存,保存之后可以看到项目中有一个CANME的文件,所以记得在打包文件里面也要添加CNAME文件,否则自定义域名会失效

image

image

  1. 访问网页可以看到保存之后的css和js的路径丢失,需要把vue.config.js里面的目录进行修改,改为根目录或者直接将文件删除即可
module.exports = {
  outputDir: 'dist',
  publicPath: process.env.NODE_ENV === 'production' ? '/' : '/'
}
1
2
3
4

5.可以看到访问是正常的,自定义域名设置成功

image

# 部署特点

Github上只是托管了我们打包后的静态内容,所以不能部署基于node.js开发的应用,只能部署静态页面。

想要部署node开发的应用,可以使用vercel。

更新时间: 2022-01-26 22:04