摘要
GitLab CI/CD 是 GitLab 內置的持續集成和持續部署(CI/CD)工具,它可以幫助開發團隊自動化代碼測試、構建和部署。本指南將介紹如何使用 GitLab CI/CD 搭建完整的自動化部署流程,包括 .gitlab-ci.yml 配置文件的編寫、Stages、Jobs、Artifacts 以及 Runner 的使用。
引言
在現代軟件開發中,自動化部署成為提高開發效率和穩定性的關鍵環節。相比 GitHub Actions 和 Jenkins,GitLab CI/CD 具有與 GitLab 無縫集成的優勢,但許多開發者仍然對其使用方式不太熟悉。本指南將提供詳細的講解和示例代碼,幫助開發團隊高效使用 GitLab CI/CD。
GitLab CI/CD 基本概念
- Pipeline:GitLab CI/CD 的核心,由多個 Stage 組成。
- Stage:定義 CI/CD 的不同階段,如
build、test和deploy。 - Job:具體執行的任務,例如編譯代碼或運行測試。
- Runner:GitLab CI/CD 運行 Job 的環境,可以是共享 Runner 或自託管 Runner。
配置 .gitlab-ci.yml
.gitlab-ci.yml 是 GitLab CI/CD 的核心配置文件,以下是一個基本的 .gitlab-ci.yml 示例:
stages:
- build
- test
- deploy
job_build:
stage: build
script:
- echo "Building the application..."
- mvn package
artifacts:
paths:
- target/*.jar
job_test:
stage: test
script:
- echo "Running tests..."
- mvn test
job_deploy:
stage: deploy
script:
- echo "Deploying the application..."
- scp target/*.jar user@server:/deploy/path
解析:
stages定義了 CI/CD 流程的階段(build→test→deploy)。job_build任務構建應用,並保存target/*.jar產物(Artifacts)。job_test任務執行單元測試,確保代碼質量。job_deploy任務自動化部署,將產物上傳至服務器。
GitLab Runner 的使用
GitLab CI/CD 依賴 Runner 執行 Job,可以使用 GitLab 提供的共享 Runner,或者自己託管 Runner。
安裝 Runner(Linux 示例)
curl -L --output gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
chmod +x gitlab-runner
sudo mv gitlab-runner /usr/local/bin/
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start
註冊 Runner
sudo gitlab-runner register \
--url https://gitlab.com/ \
--registration-token YOUR_TOKEN \
--executor shell \
--description "My Runner" \
--tag-list "ci,deploy" \
--run-untagged=false \
--locked=false
説明:
--executor shell選擇 Shell 作為執行環境(可換為docker、kubernetes)。--tag-list "ci,deploy"設定 Runner 適用的 CI/CD 任務。
使用 Artifacts 進行構件管理
Artifacts 用於存儲和共享 Job 產生的文件,例如構建產物。
artifacts:
paths:
- target/*.jar
expire_in: 1 hour
paths:指定要保存的文件路徑。expire_in:設置過期時間,默認 30 天。
QA 環節
Q1: GitLab CI/CD 和 Jenkins 有什麼區別?
- GitLab CI/CD 集成在 GitLab 中,使用 YAML 文件配置,而 Jenkins 需要單獨安裝和維護。
Q2: 如何在 GitLab CI/CD 中使用環境變量?
- 可以在 GitLab 項目的
Settings > CI/CD > Variables添加環境變量,然後在.gitlab-ci.yml文件中使用$VAR_NAME。
總結
GitLab CI/CD 提供了一種高效的自動化部署方式,能夠幫助團隊提高開發效率和代碼質量。本文介紹了 GitLab CI/CD 的基本概念、.gitlab-ci.yml 配置、Runner 的使用以及 Artifacts 處理方式。
未來,我們可以進一步探索 GitLab CI/CD 的進階功能,如:
- 使用 Docker 進行容器化部署
- 結合 Kubernetes 進行自動化運維
- 監控和優化 CI/CD 運行效率
參考資料
- GitLab 官方文檔
- GitLab CI/CD 示例