Настройка CI/CD на примере Github, Bitbucket и Gitlab: инструкция с кодом

Ключевой шаг к автоматизации и оптимизации процессов разработки.
Настройка CI/CD на примере Github, Bitbucket и Gitlab:  инструкция с кодом
CI/CD (Continuous Integration / Continuous Deployment) играет ключевую роль в современной разработке ПО, обеспечивая автоматическую сборку, тестирование и развертывание кода. Данная статья представляет собой пошаговое руководство по настройке CI/CD в Github, Bitbucket и Gitlab с детальными инструкциями и примерами кода.

Настройка CI/CD на Github

Создание файла конфигурации.

1. В корне вашего репозитория создайте директорию .github/workflows, а в ней файл main.yml.

Пример конфигурационного файла:

name: CI/CD Pipeline
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Set up Node.js
      uses: actions/setup-node@v2
      with:
        node-version: 14
    - name: Install dependencies
      run: npm ci
    - name: Run tests
      run: npm test
    - name: Deploy to production
      if: github.ref == 'refs/heads/main'
      run: echo "Add your deployment script here" 

2. Настройка скрипта развертывания. Замените echo "Add your deployment script here" на скрипт, который будет разворачивать ваш проект после успешного прохождения тестов. Например, это может быть скрипт для развертывания на AWS или другой облачной платформе.

Настройка CI/CD на Bitbucket

1. Создание файла конфигурации. В корне вашего репозитория создайте файл bitbucket-pipelines.yml.

Пример конфигурационного файла:

image: node:14
pipelines:
  default:
    - step:
        name: Build and Test
        script:
          - npm ci
          - npm test
    - step:
        name: Deploy to production
        deployment: production
        script:
          - echo "Add your deployment script here"
 

2. Настройка скрипта развертывания. Укажите в этом разделе команды для развертывания вашего приложения в производственной среде после успешного прохождения тестов.

Настройка CI/CD на GitLab

1. Создание файла конфигурации. В корне вашего проекта создайте файл .gitlab-ci.yml.

Пример конфигурационного файла:

image: node:14
stages:
  - build
  - test
  - deploy
cache:
  paths:
    - node_modules/
install_dependencies:
  stage: build
  script:
    - npm ci
run_tests:
  stage: test
  script:
    - npm test
deploy_to_production:
  stage: deploy
  only:
    - main
  script:
    - echo "Add your deployment script here"
 

2. Настройка скрипта развертывания. Как и в предыдущих примерах, замените плейсхолдер на реальные команды для развертывания вашего проекта.

Дополнительные советы и лучшие практики

  • Тестирование в разных средах.

    Рассмотрите возможность настройки разных сред тестирования (например, staging и production) для обеспечения дополнительного уровня проверки перед развертыванием.

  • Использование Docker.

    Если ваш проект использует Docker, включите шаги для сборки и развертывания Docker-образов в вашем CI/CD пайплайне.

  • Мониторинг и уведомления.

    Настройте уведомления для отслеживания статуса пайплайнов и быстрого реагирования на сбои в процессе сборки или развертывания.

Настройка CI/CD в Github, Bitbucket и Gitlab - ключевой шаг к автоматизации и оптимизации процессов разработки. Следуя этим детальным инструкциям, вы сможете эффективно настроить CI/CD пайплайны, которые повысят качество вашего кода и ускорят его доставку.

Shape
Личные кабинеты и сервисы
Делаем сложные проекты для государства и бизнеса, подключаем ЕСИА, ЭЦП и многое другое.
laravel, vue.js, PHP, Python, CI/CD, Docker
Мобильные приложения
Делаем одно приложение для нескольких платформ одновременно, за счет чего сокращаем издержки.
React native, flutter, Kotlin, Swift, .NET MAUI
Разработка сайтов
Делаем сайты и магазины с ультраплавными 3D‍-‍анимациями. Любые платежные системы и эквайринг. Сложная структура и дизайн.
Greensock, Canvas, webgl, MODX, 1с-битрикс
No-code cайты
Делаем понятные и продающие сайты и магазины c большой конверсией. Минимальные сроки разработки от 2-х дней.
Tilda, 1С-Битрикс
Чат-боты
Автоматизируем общение с клиентами в telegram, whatsapp, instagram. Сложный функционал и оплата.
Telegram, messenger, whatsapp
Интеграция AI
Сокращаем продуктовые издержки, подключая и настраивая нейросети в проектах.
ChatGPT, Mid-journey, CustomGPT
Контекстная реклама под ключ
Рекламная кампания с максимально возможной конверсией. Приведем первых клиентов уже через 3 дня!
Google Adwords, Yandex Директ