【日常记录】自动化部署与持续交付:GitHub Actions CICD

发布时间:2024年01月08日

1.背景

当我们做项目的时候,如果做完了,要发布,就需要打包,扔到服务器上,如果改了一点东西,还得打包,扔到服务器上,重复的执行打包=> 扔到服务器上
详细记录如何使用github actions自动化部署项目
自动化部署与持续交付:GitHub Actions CICD

自动化部署一般以下方式

  • Jenkins
  • gitlab
  • GitHub actions

2.具体流程

2.1 在自己的项目

保证自己的项目已经推送到了 GitHub上

git init
git add .
git commit -m "xxx"

2.2 设置GitHub token

  1. 进入GitHub官网,点击 右上角头像,点击 settings
  2. 在左侧导航中,点击 developer setting
  3. 点击 Tokens (classic) 然后,点击 Generate new token 继续点击 generate new token (classic)
  4. 进入新的界面,可以写个备注,设置过期时间,选中 repo的所有东西和 workflow 具体看下面的图
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

2.3 配置 workflows

在项目中新建.github文件夹,然后创建workflows文件夹,当我们提交到github后,他就去识别 workflows 文件夹下的 yml 格式文件,并且去执行他们

  • 举个例子,创建一个 ci.yml 文件 ,里面写入以下代码
name: CI
on:
  # 代码push的时候触发
  push:
    # master 分支的时候触发
    branches: master
jobs:
  # 定义一个job,名字为CI
  CI:
    # 使用github提供给我们的机器去跑
    runs-on: ubuntu-latest
    # 步骤
    steps:
      # 步骤名为test
      - name: test
        # 打印哈哈
        run: echo 嘿嘿嘿

然后当我们推送到 master 的时候他就会执行一些任务

在这里插入图片描述
还可以点进去,查看详情
在这里插入图片描述

目的肯定是:把打包后的文件推送到服务器上,那么就可以按照下面这样配置

name: CICD
on:
  # 代码push的时候触发
  push:
    # main 分支的时候触发
    branches:
      - main
jobs:
  # 定义一个job,名字为CI
  CI:
    # 使用github提供给我们的机器去跑
    runs-on: ubuntu-latest
    # 步骤
    steps:
      # 拉取最新的代码
      - name: Checkout repository
        uses: actions/checkout@v2
        with:
          # 克隆的分支
          ref: main
      # 安装node环境
      - name: Use Node.js
        uses: actions/setup-node@v3
        with:
          node-version: "18.x"
      # 安装依赖
      - name: Installing Dependencies
        run: npm install --legacy-peer-deps
      # 打包
      - name: Build
        run: npm run build
      # 产物上传服务器
      - name: Upload to Deploy Server
        uses: easingthemes/ssh-deploy@v2.0.7
        env:
          # 免密登录的秘钥
          SSH_PRIVATE_KEY: ${{ secrets.FWQ_PASS }}
          # 服务器登录用户名
          REMOTE_USER: ${{ secrets.FWQ_USER }}
          # 服务器的公网IP
          REMOTE_HOST: ${{ secrets.FWQ_IP }}
          # 你打包后产物的文件夹
          SOURCE: "dist/"
          # 先清空目标目录
          ARGS: "-avzr --delete"
          # 上传到服务器目标目录
          TARGET: "/project_ddg/vitetestcicd"

2.4 配置服务器SSH

  1. 进入服务器,进入 ~/.ssh 文件夹下, 就是 /root/.ssh
  2. 生成密钥
    3.拷贝 私钥 就是不带 pub 的那个文件,放到 2.5 步 创建 secrets 哪里即可

生成密钥操作步骤

# 如果你服务器已经有了 密钥 ,建议 指定一下 密钥名字
ssh-keygen -t rsa -C "youmail@gmail.com"

# 指定密钥名字,githubActionCICD 替换为你自己起的名字
ssh-keygen -t rsa -f githubActionCICD -C "youmail@gmail.com"

这样服务器就会生成两个文件
在这里插入图片描述


2.5 配置 repository secret

secrets 的东西需要在这里配置一下,名字可以自定义,

  • 1:FWQ_PASS:一般是 SSH登录,那么 这个地方,就得填写 服务器的私钥 就是2.4 步 生成的东西
  • 2:FWQ_USER:一般是 root
  • 3:FWQ_IP:就是服务器公网IP地址
    在这里插入图片描述

2.6 服务器安装宝塔

可以通过在线安装进行安装

在线安装地址

在这里插入图片描述

2.7 搭建网站

在这里插入图片描述

备注

不知道怎么处理的一个错误

虽然有这个错误,但是 去打开这个站点,看到的界面,确实是最新的,就是莫名其妙的会报这个错误, 求大佬解答~

在这里插入图片描述

文章来源:https://blog.csdn.net/qq_45634593/article/details/135376877
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。