一、创建项目
-
1.选择自由风格的项目;名称建议与代码中的项目名一致
-
2.项目配置-获取源码
到这一步直接保存,然后Build 就会将代码拉到服务器:/var/lib/jenkins/workspace/
目录下
补充:
如果jenkins所在的服务器没有安装git ,源码管理时配置会报错:
Failed to connect to repository : Error performing command: git ls-remote -h
https://github.com/lzwjava/OpenSourceNotes.git HEAD
解决方案:
安装git:`yum install git`
验证:
[root@VM_0_4_centos opt]# git --version
git version 1.8.3.1
- 3.项目配置-构建
cd ..
pwd
BUILD_ID=DONTKILLME
sh runserver.sh /var/lib/jenkins/workspace/MxShop/ 8000
注:如果不指定BUILD_ID=DONTKILLME
则jenkins会自动将运行的相关服务进程kill掉
这里描述一下我的构建原理:
由于jenkins构建会将整个项目目录更新,所以我在与项目同级的目录写配置的
runserver.sh
,也就是/var/lib/jenkins/workspace
。而每次构建shell默认会在项目目录,所以cd..
到workspace
目录执行
runserver.sh参考:
#! /bin/sh
# $1 第一个参数
# $2 第二个参数
# "$*" 所有参数列表
# "$@" 所有参数列表
# ------------------上面是基本的语法-------------------------------
is_work=1
# $#:判断传递到脚本的参数个数: 项目绝对路径、启动端口
if [ $# != "2" ]
then
# 如果不是2个参数,则输出一下信息,并且退出脚本
echo "需要参数: <project_dir> <runport>"
is_work=0
fi
# 定义一个函数
run_temp_server(){
project_dir=$1 # 传到函数的第一个参数:项目绝对路径
runport=$2 # 第二个参数 端口
# 检查绝对路径是否存在
if [ ! -d $project_dir ]
then
# 项目不存在则输出以下信息
echo "no such file or directory: $project_dir"
else
# 存在则执行下面命令
echo "项目路径:$project_dir"
echo "端口号:$runport"
# 像在终端一样使用这些shell 命令
cd $project_dir
# 检查安装依赖包
pip3 install -r requirements.txt
# 数据库迁移
# python3 manage.py makemigrations
# python3 manage.py migrate
# 守护进程方式 启动celery
# python3 manage.py celery multi start w1 -A QAPlatform --loglevel=info
# 启动项目 "&"表示后台运行
python3 manage.py runserver 0.0.0.0:$runport &
echo "启动成功"
fi
}
if [ $is_work -eq "1" ]
then
# 执行函数 并且传入参数
run_temp_server $1 $2
fi
补充:
确认服务是否启动:ps aux |grep python
(对指定进程进行监测)
杀死进程:$ kill -s 9 pid
构建结果: