有手就行的前端CI/CD自动部署技能,几分钟学会github Actions工作流用法!

183 阅读1分钟

传统的前端发包部署通过本地打包后,使用ftp工具或者直接登录服务器将文件放到指定的目录内;新一代的前端工程化模式下通过jenkins、docker等一系列工具进行自动化部署。

前者步骤重复繁琐,后者对大部分前端同学来说上手又需要学习成本,今天这篇文章只需要几步,让各位实现免费且好用的前端自动化部署。

这里我们使用github提供的actions工作流来实现我们的需求

image.png

切换至Actions,点击按钮添加我们的第一个工作流

这里直接贴main.yml文件,大家可以直接复制过去,修改参数成自己的即可使用

# ci.yml
name: Vue3 Template Cli CI  # 工作流名称
on:         # on指的是触发工作流的条件
  push:     # 我们这里触发条件设定为push推送代码时触发,同时也可以设为数组[push,pull_request]
    branches: # 限定分支
      - main  # 指定为main分支,只有在main分支推送代码才会去触发
jobs:           # 我们的工作流主体
  build-and-deploy:  #job_id 可在同级指定多个任务
    # 这里有未曾列举的参数
    # needs: job_id_2 指运行job_id_2后再去执行当前任务
    # name: 任务的相关说明
    concurrency: ci-${{ github.ref }}  # 使用并发
    runs-on: ubuntu-latest   # 运行的虚拟机环境 必须
    steps:  # 每个任务所执行的步骤
      - name: Checkout  ️ # 将代码拉取到虚拟机
        uses: actions/checkout@v3  # 使用的插件

      - name: Install and Build # 安装依赖、打包,如果提前已打包好无需这一步
        run: |
          npm install   # 装包
          npm run build # 打包

      - name: copy dist fil with scp    
        uses: wlixcc/SFTP-Deploy-Action@v1.2.4 # 所需的ftp工具,将打包内容进行服务器上传
        with:  # 这里是上传服务器所需的一些参数
          server: ${{ secrets.REMOTE_HOST }}  # 服务器ip地址
          username: 'root'  # 账号
          password: ${{ secrets.REMOTE_PASSWORD }} # 密码
          port: 22 # 端口号
          local_path: './vue3-template-cli' # 需要进行上传的文件夹
          remote_path: '/usr/share/nginx/html' # 文件上传所在目录
          sftp_only: true  # 只允许sftp上传

可以看到服务器上传时需要将地址、账号密码以及目录相关信息写在配置文件中,这显然是不合理的,别人可以很轻易的获取我们服务器的信息。这里我们将重要信息通过github提供给Actions使用的密钥进行配置。

image.png

在这里进行一些重要信息的存储,通过${{}}的方式进行使用即可。

完成以上就可以进行保存了

image.png

点击Commit Changes

image.png

开始执行工作流

image.png

稍等片刻可以看到我们的任务执行成功

image.png

登录服务器可以看到前端包也进行过了更新,至此我们的部署流程全部实现啦!!!

如果觉得对自己有用,不妨点个赞吧!