Laravel에서 GitHub Actions와 CI/CD를 통합하는 방법
Laravel은 현대적인 웹 애플리케이션을 위한 PHP 프레임워크로, 많은 개발자들이 선호합니다.
이 프레임워크를 GitHub Actions와 통합하여 CI/CD(지속적 통합 및 지속적 배포)를 구현하는 방법에 대해 알아보겠습니다.
1. GitHub Actions란?
GitHub Actions는 GitHub에서 제공하는 CI/CD 서비스로, 자동화된 워크플로를 구축할 수 있습니다.
이를 통해 코드 변경 시 자동으로 빌드, 테스트, 배포를 수행할 수 있어 개발 프로세스의 효율성을 높일 수 있습니다.
2. Laravel 프로젝트 설정
먼저, Laravel 프로젝트를 생성하고 필요한 종속성을 설치합니다.
Composer를 사용하여 패키지를 관리하고, .env 파일을 적절히 설정하여 데이터베이스와의 연결을 준비합니다.
composer create-project --prefer-dist laravel/laravel my-laravel-app
3. GitHub Repository 생성
새로운 GitHub 리포지토리를 생성하고, 로컬 Laravel 프로젝트를 해당 리포지토리에 푸시합니다.
이는 GitHub Actions가 접근할 수 있는 기반이 됩니다.
git init
git add .
git commit -m "Initial commit"
git remote add origin https://github.com/username/my-laravel-app.git
git push -u origin master
4. GitHub Actions 워크플로우 파일 만들기
프로젝트 루트 디렉토리에 .github/workflows/ci.yml
파일을 생성합니다.
이 파일은 CI/CD 워크플로우를 정의하며, Laravel 애플리케이션을 빌드하고 테스트하는 데 필요한 명령어를 포함합니다.
name: Laravel CI
on:
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.0'
- name: Install dependencies
run: |
composer install
- name: Run tests
run: |
vendor/bin/phpunit
5. 환경 변수 설정
GitHub 리포지토리의 Settings → Secrets에서 필요한 환경 변수를 추가합니다.
데이터베이스 정보를 포함한 Laravel .env
파일에 필요한 값들을 여기서 정의할 수 있습니다.
6. 자동 배포 설정
CI/CD의 일환으로, 자동 배포를 설정할 수 있습니다.
예를 들어, rsync
또는 scp
명령어를 사용하여 서버에 배포할 수 있습니다.
배포 스크립트를 공식 문서에 따라 추가합니다.
- name: Deploy to server
run: |
ssh username@your-server "cd /path/to/your/app && git pull origin master && composer install && php artisan migrate"
7. 요약
Laravel과 GitHub Actions를 통합하면 CI/CD 프로세스를 간소화할 수 있습니다.
코드가 푸시될 때마다 자동으로 테스트하고, 배포하여 안정적인 개발 환경을 유지할 수 있습니다.
이러한 방법을 통해 개발자들은 프로덕션 환경에서 발생할 수 있는 오류를 최소화하고, 더 빠른 개발 주기를 경험할 수 있습니다.