Настройка непрерывной интеграции и непрерывной доставки (CI/CD) для Laravel-проектов позволяет автоматизировать процесс разработки, тестирования и развертывания, ускоряя доставку качественного программного обеспечения. В этом руководстве мы рассмотрим, как настроить CI/CD для Laravel-проектов с использованием популярных инструментов, таких как GitHub Actions, GitLab CI/CD и Jenkins.

GitHub Actions

GitHub Actions предоставляет мощную платформу для автоматизации рабочих процессов, включая CI/CD. Для настройки CI/CD для Laravel-проекта на GitHub, создайте файл .github/workflows/ci.yml в вашем репозитории.

name: Laravel CI

on:
 push:
    branches: [ master ]
 pull_request:
    branches: [ master ]

jobs:
 test:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2

    - name: Setup PHP
      uses: shivammathur/setup-php@v2
      with:
        php-version: '7.4'
        coverage: none

    - name: Validate composer.json and composer.lock
      run: composer validate

    - name: Install dependencies
      run: composer install --prefer-dist --no-progress --no-suggest

    - name: Run tests
      run: vendor/bin/phpunit

    - name: Check & fix code style
      run: vendor/bin/php-cs-fixer fix --config=.php_cs.dist -v

Этот файл конфигурации определяет рабочий процесс CI/CD, который будет запускаться при каждом push и pull request в ветку master. Он включает в себя установку PHP, валидацию composer.json и composer.lock, установку зависимостей, запуск тестов и проверку стиля кода.

GitLab CI/CD

GitLab также предлагает встроенную поддержку CI/CD. Для настройки CI/CD для Laravel-проекта на GitLab, создайте файл .gitlab-ci.yml в корне вашего репозитория.

image: php:7.4

stages:
 - test

cache:
 paths:
    - vendor/

before_script:
 - apt-get update -yqq
 - apt-get install -yqq git
 - docker-php-ext-install pdo_mysql
 - curl -sS https://getcomposer.org/installer | php
 - php composer.phar install

test:
 script:
    - ./vendor/bin/phpunit

Этот файл конфигурации определяет рабочий процесс CI/CD, который будет запускаться при каждом push в репозиторий. Он включает в себя установку зависимостей и запуск тестов.

Jenkins

Jenkins — это мощный инструмент для автоматизации разработки, который также поддерживает CI/CD. Для настройки CI/CD для Laravel-проекта на Jenkins, вам потребуется установить и настроить Jenkins, а затем создать новый проект с конфигурацией, которая соответствует вашим требованиям.

Заключение

Настройка CI/CD для Laravel-проектов помогает автоматизировать процесс разработки, обеспечивая быструю и надежную доставку качественного программного обеспечения. Выбор инструмента для CI/CD зависит от ваших предпочтений и требований к проекту. GitHub Actions и GitLab CI/CD предлагают простые и мощные решения для большинства проектов, в то время как Jenkins предлагает гибкость и расширяемость для более сложных сценариев.