Blog icon indicating copy to clipboard operation
Blog copied to clipboard

Jenkins PHP 部署示例

Open codcodog opened this issue 6 years ago • 0 comments

Jenkins PHP 部署示例

搭建 Jenkins

在本地搭建 Jenkins.

参考 jenkins 安装

配置 SSH

配置 ssh, 程序在 Jenkins 服务器打包完之后,发布到目标服务器上.

Manage Jenkins -> Configure System -> Publish over SSH -> Add

selection_011

这里需要特别注意的是 Remote Directory.

此目录必须存在,不会自动创建. 而且发布机(Jenkins)只能将文件放在此目录下.

配置项目

  • 创建一个项目

selection_012

  • 输入项目名字,选择 Freestyle project

selection_013

  • 添加项目仓库

selection_014

  • 配置构建

selection_015

selection_016

project=blog
desc_name=/tmp/$project.$BUILD_ID.$BUILD_NUMBER.tar.gz

composer install --no-dev

tar -cvz  --exclude='.git' --exclude=$desc_name -f $desc_name .
mv $desc_name .

这里使用 . 而不是 ./*, ./* 不会压缩隐藏文件
项目里会包含配置文件 .env.example 这种隐藏文件.

  • 构建完之后,发布到目标服务器

selection_017

selection_018

PREFIX=/data/www
LIB=$PREFIX/lib

TIME=$(date +%Y%m%d%H%M%S)

DESC_NAME=blog."$TIME"
DESC=$LIB/$DESC_NAME

LINK_NAME=blog
LINK_DESC=$PREFIX/$LINK_NAME

mkdir -p $DESC
tar -xzf /tmp/demo/blog.$BUILD_ID.$BUILD_NUMBER.tar.gz -C $DESC
cd $DESC
cp .env.example .env

ln -snf $DESC $LINK_DESC

配置完成,保存,点击 Build Now 就可以了.

codcodog avatar Jan 27 '19 13:01 codcodog