🔥
Caster 開發日誌
  • Java
    • JVM Performance Tool
      • Java Debug Wire Protocol (JDWP) 的詳細介紹
      • JConsole 詳細介紹
    • Spring Boot
      • Spring Security
      • Spring Boot Admin
      • Spring Event
      • Spring AOP
      • Spring Boot JUnit 5
      • Apache Dubbo
    • Reflect 應用
    • ELK + F 建構
    • Socket.IO
    • OCR - 光學字元辨識
    • 讀取JAR resource文件
    • LocalTime & MySQL時間精度
    • Gradle multi module
    • MyBatis-Plus
    • Java Date operation
    • Java IP to Long
    • Apache Commons lang3 應用
      • Function 應用
    • Cloud Platform
      • Amazon S3
        • SDK V1
          • Bucket
        • SDK V2
          • Bucket
      • Google Cloud Platform
      • Azure Cloud
        • Storage
      • OVHcloud
        • Config
    • SSL/TLS工具
    • Util 工具
      • Jackson Json工具
      • Charles應用
      • JMeter – Performing Distributed Load Testing with Docker
    • Redis
      • Stream
      • Redisson 分布式鎖機制
      • Create Redis Cluster Using Docker
      • List Operations
    • Java 8
      • method & constructor Reference
      • CompletableFuture
      • FunctionInterface
      • Stream 應用
      • 繁簡轉換 - 簡易調整
    • MySQL
      • 建立測試用 流水號Table
      • SQL 效能調校 - Explain
      • SQL 效能調校 - Partition
      • 排程 - Event
    • Apache ShardingSphere
  • Kubernetes
    • 初入江湖(K8S)
    • 零中斷服務滾動更新
    • Kubernetes DNS
    • Ingress & Ingress Controller 教學
    • Ingress TLS Easy setup
  • 指令集
  • Telegram
  • SourceTree
    • 踩坑紀錄(ㄧ) - Git Flow
    • 踩坑紀錄(二) - 修改檔名
  • 專案統計
    • Robot
    • Recharge
  • GitHub
    • Actions
  • GitLab
    • 介紹 GitLab
    • 使用 Docker 自架 GitLab
    • 簡介 GitLab CI/CD
      • GitLab Runner 詳細介紹與設定方式
Powered by GitBook
On this page
  • 什麼是 GitLab CI/CD?
  • GitLab CI/CD 的核心概念
  • GitLab CI/CD 範例
  1. GitLab

簡介 GitLab CI/CD

什麼是 GitLab CI/CD?

GitLab CI/CD 是 GitLab 提供的持續集成 (Continuous Integration) 和持續部署 (Continuous Deployment) 功能。它允許開發團隊自動化地將程式碼整合、測試和部署到目標環境中,從而加快軟體開發週期,提高效率。

GitLab CI/CD 的核心概念

  1. Pipeline(流水線):Pipeline 是一個自動化的工作流程,由一系列稱為 job 的任務組成。Pipeline 可以自動執行各種操作,例如編譯程式碼、運行測試、構建 Docker 鏡像、部署應用程式等。

  2. Runner(執行器):Runner 是實際執行 Pipeline 中 job 的代理程式。Runner 可以是 GitLab 提供的共享 Runner,也可以是自定義的 Runner。

  3. Job(任務):Job 是 Pipeline 中的一個步驟,代表一個具體的操作,例如編譯程式碼、運行測試、構建 Docker 鏡像、部署應用程式等。

  4. Stage(階段):Stage 是一組相關聯的 job 的集合,代表 Pipeline 中的一個階段。例如,可以有一個編譯階段包含所有編譯相關的 job。

GitLab CI/CD 範例

以下是一個簡單的 GitLab CI/CD 範例,用於自動測試、構建和部署一個 Web 應用程式:

# .gitlab-ci.yml

# 定義 Pipeline 中的階段
stages:
  - build
  - test
  - deploy

# 定義各階段中的 job
# 在每個 job 中,我們可以定義 script 欄位來指定要執行的指令
# 我們也可以使用不同的 image 來執行不同的操作
jobs:
  # 編譯程式碼
  build:
    stage: build
    script:
      - npm install
      - npm run build
    artifacts:
      paths:
        - build/
  
  # 執行測試
  test:
    stage: test
    script:
      - npm test
  
  # 部署到生產環境
  deploy:
    stage: deploy
    script:
      - docker build -t myapp .
      - docker tag myapp registry.example.com/myapp
      - docker push registry.example.com/myapp
    only:
      - master  # 只有在 master 分支上提交時才執行部署操作

Previous使用 Docker 自架 GitLabNextGitLab Runner 詳細介紹與設定方式

Last updated 1 year ago