GitLab CI/CD
אוטומציה מלאה עם GitLab Pipelines
סקירה כללית
תבנית מקיפה ל-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
- בדיקות אבטחה אוטומטיות
- ניהול סודות מאובטח