開發工具分享:Git + Travis CI

 

By 泰瑋

目錄

  • 動機
  • Git (版本控制系統)
  • Travis CI (自動測試整合平台)

用git的動機

讓我們來看看學長們做的投影片ㄅ

(看10~100就可以了)

安裝+註冊github帳號

把你的rsh key放到github上面

ssh-keygen  
cat ~/.ssh/id_rsa.pub

在linux上  ssh-keygen可以幫你產生鑰匙

顯示鑰匙

去自己github的settings裏面按new ssh key

GIT

上次的爬蟲程式還留著嗎?

首先 建立一個專案

打開cmd:

Text

git clone 下面的那一串網址

git clone就是載專案的意思,也可以載別人的

把上一次的爬蟲放進去

把檔案加入git的追蹤:

git add 檔名(e.q. crawler.py)
git add . -A # 這樣做可以把所有的檔案都加入git的追蹤

看一下現在git的狀態(最重要的指令):

git status

為你這次寫的程式做紀錄:

所有的檔案都寫上所有的紀錄:

git commit -am "你想寫的話 e.q.修補了XX BUG + 新增了XXX功能"

做單一檔案的紀錄:

git commit 檔案 -m "你想寫的話 e.q.修補了XX BUG + 新增了XXX功能"

可以上傳囉~

git push origin master

// origin 代表是雲端上的github程式碼
// master 是主幹 -> 也就是說可以有其他分支(有空再講)

Try it ~

使用情境:多人合作

先跟一個人共用專案

pull 隊友的程式碼下來

git pull origin master

發生衝突會變成這樣

From github.com:david30907d/Tutor
 * branch            master     -> FETCH_HEAD
   964699e..e414762  master     -> origin/master
Auto-merging Ch3/README.md
CONFLICT (content): Merge conflict in Ch3/README.md
Automatic merge failed; fix conflicts and then commit the result.

來看看git表示衝突:

<<<<<<< HEAD
這邊是我的部份 : http://web.mit.edu/mprat/Public/web/Terminus/Web/main.html
=======
這邊是隊友修改的:http://web.mit.edu/mprat/Public/web/Terminus/Web/main.html
>>>>>>> e4147625a601a16d45ccc6b572a3576558c68891

<<<<<HEAD~=====是你寫的code

=====~>>>>>是隊友寫的code

把衝突的部份砍掉(包括HEAD 、===、>>>>>這些怪東西)

git commit -am "寫這次合併的工作紀錄"
git push origin master

團隊合作這樣就沒問題了嗎?

為了制止這種流氓的行為 需要test

去辦Travis CI的帳號

  1. 然後他會跟你要github的專案權限(因為他要測試你的專案)所以要給他
  2. 按一下sync account的按鈕

在travis-CI上面找到你要測試的專案

要勾選他才會幫你測試

在專案的資料夾新增這個檔案

#!/usr/bin/env python3
# -*- coding: utf-8 -*
import json
try:
	with open('test.json', 'r', encoding='UTF-8') as f:
		tmp = json.load(f)
except Exception as e:
	raise e
	print(e)

檔名:test.py

還有這個檔案

language: python
python:
  - 3.2
  - 3.3
  - 3.4
  - 3.5
install:
  - make install
script:
  - make test

檔名: .travis.yml

還有這個...

install:
	pip install -r requirements.txt

test:
	python crawler.py "http://www.gomaji.com/index.php?city=Taichung&tag_id=28" test.json;python test.py

clean:
	rm -f *.jpg

檔名: Makefile

README

 

誰寫的bug誰負責
別想賴掉

總結:

  1. Python是一個運用領域很廣泛的語言
    找工作吃香
  2. git沒有公司不用  做專題還是自己寫都受用
  3. Travis CI幫你自動化測試,省時、省力且責任歸屬明確   寫出來的code有品質

希望這些工具對大家有幫助

專題加油~~

Made with Slides.com