当我们做项目的时候,如果做完了,要发布,就需要打包,扔到服务器上,如果改了一点东西,还得打包,扔到服务器上,重复的执行
打包=> 扔到服务器上
详细记录如何使用github actions自动化部署项目
自动化部署与持续交付:GitHub Actions CICD
自动化部署一般以下方式
保证自己的项目已经推送到了 GitHub上
git init
git add .
git commit -m "xxx"
settings
developer setting
Tokens (classic)
然后,点击 Generate new token
继续点击 generate new token (classic)
备注
,设置过期时间
,选中 repo的所有东西和 workflow
具体看下面的图在项目中新建
.github文件夹,然后创建workflows文件夹
,当我们提交到github
后,他就去识别 workflows 文件夹下的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"
~/.ssh
文件夹下, 就是 /root/.ssh
私钥
就是不带 pub 的那个文件,放到 2.5 步 创建 secrets 哪里即可生成密钥操作步骤
# 如果你服务器已经有了 密钥 ,建议 指定一下 密钥名字
ssh-keygen -t rsa -C "youmail@gmail.com"
# 指定密钥名字,githubActionCICD 替换为你自己起的名字
ssh-keygen -t rsa -f githubActionCICD -C "youmail@gmail.com"
这样服务器就会生成两个文件
secrets 的东西需要在这里配置一下,名字可以自定义,
1
:FWQ_PASS:一般是 SSH登录,那么 这个地方,就得填写 服务器的私钥
就是2.4 步 生成的东西2
:FWQ_USER:一般是 root3
:FWQ_IP:就是服务器公网IP地址可以通过在线安装进行安装
虽然有这个错误,但是 去打开这个站点,看到的界面,确实是最新的,就是莫名其妙的会报这个错误, 求大佬解答~