BuildKite基本使用方法

BuildKite是什麼

BuildKite是一個CI/CD的工具,幫助團隊在開發過程中持續集成、持續交付、持續部署。 

BuildKite怎麼工作

在Buildkite的體系中,可以分爲兩部分,一部分是Hosted Platform(託管平臺), 另外一部分是On-Premises(內部部署).託管平臺是BuildKite官方的服務,內部部署是需要手動去部署的,可以部署在本地機器、docker、mac等等。

Agent工作是通過輪詢BuildKite Agent工作的,不要轉發端口或者提供防火牆的權限,Agent可以在任意數量的機器和網絡上運行。

在Agent部署好之後,Agent開始在BuildKite Agent進行註冊,註冊好之後,Agent會被放入代理池中。然後Agent會定期輪詢BuildKite Agent,尋找新的任務或者等待被接受的任務。

在接受任務之後,Agent會執行命令,返回build腳本的輸出,然後給出最終的狀態碼。

Build Agent具有分發任務的功能,Agent是任務的真正執行者。BuildKite Agent還提供了和其他平臺集成的功能,例如WEBHOOKS,不管是Github還是Gitlab,在設置好repo相關配置之後,當我們push代碼時,BulidKite Agent會接受到相關請求,然後將任務分發給對應的Agent。

BuildKite和Jenkins的區別

1. BuildKite是付費的,Jenkins是免費的

2. BuildKite必須得通過官方的服務進行工作,Jenkins可以完全由自己控制

部署一個Agent並build一次

創建賬號

在部署Agent之前,必須註冊Buildkite的賬號(https://buildkite.com/),BuildKite提供了Dashboard來觀察build的界面。在註冊好之後會來到如下界面。

下載鏡像,運行Agent

我使用的Docker運行的Agent,選擇Docker。

這裏有兩個鏡像,第一個精良是官方的鏡像,體積小,提供的命令較少,第二個鏡像是基於Ubuntu,體積較大。由於第二個Ubuntu鏡像裏還可以運行Docker deamon,所以我選擇的是第二個。複製命令並執行,下載好鏡像之後,會運行Agent,運行成功截圖如下:

此時看Dashboard,有一個正在運行的Agent。

創建Pipeline

選擇Pipelines,並選擇創建一個Pipeline,填好信息之後,選擇Read steps from repository,然後創建. 提供一個可以build的repo(https://github.com/xiaofengzs/buildkite-demo.git)

Build

  在創建Pipeline時,在這個例子中不需要添加webhook。創建好之後,來到這個界面,點擊New Build創建一個build。

填好這次build信息,選擇好分支之後,以及HEAD。

創建好之後,pipeline會根據項目代碼中的pipeline.yml運行。

Build失敗

這次Build失敗來,查看一下原因,因爲docker 守護進程沒有啓動,因爲Agent也是在Docker容器中運行,我們需要啓動Dockered守護進程。

docker exec -t -i <docker_id> /bin/bash

使用上面的命令進入docker容器的command line,並輸入:

dockerd

觀察結果發現Docker守護進程還是沒有運行,原因是沒有權限,在使用docker run是需要加一個參數。
 

docker run --privileged -e BUILDKITE_AGENT_TOKEN="<your_token>" buildkite/agent:ubuntu

使用這個命令重新運行容器,重複上面的步驟。

然後rebuild或者新建一個build就好了。

結果如下,可以點擊Release,模擬真實上限的過程。

到這裏就完全結束。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章