前置条件:Jenkins 服务、Git 插件已安装
新建一个任务
创建一个自由风格的软件项目
配置 git 仓库
填入 git仓库的地址、账号密码(可以点击添加新建)
构建(核心)
添加一个 shell 脚本,php 部署的核心就是将 git 的代码与线上的代码对比,然后同步与 git 仓库不同的代码文件,当然线上有数据的目录要排除掉对比,避免删除线上数据。
!!!使用 rsync 要提前进行服务器免密登录,否则需要交互式输入密码 !!!
rsync -avzP ./* \
-e 'ssh -p1022' \
--progress \
--backup \
--backup-dir="/home/seo/${JOB_NAME}_${BUILD_ID}" \
--suffix="_${BUILD_ID}" \
--exclude=".git" \
--exclude="common/env" \
--exclude="api/runtime/debug" \
seo@223.112.1.18:/opt/www/
# 选项说明
./*: 同步当前目录的所有文件,Jenkins 的 shell 默认执行位置就是该项目的工作空间
-r: 对子目录以递归模式,即目录下的所有目录都同样传输,注意是小写的r.
-a: 归档模式,相当于同时加了参数-rlptgoD
-v: 显示同步过程的详细信息
-z: 表示压缩传输
-P: 显示传输速度
-e 'ssh -p1222': 使用 ssh 的 1222 端口,更改了默认 ssh 端口的情况
--delete: 删除那些目标位置有,而原始位置没有的文件
--exclude: 需要过滤的文件
--progress: 显示进程
--backup: 备份修改的文件
--backup-dir: 备份目录
--suffix: 备份文件名后缀