CircleCI 與持續集成


CircleCI 入門

最近在完成老師的作業:使用 CircleCI 進行持續集成,現將過程書寫下來,與大家一起學習進步。


A. What is CircleCI?

1. 什么是持續集成

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

2. 什么是持續部署

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

3. 什么是 CircleCI

CircleCI 是一個持續集成/持續部署的服務,開源項目可以免費使用,他的價格取決於你需要並發構建實例的數量,單個實例是免費的。

官網地址

4. CircleCI 能做什么

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

5. CircleCI 的工作流程


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

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

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM