Skip to Content
2️⃣ День 2Теория пайплайнов

Теория пайплайнов

Пайплайн (pipeline) — это последовательность этапов (job’ов), которые выполняются при изменениях в репозитории.

Основные этапы пайплайна:

  1. Тесты — запуск unit/integration тестов
  2. 🧱 Сборка (build) — создание артефакта или docker-образа
  3. 🚀 Деплой (deploy) — загрузка артефакта на сервер, перезапуск сервиса

Какие ещё есть CI/CD инструменты

Существует множество CI/CD систем, каждая со своими особенностями:

  • GitLab CI/CD — встроен в GitLab, удобен для проектов на GitLab
  • Jenkins — гибкий, но требует самостоятельной установки и настройки
  • CircleCI — облачный CI/CD с простой интеграцией
  • Travis CI — раньше был популярен, сейчас теряет актуальность
  • Bitbucket Pipelines — встроен в Bitbucket

👉 В этом интенсиве мы будем использовать GitHub Actions, так как:

  • он уже встроен в GitHub
  • прост в настройке
  • хорошо подходит для обучения и практики

Пример реального CI/CD процесса

  • Разработчик делает коммит и пушит в ветку main
  • GitHub Actions запускает workflow:
  1. Устанавливает зависимости
  2. Запускает тесты
  3. Собирает Docker-образ
  4. Пушит его в Docker Hub
  5. Через SSH деплоит на сервер и перезапускает docker-compose
.github/workflows/deploy.yml
name: CI/CD Pipeline on: push: branches: [main] jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: '22' - run: npm ci - run: npm test - run: docker build -t username/app . - run: docker login -u ${{ secrets.DOCKER_USER }} -p ${{ secrets.DOCKER_PASS }} - run: docker push username/app - name: Deploy via SSH uses: appleboy/ssh-action@v0.1.6 with: host: ${{ secrets.HOST }} username: ${{ secrets.USER }} key: ${{ secrets.SSH_KEY }} script: | docker pull username/app docker-compose up -d
Last updated on