CircleCIの設定ファイルの作成

こんにちは、きゅ〜ぶです。
5月中はニートで暇なので今、チーム開発をしています。
そこでたまたまCircleCIの設定ファイルを作ることになったので以下にその状況をまとめておきます。

前提
PHP: v7.4.5
Laravel: v6.18.13
MySQL: v8.0.19

参考
①:https://circleci.com/docs/2.0/language-php/
②:いまさらだけどCircleCIに入門したので分かりやすくまとめてみた
③:CircleCIでLaravel[MySQL]とPHPUnitの自動化
④:CircleCI対応のLaravel開発環境を作る方法

ディレクトリ構成
-.circleci/
-config.yml
-src/Laravelのソース群はこの直下に格納)

まずその時に作ったのが以下です。

config/database.php

    'connections' => [
        'circleci' => [
            'driver' => 'mysql',
            'host' => '127.0.0.1',
            'port' => '3306',
            'database' => 'circleci',
            'username' => 'root',
            'password' => '',
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => 'null',
        ],
    ],

.circleci/config.yml

version: 2
  
jobs:
  build:
    docker:
      - image: circleci/php:7.4-node-browsers
        environment:
          - APP_DEBUG: true
          - APP_ENV: testing
          - APP_KEY: 任意の値 #①参照
          - DB_CONNECTION: mysql
          - DB_DATABASE: circleci
          - DB_USERNAME: root
      - image: circleci/mysql:8.0.19
        environment:
          - MYSQL_ALLOW_EMPTY_PASSWORD: true
          - MYSQL_DATABASE: circleci
        command: mysqld --default-authentication-plugin=mysql_native_password
    steps:
      - checkout
      - run: sudo apt update
      - run: sudo docker-php-ext-install zip pdo_mysql
      - run: sudo composer self-update
      - restore_cache:
          keys:
            - v1-dependencies-{{ checksum "src/composer.json" }}
            - v1-dependencies-
      - run: 
         command: composer install -n --prefer-dist
         working_directory: ./src
      - save_cache:
          key: v1-dependencies-{{ checksum "src/composer.json" }}
          paths:
            - vendor
      - restore_cache:
          keys:
            - node-v1-{{ checksum "src/package.json" }}
            - node-v1-
      - run: yarn install
      - save_cache:
          key: node-v1-{{ checksum "src/package.json" }}
          paths:
            - node_modules
      - run:
         command: php artisan migrate
         working_directory: ./src
      - run:
         command: ./vendor/bin/phpunit
         working_directory: ./src

①のAPP_KEYについてですが’php artisan key:generate’で生成できます。
これで.envファイルのAPP_KEYに自動で設定されるのでその値を設定すればOKです。

だいたいCircleCIの設定ファイルに関連するのは、config.ymlと.envファイルとconfig/database.phpの3つです。
なのでこの辺を気をつけてれば設定ファイル自体は大丈夫だと思います。
GitHubで連携して’git add’して’git commit’してリモートブランチに’git push’すると自動でビルドされてエラーかどうか判定してくれます。

ローカルでも確認できます。
参考:CircleCI 2.1 の job をローカルの CLI で実行する

良かったら参考にしてみてください!

コメント

タイトルとURLをコピーしました