Skip to content

fandorin23/websoft_hcm_gitlab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 

Repository files navigation

Описание GitLab CI/CD пайплайна для деплоя на linux websoft hcm

Общее назначение

Этот GitLab CI/CD пайплайн предназначен для автоматического развертывания (деплоя) кода на тестовые и продакшен-серверы linux websoft hcm в зависимости от ветки, в которую производится коммит.

Предварительные требования

Установленное программное обеспечение на серверах

Для корректной работы пайплайна на целевых серверах должны быть установлены:

  • GitLab Runner - должен быть зарегистрирован и настроен для выполнения задач CI/CD
    • Тестовый сервер: runner с тегом test
    • Продакшен сервер: runner с тегом prod
  • Git - для работы с репозиторием (клонирование, обновление кода)
  • rsync - для эффективного копирования файлов (обычно предустановлен в Linux)

Настроить папки с которыми вы будете работать

  • На примере папки libs - cкопировать папку libs из образа websoft HCM на сервер в директорию (к примеру): /opt/websoft/docker/WebSoftServerForDocker/wtv/libs
  • Настроить bind mount на эту папку в Docker при запуске контейнера:
    "-v /opt/websoft/docker/WebSoftServerForDocker/wtv/libs:/WebsoftServer/wtv/libs"

Архитектура пайплайна

GitLab Repository

  • ├── Ветка "test" → GitLab Runner (tag: test) → Тестовый сервер
  • └── Ветка "prod" → GitLab Runner (tag: prod) → Продакшен сервер

Основные компоненты

Стадии (Stages)

  • deploy - единственная стадия, отвечающая за развертывание приложения

Переменные (Variables)

  • DEPLOY_PATH_TEST_SERVER - путь к директории на тестовом сервере
  • DEPLOY_PATH_PROD_SERVER - путь к директории на продакшен-сервере
  • REPOSITORY_URL - URL Git-репозитория (вынесен в переменную для удобства)

Как работает пайплайн

1. Определение целевого сервера

Скрипт автоматически определяет, куда деплоить, на основе ветки:

  • Ветка test → деплой на тестовый сервер
  • Ветка prod → деплой на продакшен-сервер

2. Процесс деплоя

  1. Клонирование/обновление репозитория

    • Если папка .git отсутствует - клонирует репозиторий
    • Если существует - обновляет код из нужной ветки
  2. Копирование файлов

    • Используется rsync для эффективного копирования
    • Исключаются ненужные файлы (.git, .yml, .md)
    • Сохраняются права доступа и владельцы

3. Две отдельные задачи

  • deploy_test - срабатывает при коммитах в ветку test
  • deploy_prod - срабатывает при коммитах в ветку prod

Особенности реализации

Безопасность

  • Используется CI_JOB_TOKEN для безопасного доступа к репозиторию
  • Раздельные теги (test/prod) гарантируют выполнение на правильных раннерах

Эффективность

  • Шаблон (deploy_template) исключает дублирование кода
  • rsync копирует только измененные файлы
  • Четкое разделение сред (test/prod)

Гибкость

  • Легко изменить пути деплоя через переменные
  • Просто добавить новые среды при необходимости

Процесс использования

  1. Разработчик пушит в ветку test → автоматический деплой на тестовый сервер
  2. После тестирования пушит в ветку prod → автоматический деплой на продакшен

Это обеспечивает непрерывную доставку с четким разделением сред разработки.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published