Travis Ci+Django+Mysql实践

Travis CI持续集成

  1. Travis CI官网 使用github账号授权

  2. Travis 会列出 Github 上面你的所有仓库,以及你所属于的组织。此时,选择你需要 Travis 帮你构建的仓库,打开仓库旁边的开关。一旦激活了一个仓库,Travis 会监听这个仓库的所有变化。
    在这里插入图片描述
    如果没有找到自己的项目,点击Sync account同步之后即可在这里插入图片描述

  3. 在git上新建一个空项目test,本地新建项目并连接远程仓库test
    项目目录:
    .travis.yml
    readme.md
    requirements.txt
    test.py

    import numpy as np
    a = np.array([1,2,3])
    print("test success")
    print(a)	
    
  4. 配置 .travis.yml

    sudo: false
    
    language: python
    
    python:
      - 3.6
     
    install:
     - pip install -r requirements.txt
      
    script:
      - python test.py
    
    
  5. 上传到git

  6. 在Travis CI上可以看到这一次的部署情况

Travis CI + Django + Mysql自动化测试

现在有一个Django项目WeChatTicket,使用Travis CI完成自动化测试

  1. 配置.travis.yml
    引入mysql:

    services:
    	- mysql
    

    创造需要的数据库:

    before_install:
    	- sudo mysql -e 'CREATE DATABASE wechat_ticket;'
    

    整体代码:

    sudo: required
    
    language: python
    
    services:
    	- mysql
    
    python:
    	- 3.6
    
    before_install:
    	- sudo mysql -e 'CREATE DATABASE wechat_ticket;'
    
    install:
    	- pip install -r requirements.txt
    
    script:
    	- cp configs.example.json configs.json
    
    	- python manage.py makemigrations
    	- python manage.py migrate
    	- python manage.py test
    
    
  2. 在Django项目tests.py文件中添加一些测试

  3. 上传,通过
    在这里插入图片描述

Travis CI自动部署

通过.travis.yml文件的配置,使上传的代码可以直接部署在服务器

  1. 服务器上完成Travis CI的下载和登录
    apt-get直接下载的travis并不是我们需要的travis

sudo apt-get install ruby
sudo apt-get isntall ruby-dev  
sudo gem sources --add https://gems.ruby-china.com/
sudo gem install travis

https://gems.ruby-china.org 已经被移除,现在使用 https://gems.ruby-china.com 替代
这个过程可能还会碰到其他的坑,百度一下基本都能解决

sudo travis login --auto

输入github用户名和密码,也可以使用–access-token(在Github–> Settings -->Developer settings–>Personal access tokens里面设置)

切换目录到项目文件下

sudo travis encrypt-file ~/.ssh/id_rsa --add

然后你的.travis.yml文件中会多出几行

before_install:
  - openssl aes-256-cbc -K $xxxxxxxxxxxx $xxxxxxxxxxxx
   -in id_rsa.enc -out ~\/.ssh/id_rsa -d

为了避免权限问题,我建议把最后一行的目的地~\/.ssh/id_rsa 改成id_rsa

2.配置.travis.yml文件

sudo: required
language: python
services:
- mysql
python:
- 3.6
before_install:
- sudo chmod 600 ~/.ssh/*
- sudo touch rg_rsa
- sudo apt-get install sshpass
- sudo openssl aes-256-cbc -K $encrypted_033a364aed3b_key -iv $encrypted_033a364aed3b_iv
  -in rg_rsa.enc -out rg_rsa -d
- sudo mysql -e 'CREATE DATABASE wechat_ticket;'
install:
- pip install -r requirements.txt
- pip install uwsgi
script:
- cp configs.example.json configs.json
- python manage.py makemigrations
- python manage.py migrate
- python manage.py test
after_success:
- sudo chmod 600  ~/.ssh/rg_rsa
- sudo sshpass -p 'your_password' ssh your_user@your.ip.address.here "bash /home/ubuntu/WeChatTicket/deploy.sh"#运行脚本,sshpass允许你明文书写密码
addons:
 ssh_konwn_hosts:your.ip.address.here

运行结果:

在这里插入图片描述

项目链接

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值