20230308-【GIT使用】自动化更新部署

110 阅读3分钟

Github Actions配合Github Pages实现项目自动化打包更新部署

首先,我想用这个是因为要搭一个博客,用的vuepress-reco这个模板,基于vuepress的嘛大家用的挺多的,非常方便就搭建好了,ok,打包部署到我的云服务器上,到这里都很顺利。但是vuepress毕竟还是个静态网站生成器,那我每次写一个md要放进去还得重新打包一次部署一次啊,多麻烦啊,但当时我还不知道github actions这个好东西,我就有了下面这个奇葩的思路:

我先搞了个写md的页面,写完点击保存就调用后台接口,把文件存在服务器上项目对应的文件夹中,然后调用一个bat命令在服务器上进行打包,等打包完就行了。我在本地测的还挺成功的,不过在服务器上打包老是失败,很无语,我甚至还尝试了直接运行项目。。虽然成功了,但是在云服务器上搞这些不合适。。。

后来我发现了这个东西,心想这不是和我的思路差不多吗,于是就找教程试了试。

新建一个repository

用来存放项目,注意一定要public,不然后面开启pages的时候就不行了。

新建一个Workflow

就是告诉github在你的项目提交更新后,它要做些什么,这里有很多模板,我就想要一个能打包部署的。

name: CI Github Pages
on:
  #监听push操作
  push:
    branches:
      - main # 这里只配置了main分支,所以只有推送main分支才会触发以下任务
jobs:
  # 任务ID
  build-and-deploy:
    # 运行环境
    runs-on: ubuntu-latest
    # 步骤
    steps:
      # 官方action,将代码拉取到虚拟机
      - name: Checkout   
        uses: actions/checkout@v3

      - name: Install and Build   # 安装依赖、打包,如果提前已打包好无需这一步
        run: |
          npm install
          npm run build
      - name: Copy to root   # 将打包好的文件复制到docs目录,这里是为了方便部署,如果不需要可以删除
        run: |
          cp -r .vuepress/dist/* docs/1

      - name: Deploy   # 部署到gh-pages分支
        uses:
          peaceiris/actions-gh-pages@v3
        with:
          github_token: ${{ secrets.ACCESS_TOKEN }}
          publish_dir: ./docs/1

这里用到了github token,在Personal Access Tokens (Classic) (github.com)这里生成,点击Generate new token,勾选上这些选项就可以点击生成了,这个token只会给你展示一次,复制下来自己存好。

再回到项目的Setting中,把刚创建的token放进来,这里的Name和yml配置中github_token里面对应的。

开启gh-pages

把这里配置一下就可以了,刷新页面就会显示你的pages访问地址,这个gh-pages分支是在执行上面的workflow的最后一个步骤时创建并推送的,至此,就可以访问到部署的项目了。

push一下试试

在本地push之后,就可以看到actions在执行了,包括每一步的执行情况,如果没有错误,执行成功后就是绿色的对钩,再去访问一下部署的页面就可以看到更新后的网页了。

laogao (gaopengbin.github.io)