【GitHub Actions】Laravel의 CI 환경 구축
6219 단어 GitHubActions라라벨GitHub
실현하고 싶은 것
GitHub Actions를 사용하여 Laravel의 CI 환경을 구축합니다.
전제
개발 환경에서 PHPUnit vendor/bin/phpunit
명령을 실행하면 문제없이 테스트가 제대로 작동한다고 가정합니다.
워크플로 만들기
github/workflows/ci.ymlname: 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.ciAPP_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. 시
참고
개발 환경에서 PHPUnit
vendor/bin/phpunit
명령을 실행하면 문제없이 테스트가 제대로 작동한다고 가정합니다.워크플로 만들기
github/workflows/ci.ymlname: 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.ciAPP_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. 시
참고
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
워크플로에서 .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. 시
참고
Reference
이 문제에 관하여(【GitHub Actions】Laravel의 CI 환경 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yuta_sawamura/items/f02921ef12349f535ee6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)