Jenkins PHP 部署示例

Cryven發表於2019-01-27

搭建 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 就可以了.

相關文章