Skip to content

Instantly share code, notes, and snippets.

@bz0
Created February 3, 2020 15:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bz0/b3b0e44119cc73aacd631ea2d41be053 to your computer and use it in GitHub Desktop.
Save bz0/b3b0e44119cc73aacd631ea2d41be053 to your computer and use it in GitHub Desktop.

TravisCI

github+TravisCIによるLaravelのCIを行う。

公式サイト

https://travis-ci.com/
※travis-ci.orgもあるが、そちらは旧版なので.comの方を利用する

設定

.travis.yml

language: php
php:
  - 7.3
services:
  - mysql
before_script:
  - cp .env.travis .env
  - mysql -u root -e "CREATE DATABASE IF NOT EXISTS blog;"
  - composer self-update
  - composer install --no-interaction
  - php artisan config:clear
  - php artisan view:clear
  - php artisan key:generate
  - php artisan config:cache
  - php artisan migrate --no-interaction -vvv
script:
  - ./vendor/bin/phpunit
after_success:
  - bash <(curl -s https://codecov.io/bash) -cF php

設定ファイルのキャッシュをしている場合、.envがロードされないのでキャッシュをクリアする

php artisan config:clear

APP_KEYを自動生成する(生成しないと「No application encryption key has been specified.」エラーになる)

php artisan key:generate

※APP_KEYは、セッションや認証機能の暗号化に利用されている?
https://qiita.com/yk2220s/items/dcbf54c6d1f33a0cb06f

ビューのキャッシュをクリアする

php artisan view:clear

参考:
https://dragon-taro.com/college/post-613

mysqlの利用方法

mysqlの利用方法は、travisciの公式ドキュメントで説明があります。 ユーザー名travisまたはrootと空のパスワードを使用して接続してください。
https://docs.travis-ci.com/user/database-setup/

※mysqlの設定情報もキャッシュされている

  • https://dragon-taro.com/college/post-613
  • travis.ymlをgithubでpush,pullrequestすると設定したスクリプトが自動で走る
  • 環境変数をtravisci用の設定ファイルを作る
    • mysqlの利用方法は、travisciの公式ドキュメントで説明があるのでこれを参照:https://docs.travis-ci.com/user/database-setup/

    • travisci上でphpunit実行されると、General error: 1 no such table: usersになる(travisci上で
    • php artisan migrateは走っていてusersテーブルは生成されているように見える
    • 作っていたmigrateファイルだとusersテーブルがもしかして生成されない?と思ってテーブル全部消してローカルでphp artisan migrateしてみるも問題なく生成されるので、そっちも問題なさそう
    • Laravelのtravisci設定例:https://dev.to/nahuelhds/basic-travis-ci-configuration-for-laravel-4k8c
    • テーブル一覧をコントローラで表示してみるもテーブルが全く生成されていない
    • 設定ファイルのキャッシュが行われている?と思ったので「php artisan config:cache」を追加
    • 設定ファイルがキャッシュされると、.envファイルはロードされない
    • 設定ファイルのキャッシュは、bootstrap/cache/config.phpに生成される
    • 「php artisan key:generate」で生成されるAPP_KEYに関してもキャッシュに保存される為、先に「php artisan config:clear」しておく
    • mysqlの接続情報もキャッシュされる
    • APP_ENV:環境によって異なる処理を行わせたい場合に利用
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment