最近在完成老師的做業:使用 CircleCI 進行持續集成,現將過程書寫下來,與你們一塊兒學習進步。java
持續集成(Continuous Integration)一般縮寫爲 CI,
持續集成指的是,當代碼有變動時,當即進行構建和測試,反饋運行結果,咱們能夠根據測試結果,肯定新代碼是否能夠和原有代碼正確的集成在一塊兒。
讓你可以在開發中隨時發現問題,在快速的產品迭代中還能夠保持很高的質量。由於修復問題的成本隨着時間的推移而增加,越早發現,修復成本越低。git
持續部署(Continuous Deployment)一般縮寫爲 CD,
持續部署指的是,當代碼有變動時,自動進行測試和構建,若是一切順利則自動部署到服務器上。github
CircleCI 是一個持續集成/持續部署的服務,開源項目能夠無償使用,他的價格取決於你須要併發構建實例的數量,單個實例是免費的。docker
官網地址服務器
他能夠綁定 GitHub/Bitbucket,只要你的代碼有變動,就會自動抓取,根據你的配置,提供運行環境,執行測試、構建和部署。併發
建議完成該實驗最好在 Linux 環境下進行,能避免不少問題,CircleCI 的構建環境也只有 Linux 和 MacOS,並不包含 Windows。app
若是是 Windows 系統,這裏我建議使用 WSL,簡單方便快捷,還特別好用,畢竟是最強的 Linux 發行版(滑稽)。maven
建立一個名爲 circleTest
的測試文件夾,移動至該文件夾下。單元測試
mkdir circleTest cd circleTest
咱們先在本地進行單元測試。學習
首先導入 maven 依賴:
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> </dependencies>
創建測試文件:
package test; import org.junit.Assert; import org.junit.Test; public class TestClass { @Test public void testName() { Assert.assertEquals(1, 1); } }
本地執行一下:
能夠看到沒有問題,咱們將 java 項目導出爲 jar 包。運行命令:
mvn package
複製 target 目錄下的 jar 文件到以前建立好的 circleciTest 目錄下:
而後在 circleciTest 目錄下執行命令:
java -cp ./RunUt-1.0-SNAPSHOT.jar:RunUt/* org.junit.runner.JUnitCore test.TestClass
查看測試用例經過。
要使用 CircleCI,首先在項目 circleciTest 目錄下建立一個名爲 .circleci
的文件夾,並新建 config.yml
文件。
config.yml:
version: 2 jobs: build: docker: - image: circleci/openjdk:8u181-jdk steps: - checkout - run: name: Testing application command: java -cp ./RunUt-1.0-SNAPSHOT.jar:RunUt/* org.junit.runner.JUnitCore test.TestClass
關於該配置文件的詳細信息,能夠參考 官方文檔
進入 CircleCI 官網,點擊 Explore Integrations,跳轉後選擇 Start Building for Free,而後選擇 Sign Up With GitHub,與本身的GitHub 帳號進行相關聯。
關聯後便進入控制界面。
在 GitHub 創建一個新的 repository ,關聯本地倉庫,進入本地的 circleciTest 目錄,執行如下命令:
git init git add ./ git commit -m "first commit" git push origin master
將本地代碼上傳至遠程倉庫後,咱們點擊 Settings,選擇 Webhooks 選項,再點擊 Edit 按鈕:
選擇 Just the push event:
在 CircleCI 控制面板選擇 Add Project,而後關聯以前上傳的 circleciTest 項目:
若是咱們從新提交了代碼,能夠在 GitHub 倉庫下的 commits 界面下看到咱們的提交記錄,而且 CircleCI 會實現自動部署,能夠很直觀的查看到提交的代碼是否正確經過運行:
點擊 Details 進行 CircleCI 該項目的設置界面,咱們便能完整的看到運行狀況了:
測試經過:Success!