CircleCI 與持續集成

CircleCI 入門

最近在完成老師的做業:使用 CircleCI 進行持續集成,現將過程書寫下來,與你們一塊兒學習進步。java


A. What is CircleCI?

1. 什麼是持續集成

持續集成(Continuous Integration)一般縮寫爲 CI,
持續集成指的是,當代碼有變動時,當即進行構建和測試,反饋運行結果,咱們能夠根據測試結果,肯定新代碼是否能夠和原有代碼正確的集成在一塊兒。
讓你可以在開發中隨時發現問題,在快速的產品迭代中還能夠保持很高的質量。由於修復問題的成本隨着時間的推移而增加,越早發現,修復成本越低。git

2. 什麼是持續部署

持續部署(Continuous Deployment)一般縮寫爲 CD,
持續部署指的是,當代碼有變動時,自動進行測試和構建,若是一切順利則自動部署到服務器上。github

3. 什麼是 CircleCI

CircleCI 是一個持續集成/持續部署的服務,開源項目能夠無償使用,他的價格取決於你須要併發構建實例的數量,單個實例是免費的。docker

官網地址服務器

4. CircleCI 能作什麼

他能夠綁定 GitHub/Bitbucket,只要你的代碼有變動,就會自動抓取,根據你的配置,提供運行環境,執行測試、構建和部署。併發

5. CircleCI 的工做流程


B. 使用 CircleCI 持續集成和自動部署到 GitHub,進行 junit 單元測試

建議完成該實驗最好在 Linux 環境下進行,能避免不少問題,CircleCI 的構建環境也只有 Linux 和 MacOS,並不包含 Windows。app

若是是 Windows 系統,這裏我建議使用 WSL,簡單方便快捷,還特別好用,畢竟是最強的 Linux 發行版(滑稽)。maven

1. 建立測試目錄

建立一個名爲 circleTest 的測試文件夾,移動至該文件夾下。單元測試

mkdir circleTest
cd circleTest
2. 單元測試

咱們先在本地進行單元測試。學習

首先導入 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

查看測試用例經過。

3. CircleCI 本地配置

要使用 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

關於該配置文件的詳細信息,能夠參考 官方文檔

4. 使用 GitHub 實現持續集成

進入 CircleCI 官網,點擊 Explore Integrations,跳轉後選擇 Start Building for Free,而後選擇 Sign Up With GitHub,與本身的GitHub 帳號進行相關聯。

關聯後便進入控制界面。

5. 上傳測試文件到 GitHub

在 GitHub 創建一個新的 repository ,關聯本地倉庫,進入本地的 circleciTest 目錄,執行如下命令:

git init
git add ./
git commit -m "first commit"
git push origin master
6. 更改 GitHub 設置選項

將本地代碼上傳至遠程倉庫後,咱們點擊 Settings,選擇 Webhooks 選項,再點擊 Edit 按鈕:

選擇 Just the push event:

7. 使用 CircleCI 進行單元測試

在 CircleCI 控制面板選擇 Add Project,而後關聯以前上傳的 circleciTest 項目:

若是咱們從新提交了代碼,能夠在 GitHub 倉庫下的 commits 界面下看到咱們的提交記錄,而且 CircleCI 會實現自動部署,能夠很直觀的查看到提交的代碼是否正確經過運行:

點擊 Details 進行 CircleCI 該項目的設置界面,咱們便能完整的看到運行狀況了:

測試經過:Success!


C. 測試用例

circleciTest


參考

<https://www.jianshu.com/p/36af6af74dfc>

相關文章
相關標籤/搜索