Непрерывная интеграция и доставка (CI/CD) стала неотъемлемой частью современной разработки. Она позволяет автоматизировать проверку кода, сборку, тестирование и деплой проектов. Это ускоряет релизы, уменьшает количество ошибок и повышает стабильность продукта. Если вы используете VPS, у вас есть полный контроль над процессом и инфраструктурой, что делает CI/CD ещё более эффективным.

В этой статье мы разберём, как настроить CI/CD-пайплайн на виртуальном сервере с использованием GitHub Actions или GitLab Runner, а также какие преимущества даёт такой подход.

Почему CI/CD на собственном VPS?

Большинство популярных CI/CD-сервисов работают в облаке и имеют ограничения — по времени выполнения, доступным ресурсам или взаимодействию с приватной инфраструктурой. VPS обеспечивает полную свободу:

  • Нет ограничений по ресурсам — вы контролируете CPU, RAM и хранилище.
  • Доступ к внутренним сервисам — например, staging-серверу или базе данных.
  • Гибкая настройка среды — вы выбираете ПО и версии под свои нужды.
  • Максимальная безопасность — данные хранятся под вашим контролем, без участия сторонних облаков.

Именно поэтому команды DevOps часто размещают CI/CD-агенты на VPS.

Выбор инструмента: GitHub Actions vs GitLab Runner

GitHub Actions

GitHub Actions — это встроенная CI/CD-платформа для GitHub. Она запускает workflows по событиям (push, pull request, теги и др.).

Преимущества:

  • Полная интеграция с GitHub.
  • Конфигурации YAML хранятся прямо в репозитории.
  • Возможность добавления self-hosted runner на VPS.

Как использовать на VPS:

  1. Разместите VPS (например, используя VPS от Server.ua).
  2. Установите GitHub Runner на сервер.
  3. Зарегистрируйте его для своего репозитория или организации.
  4. Создайте .github/workflows/main.yml в нём.

Пример workflow:

yaml

name: Deploy to VPS
on:
  push:
    branches: [ main ]
jobs:
  deploy:
    runs-on: self-hosted
    steps:
    - uses: actions/checkout@v3
    - run: ./deploy.sh

GitLab Runner

GitLab CI — часть GitLab, которая обеспечивает пайплайны, а GitLab Runner выполняет их.

Преимущества:

  • Работает как с GitLab.com, так и с локальной установкой GitLab.
  • Поддержка логирования, гибкая структура пайплайнов.
  • Возможность использования executor’ов: Docker, SSH, shell и др.

Настройка GitLab Runner на VPS:

  1. Установите Runner командой: sudo apt install gitlab-runner.
  2. Зарегистрируйте его:

bash

sudo gitlab-runner register
  1. Выберите необходимый executor (например, shell или docker).
  2. Создайте конфигурационный файл .gitlab-ci.yml.

Пример .gitlab-ci.yml:

yaml

stages:
  - build
  - deploy

build:
  stage: build
  script:
    - npm install
    - npm run build

deploy:
  stage: deploy
  script:
    - bash ./scripts/deploy.sh

Дополнительные преимущества CI/CD на VPS

  • Доступ к приватным репозиториям или VPN — облачные агенты обычно не имеют доступа к закрытым сервисам вашей сети.
  • Логирование и мониторинг — вы сами решаете, куда сохранять логи, можете интегрировать с Zabbix, Grafana или Prometheus.
  • Параллельное выполнение задач — можно запускать несколько jobs одновременно, в зависимости от возможностей VPS.

Интересный факт: многие крупные проекты мира используют self-hosted runners для экономии средств и повышения контроля. Например, Firefox и Linux Foundation размещают свои CI-агенты на собственных серверах.

Безопасность CI/CD

Работа с секретами и токенами требует внимания. Следуйте рекомендациям:

  • Не храните пароли и ключи в коде.
  • Используйте защищённые переменные окружения (в GitHub — Secrets, в GitLab — CI/CD Variables).
  • Регулярно обновляйте VPS и CI/CD-агенты.
  • Ограничьте права доступов раннеров до минимально необходимых.

Кому подойдёт такой подход?

  • Командам, которые хотят полный контроль над пайплайнами.
  • Разработчикам, использующим VPS для staging или продакшена.
  • DevOps-инженерам, интегрирующим сборку с внутренней инфраструктурой.
  • Организациям, стремящимся сократить затраты на CI/CD, отказавшись от платных облачных агентов.

Вывод

CI/CD на VPS — это мощное и гибкое решение, позволяющее эффективно управлять всеми этапами разработки и доставки приложения. Используя GitHub Actions или GitLab Runner, можно построить полноценный цикл DevOps, не полагаясь на сторонние сервисы.

Self-hosted runners обеспечивают контроль, безопасность и оптимизацию затрат. Если вы рассматриваете VPS для CI/CD, рекомендуем обратить внимание на серверы от Server.ua — стабильная платформа с SSD, гибкими тарифами и поддержкой 24/7.

Начните заводить свой CI/CD уже сегодня — и почувствуйте разницу в скорости, безопасности и удобстве автоматизации.