GitLab CI/CD

אוטומציה מלאה עם GitLab Pipelines

גרסה 1.5.0 עודכן: 05/02/2025

סקירה כללית

תבנית מקיפה ל-CI/CD באמצעות GitLab Pipelines. כוללת תצורות מוכנות לשימוש עבור בדיקות, בנייה ופריסה של אפליקציות. תומך במגוון סביבות וטכנולוגיות.

תכונות עיקריות

  • Multi-stage Pipelines
  • תמיכה במספר סביבות
  • בדיקות אוטומטיות
  • אינטגרציה עם Kubernetes

הגדרת Pipeline


# .gitlab-ci.yml
stages:
  - test
  - build
  - deploy

variables:
  DOCKER_REGISTRY: "registry.example.com"
  APP_NAME: "my-app"

test:
  stage: test
  script:
    - npm install
    - npm run test
  coverage: '/Coverage: \d+\.\d+%/'

build:
  stage: build
  script:
    - docker build -t $DOCKER_REGISTRY/$APP_NAME:$CI_COMMIT_SHA .
    - docker push $DOCKER_REGISTRY/$APP_NAME:$CI_COMMIT_SHA
  only:
    - main
    - develop

deploy_staging:
  stage: deploy
  script:
    - kubectl set image deployment/$APP_NAME $APP_NAME=$DOCKER_REGISTRY/$APP_NAME:$CI_COMMIT_SHA
  environment:
    name: staging
  only:
    - develop

deploy_production:
  stage: deploy
  script:
    - kubectl set image deployment/$APP_NAME $APP_NAME=$DOCKER_REGISTRY/$APP_NAME:$CI_COMMIT_SHA
  environment:
    name: production
  when: manual
  only:
    - main
                    

סביבות עבודה

Development

  • הרצת בדיקות אוטומטיות
  • בניית Images
  • פריסה לסביבת פיתוח

Staging

  • פריסה אוטומטית
  • בדיקות אינטגרציה
  • בדיקות ביצועים

Production

  • פריסה ידנית
  • גיבוי אוטומטי
  • ניטור מתקדם

תבניות מוכנות


# Node.js Template
.node_template:
  image: node:16
  cache:
    paths:
      - node_modules/
  before_script:
    - npm install

# Docker Template
.docker_template:
  image: docker:20
  services:
    - docker:20-dind
  before_script:
    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY

# Kubernetes Template
.k8s_template:
  image: bitnami/kubectl
  before_script:
    - kubectl config use-context $KUBE_CONTEXT
                    

אבטחה

  • סריקת Dependencies
  • סריקת Docker Images
  • בדיקות אבטחה אוטומטיות
  • ניהול סודות מאובטח