PHP 프로젝트에서 다양한 CI 서비스를 사용해 보았다는 이야기

이 기사 개요



GitHub에서 커밋 및 푸시 할 때 자동으로 테스트를 수행하거나,
PullRequest 시에는 「이 코드, 코딩 규약 위반하고 있어!」라고 코멘트해 주는 서비스의 소개가 된다.

PHP 프로젝트에 대해 다음 리포지토리 대상
URL : htps : // 기주 b. 코 m / 이가라 / 쇼네 t

SideCI



URL : htps //w w. 시데시. 코m/
PullRequest를 발행했을 때 커밋한 파일의 정적 해석을 실시해,
코딩 규약 위반하고 있는 대상의 행에 코멘트를 추가해 준다.


위는 namespace의 지정이 없고, 규약에 반하고 있다는 코멘트의 예이다.

PSR의 규약에 준해 코멘트가 되어 있으므로
php-cs-fixer을 포맷터로 사용하면 대부분 수정됩니다.
(namespace 위반은 수정되지 않지만)

코드 수정을 하고, 규약대로 되면 아래와 같이 코멘트가 숨겨지게 된다.


이 때의 PullRequest의 예로서 다음과 같다.
htps : // 기주 b. 코 m/이가라/쇼네 t/푸 l/48

PHP 이외에 TypeScript도 정적 해석을 실시할 수 있다.

TravisCI



URL : h tps://t 등ゔぃs-해. rg/

리포지토리로 푸시된 후
다양한 언어 버전으로 빌드를 자동으로 수행하는 서비스
주로 PHPUnit의 실행과 커버리지의 취득용으로 사용하고 있다.

커버리지를 얻기 위해
php-coveralls 을 사용하고 있다.

composer로 도입할 때는 하기를 실행한다.
composer require satooshi/php-coveralls --dev

.travis.yml에 하고 싶은 태스크를 기재해, 리포지터리의 루트에 두는 것으로 자동적으로 빌드가 행해진다.

travis.yml


language: php

php:
    # 下記はビルド対象のPHPバージョン
    - 5.6
    - 7.0
    - hhvm
    - nightly

before_script:
    # laravelの環境設定ファイルの作成
    - cp -p .env.example .env
    # composerは30日毎にupdateすること責められる...
    - composer self-update
    - composer install
    - php artisan key:generate

script:
    # PHPUnitを実行し、ガバレッジを取得する
    - mkdir -p build/logs
    - chmod -R 777 build/logs
    - vendor/bin/phpunit --coverage-clover build/logs/clover.xml

after_success:
    # coverallsにカバレッジの反映をさせる
    - travis_retry php vendor/bin/coveralls -v


TravisCI는 composer나 xdebug를 사용할 수 있는 모양.

아래는 각 PHP의 버전에 의한 빌드의 결과가 된다.


README.md에 빌드 상태를 알 수 있도록 배치를 넣을 수 있습니다.
↓이녀석
Coveralls 커버리지의 결과를 퍼센트 표시로 하거나 커버리지를 바탕으로 PHPUnit의 assert 상태를 확인할 수 있다. .coveralls.yml을 설치할 필요가 있으므로 아래를 설명했습니다. coveralls.yml coverage_clover: build/logs/clover.xml json_path: build/logs/coveralls-upload.json service_name: travis-ci exclude_no_stmt: true TravisCI와 마찬가지로 배치를 설치할 수 있다. ↓이 녀석 참고 기사 약관을 따르지 않는 PHP 코드를 구축

좋은 웹페이지 즐겨찾기