Drone 是一套基於 Docker Container 技術的 CI/CD 服務,它是用 Go 語言所開發,可以安裝在任何作業系統內,你可以把 Drone 當作是開源版的 Travis 服務。Drone 本身不支援排程任務,也就是說無法像 Jenkins CI 一樣可以設定每天幾點幾分執行單一 Job 任務。但是可以透過第三方工具像是 cron
來整合 Drone API 達成自動排程的效果,底下來看看該如何實作。
安裝 Drone CLI
Drone 提供 CLI 工具,讓開發者可以快速跟 Drone 服務溝通,底下兩種方式來安裝 Drone CLI。從官網找相對應作業系統的執行檔
- Linux x64
- Windows x64
- Darwin x64
另外一種方式則是透過 go get
方式來安裝,前提是您必須要安裝 Go 語言環境。
|
|
Drone CLI 教學
下面指令是透過 CLI 呼叫 Drone 執行指定的專案 Job Number。如果沒有提供 Number 編號,則是執行該專案最後一個 Build Number。
|
|
--fork
代表啟動新的任務,並非是重新啟動該編號任務。下面指令則是根據專案 Branch 名稱得到最後 Build Number。
拿到最後一個 Number 後,就可以開始寫 Cron job 任務
整合 cron job
從上面教學可以知道如何透過 Drone CLI 拿到專案最後執行的 Job 任務編號,以及如何重新執行專案任務,這時我們可以將指令合併成一行,變且寫進 crontab -e
檔案內
將 branch
及 octocat/hello-world
換成您的專案名稱即可。
結論
用 crontab + drone cli 就可以完成 Jenkins 可以做到的事情。這樣真的可以完全捨棄 Jenkins 了。如果大家對 Drone 有興趣,想更深入了解,可以來報名『用一天打造團隊自動化測試及部署』,此課程會在一天內帶您進入自動化測試及部署,想從 Jenkins 或 GitLab CI 轉換到 Drone 的,歡迎報名參加。
- 時間: 2017/07/29 09:30 ~ 17:30
- 地點: CLBC 大安館 (台北市大安區區復興南路一段283號4樓)
- 價格: 3990 元
報名連結
See also
- 開源專案 Drone CI/CD 平台真的免費嗎?
- Go 1.16 推出 Embedding Files
- 用 Docker 每天自動化備份 MySQL, Postgres 或 MongoDB 並上傳到 AWS S3
- 如何將前端網站打包成 Docker Image
- Go 1.15 新增 Module cache 環境變數
- 使用 Docker BuildKit 加速編譯 Image
- 用 GitHub Actions 上傳 Docker Image 到 AWS ECR
- Docker 推出官方 GitHub Actions 套件
- Go Modules 處理 Private GIT Repository 流程
- 用五分鐘安裝好 Drone 搭配 GitHub 自動化環境