使用jenkins部署Django项目

环境准备

我已经提前在机器上布好了如下环境:

  • Ubuntu16.04
  • java8
  • jenkins
  • python2.7
  • django1.11.29

创建远程仓库

由于是测试,我们选择在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>

查看git轮询日志
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值