当前位置: 首页 > news >正文

【日常记录】自动化部署与持续交付: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 具体看下面的图
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

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 搭建网站

在这里插入图片描述

备注

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

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

在这里插入图片描述

相关文章:

  • JavaScript(WebAPI)
  • 私有云平台搭建openstack和ceph结合搭建手册
  • DDIA 第九章:一致性与共识
  • zookeeper【封神录】下篇
  • 桌面天气预报软件 Weather Widget free mac特点介绍
  • 滴水逆向1
  • 《C++语言程序设计(第5版)》(清华大学出版社,郑莉 董渊编著)习题——第2章 C++语言简单程序设计
  • LeetCode 28.找出字符串中第一个匹配项的下标
  • Flutter基础
  • [C#]使用sdcb.paddleocr部署v4版本ocr识别模型
  • 旋转图像【矩阵】
  • 【c++面试集】年度整理
  • copilot在pycharm的应用
  • 【Linux】常用的基本命令指令①
  • Python从入门到网络爬虫(面向对象详解)
  • Vmware ESXI上安装的虚拟机无法开启
  • Android studio VideoView 应用设计
  • 如何成为ChatGPT 优质Prompt创作者
  • GaussDB数据库使用COPY命令导数
  • 【DevOps-05】Integrate工具
  • 在美国,为什么夏季出生的孩子更容易得流感?
  • 七猫征文大赛颁出112万奖金,非遗题材作品斩获金奖
  • 马上评|文玩字画竞拍轻松赚差价?严防这类新型传销
  • 特朗普再提“接管”加沙,要将其变为“自由区”
  • 上海市税务局:收到对刘某某存在涉税问题的举报,正依法依规办理
  • 外交部介绍对巴西、阿根廷、智利、秘鲁、乌拉圭等5国试行免签政策