Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Leon Tseng
    @godleon
    不曉得 Drone CI 跟 Concourse 相比如何
    Bo-Yi Wu
    @appleboy
    @godleon public ip 的目的是讓 github 或其他 git host 可以跟你的 Drone 溝通,不然 webhook 也無法啟動
    Concourse 我沒有用過,今年蒼時寫了一系列 Concourse 文章 http://ithelp.ithome.com.tw/articles/10184547 你可以參考看看
    Leon Tseng
    @godleon
    @appleboy 恩,我就是看那個才認識 Concourse 的,但老實說看到後來看不是很懂
    Bo-Yi Wu
    @appleboy
    Drone 比 Concourse 好懂
    安裝也很容易
    Leon Tseng
    @godleon
    嗯嗯.... CodeShip 好像也可以?
    Bo-Yi Wu
    @appleboy
    CodeShip 也可以什麼? @godleon
    Leon Tseng
    @godleon
    @appleboy local build & test
    不好意思問題很多,因為目前還在尋找合適的 CI server 的階段......
    zanhsieh
    @zanhsieh
    @godleon 尋找 CI server 的旅程不會輕易結束,今日當紅可能就是明日黃花,若要有建設性抑或成就感,建議你不如找個易上手的邊做邊找。實在當前的太爛再找個新的談戀愛 ....
    工具是幫人解決問題,不是製造太多困擾。
    Leon Tseng
    @godleon
    @zanhsieh Good point ! 我明白了,的確先試試看再說,謝謝您的建議
    Bo-Yi Wu
    @appleboy
    @godleon 其實就看你個人的情境,然後找幾套試試看,一定會找到適合自己的
    Leon Tseng
    @godleon
    @appleboy 好的,謝謝您的建議,我就先試試看再來跟大家討論吧!
    Bo-Yi Wu
    @appleboy
    @godleon 如果你有嘗試 Drone 遇到問題,可以直接敲我
    Leon Tseng
    @godleon
    @appleboy 感謝大大! 希望之後繼續互相交流~ :smile:
    Bo-Yi Wu
    @appleboy
    @godleon 沒問題,教學相長
    Leon Tseng
    @godleon
    不好意思我想請問一個比較觀念上的問題,在 CI server 上設計的 task or job 都必須在 CI server 上執行嗎?
    如果我想要這個 job 執行在遠端的某一台 server 上.....例如:在遠端的某台 server 安裝好執行環境.... 之類的,可行嗎?
    目前我想到是設計一個 Ansible container 在 CI server 上,然後把相關的參數跟 key 給進去讓它去做 remote provision,但我不曉得這是不是一個不切實際的作法
    zanhsieh
    @zanhsieh
    挺正常的。早就有人這麼搞(跟你類似,不過人家用 Jenkins),美帝老兵福利局:
    https://github.com/department-of-veterans-affairs/healthcare-application/blob/master/Jenkinsfile.deploy
    :smile:
    Leon Tseng
    @godleon
    @zanhsieh 感謝大大提供資料,那關於這樣的 remote provision/build 的需求您有其他想法嗎?
    zanhsieh
    @zanhsieh
    我不是大大,所以沒什麼想法。就是現階段完成任務就行。如果你要 evaluate 市面上哪個 CI 好的話,那還有一堆語法轉換的事夠你搞了(起碼過完年全職搞才搞得完,不包奇怪的架構)
    Leon Tseng
    @godleon
    @zanhsieh 恩,目前是把時間花在 Concourse 上(文件似乎較完整...?),應該沒這麼多時間可以每一套都給他試一下....
    zanhsieh
    @zanhsieh
    基本上一般要求是:
    1. 平台 (dev, staging, prod)2. 建 docker image 3. 測試 4. 部署到哪 (vm? k8s? swarm? aws?)
      2.5. 要不要同時 build? 3.5 要不要同時測試? 0. 要不要通知 (slack, gitter)
    Leon Tseng
    @godleon
    關於佈署到 vm 的部份,不知道有哪些作法呢.....? 是否可以提供幾個作為參考呢.....? 謝謝.....
    Bo-Yi Wu
    @appleboy
    @godleon 部署到 vm?
    zanhsieh
    @zanhsieh
    vm / aws ec2 -> cm tools (puppet/chef/ansible/saltstack, bash + rsync)
    k8s -> helm chart + docker image pull
    swarm -> ???
    Leon Tseng
    @godleon
    @appleboy 恩,我希望在某些條件下,在 remote VM 上佈署特定的環境並啟動一些 container 做一些測試工作
    只是我還在想要怎麼讓 pipeline 知道要何時往下一個 task 走,因為實際上工作的是 remote VM 裡面的 container
    zanhsieh
    @zanhsieh
    一般兩種做法:push or poll。push 就是上游做完了跟下游說,可以是個 http request 或者其他通知方法,上游必須知道下游的 endpoint。poll 就是下游一直問上游做完沒,可以一樣用 http request ,屬於所謂 busy waiting。目前流行的是 push 的做法(省資源)。目前 Jenkins / Concourse / Drone 都有支援,只是正確語法要怎麼寫還要找。
    Bo-Yi Wu
    @appleboy

    @godleon 你說的這些條件都可以在各大 CI/CD 工具都可以做到,就看你的情境,再去找相對應的 CI/CD 工具設定。

    像是我們希望 git tag 丟上來,他只對 Production 機器作部署動作 .. 等

    Leon Tseng
    @godleon
    @zanhsieh @appleboy 是的! push 是我要的,只是我在想要 push 什麼,到哪裡,是比較合適的作法,目前我想到是往一個 Git repository push,讓下一個 task aware 到應該要開工了,但我不確定這樣會不會很奇怪 (因為在我的環境裡,其實工作都不是在 CI server 裏面做,都是在其他 remote server 作,CI server 應該只算是下達指令,把這些工作流程串起來而已)
    zanhsieh
    @zanhsieh
    下游需要什麼就 push 什麼。如,push 觸發測試流程,那測試需要知道哪個 image (e.g. commit #?? image arch tag?? ),什麼環境,一些環境變數(e.g. region?? environment?? token?? 連哪個 db),怎麼測(這個見仁見智,有人喜歡固定擺一起)
    Leon Tseng
    @godleon
    但我覺得這些問題可能都是因為我對 CI 還不是很清楚的關係,待我好好研究一番後,也許我會自己找到問題的解答
    zanhsieh
    @zanhsieh
    所以關於之前用哪個 CI ,你要碰到問題,發現手頭工具不夠,要嘛自己砌,要嘛轉。沒有自己實現時碰到問題,都只是 window shopping 而已。
    Leon Tseng
    @godleon
    恩,我現在正要進去 shopping 啦!!! XD
    Bo-Yi Wu
    @appleboy
    通常是這樣
    RD push commit to git server. Git server send hooks to CI server.
    Leon Tseng
    @godleon
    那比如說我在某個 remote server 上做的測試完成了.......接著要.....? 再 commit to Git server 一次嗎?
    zanhsieh
    @zanhsieh
    @appleboy Leon 問的問題比較靠近 pipeline orchestration
    Leon Tseng
    @godleon
    @zanhsieh 黑阿黑阿....沒錯、...
    Bo-Yi Wu
    @appleboy
    我聽起來感覺最前面那段 也不是很了解
    zanhsieh
    @zanhsieh
    @godleon 你是用哪個?Jenkins 可以 trigger,不知道其他的:
    http://stackoverflow.com/questions/36825103/jenkins-trigger-multi-branch-pipeline-on-upstream-change
    Leon Tseng
    @godleon
    @appleboy 喔我知道 commit 後可以 trigger CI server 開始上工
    Bo-Yi Wu
    @appleboy
    嗯嗯
    你現在打算用 jenkins 嗎?
    Leon Tseng
    @godleon
    @zanhsieh @appleboy 我目前在研究的是 Concourse,Jenkins 有比較好嗎?