Настройка CI/CD для PrestaShop 1.8.7 позволяет автоматизировать процессы разработки и развертывания, что значительно упрощает работу разработчиков и улучшает качество продукта. В этом руководстве мы рассмотрим, как настроить CI/CD для PrestaShop 1.8.7 с использованием GitHub Actions, а также все необходимые шаги для этого.
Что такое CI/CD и зачем это нужно?
CI/CD (Continuous Integration/Continuous Deployment) — это набор практик и инструментов, которые позволяют автоматизировать процесс интеграции кода и его развертывания. Основные преимущества CI/CD:
- Автоматизация тестирования и сборки кода
- Быстрое выявление и исправление ошибок
- Упрощение процесса развертывания
- Повышение качества и стабильности продукта
Предварительные требования
Для настройки CI/CD для PrestaShop 1.8.7 вам понадобятся следующие инструменты и сервисы:
- GitHub для хранения репозитория с кодом
- GitHub Actions для автоматизации процессов
- Docker для контейнеризации приложений
- MySQL для базы данных
- Keycloak для управления доступом
Настройка окружения
Шаг 1: Подготовка Docker Compose файла
Создайте файл docker-compose.yml
для настройки контейнеров:
services:
mysql:
container_name: mysql_prestashop_dev
image: mysql:5
ports:
- "3306"
volumes:
- ./aac/logs/mysql:/var/log
environment:
MYSQL_ROOT_PASSWORD: your_mysql_password
MYSQL_DATABASE: prestashop_db
restart: always
networks:
aac_network:
ipv4_address: 192.168.10.2
keycloak:
container_name: keycloak_prestashop_dev
image: quay.io/keycloak/keycloak:19.0.3
environment:
KEYCLOAK_ADMIN: admin
KEYCLOAK_ADMIN_PASSWORD: admin_password
PROXY_ADDRESS_FORWARDING: "true"
command:
- start-dev
- --proxy=edge
ports:
- "8003:8080"
networks:
aac_network:
ipv4_address: 192.168.10.4
prestashop-git:
container_name: app_prestashop_dev
hostname: prestashop.local
build:
dockerfile: .docker/Dockerfile
context: .
environment:
PS_INSTALL_AUTO: 1
DB_SERVER: mysql
DB_NAME: prestashop_db
DB_USER: root
DB_PASSWD: your_mysql_password
PS_DOMAIN: prestashop.local
PS_LANGUAGE: en
ports:
- "8001:80"
depends_on:
- mysql
- keycloak
volumes:
- ./:/var/www/html
networks:
aac_network:
ipv4_address: 192.168.10.3
networks:
aac_network:
external: true
Шаг 2: Настройка GitHub Actions
Создайте файл .github/workflows/ci-cd.yml
для автоматизации процессов CI/CD:
name: CI/CD for PrestaShop
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
services:
mysql:
image: mysql:5
ports:
- 3306:3306
env:
MYSQL_ROOT_PASSWORD: your_mysql_password
MYSQL_DATABASE: prestashop_db
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push Docker image
run: |
docker build -t your_dockerhub_username/prestashop:latest .
docker push your_dockerhub_username/prestashop:latest
deploy:
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Deploy to production
run: |
ssh user@production_server "docker pull your_dockerhub_username/prestashop:latest && docker-compose -f /path/to/your/docker-compose.yml up -d"
Заключение
В этом руководстве мы рассмотрели, как настроить CI/CD для PrestaShop 1.8.7 с использованием GitHub Actions. Настройка CI/CD позволяет автоматизировать процессы разработки и развертывания, что значительно упрощает работу разработчиков и улучшает качество продукта. Следуя этим шагам, вы сможете быстро и легко настроить CI/CD для вашего проекта.
Для получения дополнительной информации по настройке CI/CD, вы можете обратиться к официальной документации GitHub Actions.