我已经提前在机器上布好了如下环境:
由于是测试,我们选择在gitee上创建一个仓库
将这个仓库拉到本地
pip list
查看django是否安装
确认django安装后创建django项目
cd django_jenkins
# 创建django项目
django-admin startproject test1
cd test1
# 创建一个app
python manage.py startapp test2
# 创建模板目录
mkdir templates
vim test1/settings.py 注册app,修改模板路径
# 设置允许任何IP连接
ALLOWED_HOSTS = ['*']
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'test2'
]
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR+"/templates",],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
创建index.html
root@kdltest:~/django_jenkins/test1/templates# vim index.html
root@kdltest:~/django_jenkins/test1/templates# cat index.html
<h1>diango_test hello jenkins</h1>
修改test2/views.py的视图 vim test2/views.py
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.shortcuts import render
# Create your views here.
def index(request):
return render(request, 'index.html')
修改urls.py匹配路径vim test1/urls.py
from django.conf.urls import url
from django.contrib import admin
from test2 import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$' , views.index)
]
启动项目测试 python manage.py runserver 0.0.0.0:8008
同步项目至远程仓库
root@kdltest:~/django_jenkins# git add test1/
root@kdltest:~/django_jenkins# git commit -m "first commit" [master 06bd086] first commit
23 files changed, 217 insertions(+)
create mode 100644 test1/db.sqlite3
create mode 100755 test1/manage.py
create mode 100644 test1/templates/index.html
create mode 100644 test1/test1/__init__.py
create mode 100644 test1/test1/__init__.pyc
create mode 100644 test1/test1/settings.py
create mode 100644 test1/test1/settings.pyc
create mode 100644 test1/test1/urls.py
create mode 100644 test1/test1/urls.pyc
create mode 100644 test1/test1/wsgi.py
create mode 100644 test1/test1/wsgi.pyc
create mode 100644 test1/test2/__init__.py
create mode 100644 test1/test2/__init__.pyc
create mode 100644 test1/test2/admin.py
create mode 100644 test1/test2/admin.pyc
create mode 100644 test1/test2/apps.py
create mode 100644 test1/test2/migrations/__init__.py
create mode 100644 test1/test2/migrations/__init__.pyc
create mode 100644 test1/test2/models.py
create mode 100644 test1/test2/models.pyc
create mode 100644 test1/test2/tests.py
create mode 100644 test1/test2/views.py
create mode 100644 test1/test2/views.pyc
root@kdltest:~/django_jenkins# git push
构建触发器
这里我们选择轮询SCM,也就是每2分钟会自动检查远端仓库和本地有没有变化,有变化则拉取新的代码开始构建
构建操作,创建测试脚本,使用 python manage.py test
来测试用例。
构建后操作,构建失败后会发送邮件给设置的邮箱
此时进入 工作空间 已经可以查看节点上的工程目录
每2分钟会自动轮询git
创建任务并选择复制test_build任务
构建触发器,选择 其他工程构建后触发 ,也就只有当测试通过后,才能构建当前这个任务
构建
BUILD_ID=DONTKILLME : 在jenkins里面在后台运行的程序都会被jenkins自动杀死 所以需要加上BUILDID这个参数 加了这个参数你的程序就不会被杀死
由于远程仓库的代码和本地一致,所以此时一直不会执行构建任务,所以我们更新index.html并push到远程仓库
root@kdltest:~/django_jenkins/test1/templates# cat index.html
<h1>diango_test hello jenkins</h1>
<h2>alter test!!</h2>