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

文章目录

    • 1.背景
    • 2.具体流程
      • 2.1 在自己的项目
      • 2.2 设置GitHub token
      • 2.3 配置 workflows
      • 2.4 配置服务器SSH
      • 2.5 配置 repository secret
      • 2.6 服务器安装宝塔
      • 2.7 搭建网站
    • 备注
      • 不知道怎么处理的一个错误

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 具体看下面的图
    【日常记录】自动化部署与持续交付:GitHub Actions CICD_第1张图片
    【日常记录】自动化部署与持续交付:GitHub Actions CICD_第2张图片
    【日常记录】自动化部署与持续交付:GitHub Actions CICD_第3张图片

【日常记录】自动化部署与持续交付:GitHub Actions CICD_第4张图片

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 的时候他就会执行一些任务

【日常记录】自动化部署与持续交付:GitHub Actions CICD_第5张图片
还可以点进去,查看详情
【日常记录】自动化部署与持续交付:GitHub Actions CICD_第6张图片

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

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-[email protected]
        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 "[email protected]"

# 指定密钥名字,githubActionCICD 替换为你自己起的名字
ssh-keygen -t rsa -f githubActionCICD -C "[email protected]"

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


2.5 配置 repository secret

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

  • 1:FWQ_PASS:一般是 SSH登录,那么 这个地方,就得填写 服务器的私钥 就是2.4 步 生成的东西
  • 2:FWQ_USER:一般是 root
  • 3:FWQ_IP:就是服务器公网IP地址
    【日常记录】自动化部署与持续交付:GitHub Actions CICD_第7张图片

2.6 服务器安装宝塔

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

在线安装地址

【日常记录】自动化部署与持续交付:GitHub Actions CICD_第8张图片

2.7 搭建网站

【日常记录】自动化部署与持续交付:GitHub Actions CICD_第9张图片

备注

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

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

【日常记录】自动化部署与持续交付:GitHub Actions CICD_第10张图片

你可能感兴趣的:(日常记录,自动化,github,运维)