【GitHub Actions】Laravel의 CI 환경 구축

실현하고 싶은 것



GitHub Actions를 사용하여 Laravel의 CI 환경을 구축합니다.

전제



개발 환경에서 PHPUnit vendor/bin/phpunit 명령을 실행하면 문제없이 테스트가 제대로 작동한다고 가정합니다.

워크플로 만들기



github/workflows/ci.yml
name: CI

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

jobs:
  php-nuit:
    runs-on: ubuntu-latest

    services:
      mysql:
        image: mysql:8.0.19
        ports:
          - 3306:3306
        options: --health-cmd "mysqladmin ping -h localhost" --health-interval 20s --health-timeout 10s --health-retries 10
        env:
          MYSQL_ROOT_PASSWORD: password
          MYSQL_DATABASE: testdatabase

    env:
      DB_CONNECTION: mysql
      DB_HOST: 127.0.0.1
      DB_PORT: 3306
      DB_DATABASE: testdatabase
      DB_USERNAME: root
      DB_PASSWORD: password

    steps:
      - uses: actions/checkout@v2
      - name: Copy .env
        run: cp .env.ci .env
        working-directory: ./server
      - name: composer install
        run: |
          composer install --no-scripts
        working-directory: ./server
      - name: Generate key
        run: php artisan key:generate
        working-directory: ./server
      - name: Directory Permissions
        run: chmod -R 777 storage bootstrap/cache
        working-directory: ./server
      - name: migrate
        run: php artisan migrate
        working-directory: ./server
      - name: php-unit test
        run: ./vendor/bin/phpunit
        working-directory: ./server

이번 테스트에서는 데이터베이스도 얽혀 있기 때문에 MySQL을 사용했습니다. 또한 내 Laravel의 디렉토리 구조는 아래 첨부 이미지와 같으므로 명령에 따라 디렉토리를 지정하는 working-directory: ./server를 설명합니다.



■참고
htps : // 기주 b. 코 m/유타 1988/슈세키군/bぉb/마s r/. 기테 b/를 rkfぉws/해. yml

.env.ci 만들기



워크플로에서 .env.ci를 기반으로 .env 파일을 복제하므로 .env.ci를 만듭니다.

server/.env.ci
APP_NAME=Laravel
APP_ENV=testing
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=testdatabase
DB_USERNAME=root
DB_PASSWORD=password

■참고
htps : // 기주 b. 코 m/유타 1988/슈세키군/bぉb/마s r/세 rゔぇr/. 엔 v. 시

참고


  • GitHub Actions 문서
  • GitHub Actions로 Laravel CI/CD 환경 구축(MySQL, Deployer)
  • 좋은 웹페이지 즐겨찾기