【日常记录】自动化部署与持续交付:GitHub Actions CICD
2024-01-08 22:45:26
文章目录
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
- 进入GitHub官网,点击 右上角头像,点击
settings
- 在左侧导航中,点击
developer setting
- 点击
Tokens (classic)
然后,点击Generate new token
继续点击generate new token (classic)
- 进入新的界面,可以写个
备注
,设置过期时间
,选中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
- 进入服务器,进入
~/.ssh
文件夹下, 就是/root/.ssh
- 生成密钥
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:一般是 root3
:FWQ_IP:就是服务器公网IP地址
2.6 服务器安装宝塔
可以通过在线安装进行安装
2.7 搭建网站
备注
不知道怎么处理的一个错误
虽然有这个错误,但是 去打开这个站点,看到的界面,确实是最新的,就是莫名其妙的会报这个错误, 求大佬解答~
文章来源:https://blog.csdn.net/qq_45634593/article/details/135376877
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!