開發工具分享: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的帳號
- 然後他會跟你要github的專案權限(因為他要測試你的專案)所以要給他
- 按一下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誰負責
別想賴掉
總結:
- Python是一個運用領域很廣泛的語言
找工作吃香 - git沒有公司不用 做專題還是自己寫都受用
- Travis CI幫你自動化測試,省時、省力且責任歸屬明確 寫出來的code有品質
希望這些工具對大家有幫助
專題加油~~
開發工具分享:Git + Travis CI
By davidtnfsh
開發工具分享:Git + Travis CI
- 925