우선 적용하기에 앞서
Travis ci, jenkins, gitub Action 등 이 있었습니다.
jenkins는 호스팅을 직접해야하고 설정하는데 구축하는데 시간이 오래 걸릴꺼 같아 후보에서 제외시켰습니다.
Travis은 설정은 간단해보였습니다. 하지만 private 은 무료가 아니여서 제외 시켰습니다.
gitub Action 으로 진행하였습니다.
# database
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=test
DB_USERNAME=root
DB_PASSWORD=password코드를 입력하세요
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
name: CI
jobs:
phpunit:
runs-on: ubuntu-latest
container:
image: kirschbaumdevelopment/laravel-test-runner:8.1
services:
mysql:
image: mysql:5.7
env:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: test
ports:
- 33306:3306
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
steps:
- uses: actions/checkout@v1
with:
fetch-depth: 1
- name: Install composer dependencies
run: |
composer install --no-scripts
- name: Prepare Laravel Application
run: |
cp .env.ci .env
php artisan key:generate
- name: Run Testsuite
run: vendor/bin/phpunit tests/
테스트 케이스가 하나만 존재하는 데 45초나 걸렸습니다.
그 이유가
img -> composer install -> test 진행 방식이여서 install 할때 많이 지연 되는 듯 합니다.
나중에 개선 방향을 찾아볼 필요성이 있을 것으로 보입니다.