你写了一个博客网站,在没有配置CICD的时候。需要改动一些内容,你需要做下面几件事
- npm run build等待编译
- 打开ftp客户端,连接服务器
- 找到打包文件目录,传输文件
配置了CICD,你只需要做一件事情
- 提交代码
工作中常用的CICD工具有Gitlab CI,Travis CI等,场景也会更复杂。这里使用github actions,不需要跑ci的服务器。用最简单的配置。实现github中提交代码,自动编译,自动部署到自己的服务器
一. 找到你要配置的github项目,创建工作流。
这时会在根目录生成一个ci配置文件.github/workflows/blank.yml
二.配置项目的secrets,供actions配置文件使用
SSH_PRIVATE_KEY
1.登录到服务器
2.cd ~/.ssh,如果有id_rsa和id_rsa.pub 文件。代表以前配置过,跳过第三步
3.执行命令ssh-keygen -t rsa -C "[email protected]",这样会生成id_rsa和id_rsa.pub
4.执行命令cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys。将公钥设置成authorized_keys的内容
5.最后将私钥id_rsa的内容设置到secrets中
其他secrets
REMOTE_HOST 服务器ip地址 199.199.222.22
REMOTE_USER 用户名 root
TARGET 服务器打包文件位置,如nginx的 /home/master-ui/dist
三. 配置CI文件
actions配置文件:.github/workflows/blank.yml
部署是使用ssh-deploy
name: CI demo
on:
push:
branches:
- master
jobs:
build:
name: build
runs-on: ubuntu-latest
steps:
# 切换到master分支
- name: checkout
uses: actions/checkout@master
# 使用 node:10
- name: use Node.js 10
uses: actions/setup-node@v1
with:
node-version: 10
- name: npm install
run: |
npm install
# 构建
- name: npm build
run: |
npm run build
# 部署
- name: deploy
uses: easingthemes/[email protected]
# 注入环境变量供ssh-deploy使用
env:
# secrets中配置的私钥,用于免密连接服务器
SSH_PRIVATE_KEY: ${
{ secrets.SSH_PRIVATE_KEY }}
# 服务器地址
REMOTE_HOST: ${
{ secrets.REMOTE_HOST }}
# 用户名
REMOTE_USER: ${
{ secrets.REMOTE_USER }}
# 部署路径
TARGET: ${
{ secrets.TARGET }}
# 打包文件来源
SOURCE: "dist/"
# 删除服务器上TARGET目录里所有文件
ARGS: "-avz --delete"
Done