Github Actions 自动化部署前端项目(超详细)

1,424 阅读3分钟

前言

关于部署项目,一直以来我也没注重太多;作为前端开发,例如自己 github 代码仓库的项目,就直接使用 git pages 了,一是用起来方便,而是也不需要额外购置云服务器。

对于 git pages ,部署项目会先选择部署的分支,然后选择部署的目录就OK了,但是部署的目录只能是docs或者根目录,所以一直以来用的都是docs目录,在前端vue项目或者react项目打包输出成docs就行,所以对于 Github Actions 也没有太多的了解。

直到最近几天,准备搭建一个文档类型的网站,本来也是准备采用docs目录进行部署,但是搭建的项目里已经存在了docs目录,打包的时候就只能换个目录输出,这才有了以下的 Github Actions

如何创建 wrokflow

  • 关于github上如何创建代码仓库以及关联本地项目就不做介绍了,本文主要讲解下前端工程化项目的自动打包部署。
  • 在代码仓库点击 Actions ,然后选择 New workflow

image.png

  • 这里的话新建自己的 Workflow

image.png

  • 默认为 main.yml,名称随意,点击提交即可。

image.png

  • 之后自己的项目下就会生成一个 .github 的文件,拉取一下代码,在本地配置一下actions。

image.png

配置 wrokflow

  • 打开拉取到本地的配置文件

image.png

  • 主要配置代码如下

    name: CI
     # 触发条件:在 push 到 main/master 分支后,新的 Github 项目 应该都是 main,而之前的项目一般都是 master
     on:
       push:
         branches:
           - main
    
     # 任务
     jobs:
       build-and-deploy:
         # 服务器环境:最新版 Ubuntu
         runs-on: ubuntu-latest
         steps:
           # 拉取代码
           - name: Checkout
             uses: actions/checkout@v2
             with:
               persist-credentials: false
           # 生成静态文件
           - name: Build
             run: |
               npm install  # 安装依赖
               npm run docs:build  # 执行打包
    
           # 部署到 GitHub Pages
           - name: Deploy
             uses: JamesIves/github-pages-deploy-action@v4.3.3
             with:
               ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }} # 也就是我们刚才生成的 secret
               BRANCH: gh-pages # 部署到 gh-pages 分支,因为 main 分支存放的一般是源码,而 gh-pages 分支则用来存放生成的静态文件
               FOLDER: docs-dist # 生成的静态文件存放的地方
    
  • 其中 on 部分为监听的分支,默认为 main

  • jobs 为执行的任务,安装依赖和执行打包的命令根据自己的需要修改,我这里的打包为文档,一般默认为 npm run build 就OK。

  • 最后的 FOLDER 为打包输出的目录,会将该目录的文件存放到 gh-pages 分支下。

  • 注意:ACCESS_TOKEN 为git上生成的secret,下面将会说如何生成secret。

生成 secret

  • 点击git中右上角的头像,选择设置。

image.png

  • 选择 Developer settings

image.png

  • 选择最后一项,然后点击 Generate new token

image.png

  • 勾选上以下几项

image.png

image.png

  • 这时候就能看到创建的token了。
  • 打开某个仓库的设置,点击actions

image.png

  • 点击右上角的 New repository secret,将刚才生成的token存入其中。Name和配置文件中的一致,我这里设置的是 ACCESS_TOKEN。

image.png

image.png

  • 完成后基本的配置就OK了。

配置 Github Pages

上述的步骤完成后,关于actions的配置也就结束了。本地代码push之后,就可以在actions里面看到正在执行的了。

image.png 关于git-pages的配置,在设置里选择pages,pages的配置选择 gh-pages 分支和根目录即可。

image.png 完成以上配置就可以看到能自动化部署成功了,这里是我部署后的页面。

image.png 关于域名可以在git pages里绑定自己的域名,提前要在阿里云或者腾讯云做好域名解析即可;记录类型选择 CNAME,记录值为自己github的名称,如下所示。

image.png

喜欢的话点个赞吧!