tag:crieit.net,2005:https://crieit.net/tags/Wercker/feed 「Wercker」の記事 - Crieit Crieitでタグ「Wercker」に投稿された最近の記事 2019-03-08T00:19:10+09:00 https://crieit.net/tags/Wercker/feed tag:crieit.net,2005:PublicArticle/14861 2019-03-08T00:17:46+09:00 2019-03-08T00:19:10+09:00 https://crieit.net/posts/Express-TypeORM-Wercker-CI Express+TypeORMの環境にてWerckerでCI <p>ExpressとTypeORMを使ったアプリケーションのWerckerでのCIがとりあえず完成したのでメモ。</p> <pre><code class="yaml">box: node services: - id: mysql tag: 5.7 env: MYSQL_ALLOW_EMPTY_PASSWORD: true MYSQL_DATABASE: dbname build: steps: - script: name: yarn code: yarn - script: name: Fill mysql env code: |- cp .env.example .env sudo sed -i -e "s/TYPEORM_HOST=localhost/TYPEORM_HOST=$MYSQL_PORT_3306_TCP_ADDR/g" .env sudo sed -i -e "s/TYPEORM_PORT=3306/TYPEORM_PORT=$MYSQL_PORT_3306_TCP_PORT/g" .env cp .env test/.env - script: name: migration code: yarn run migrate:run - script: name: yarn test code: yarn test </code></pre> <p>migrationとtestのコマンドは適宜自分で設定。</p> <p><code>test/.env</code>はテスト用に読むこむやつを設定しているというだけなので別のやり方をしている場合は不要。</p> <p>TypeORMは特にテスト用のDB管理方法があるわけではないようなので、事前にマイグレーションしている。(ローカル環境も考慮すると全部自分で準備しなければならないのが非常に面倒)</p> <p>ちなみにテストは下記でつくったもの。</p> <p><a href="https://crieit.net/posts/Mocha-SuperTest-async-await">Mocha+SuperTestでasync/awaitを使ってテスト</a></p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14469 2018-06-17T19:55:22+09:00 2018-10-25T17:29:30+09:00 https://crieit.net/posts/Wercker-Laravel5-6-PHP7-CI WerckerでLaravel5.6+PHP7のCI <p><a href="https://crieit.net/posts/BitBucket-Wercker-Laravel5-CI">BitBucket+WerckerでLaravel5のCI</a> でも書いたとおり、BitBucket+Werckerを利用することでLaravel5のCIを無料で簡単に行うことができます。</p> <p>ただ、上記の内容だと最新のLaravel5.6(PHP7)には対応していないため、対応したものでCIできるようにしてみました。</p> <p>下記が設定のためのwercker.ymlになります。</p> <pre><code class="yaml">box: dala00/laravel services: - id: mysql tag: 5.7 env: MYSQL_ALLOW_EMPTY_PASSWORD: "true" MYSQL_DATABASE: test build: steps: - script: name: Install dependencies code: | composer install - script: name: Fill mysql env. code: |- sudo sed -i -e "s/DB_HOST=mysql/DB_HOST=$MYSQL_PORT_3306_TCP_ADDR/g" .env.testing sudo sed -i -e "s/DB_PORT=3306/DB_PORT=$MYSQL_PORT_3306_TCP_PORT/g" .env.testing - script: name: Run phpunit code: |- vendor/bin/phpunit </code></pre> <h2 id="Werckerで使っている設定の解説"><a href="#Wercker%E3%81%A7%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E8%A8%AD%E5%AE%9A%E3%81%AE%E8%A7%A3%E8%AA%AC">Werckerで使っている設定の解説</a></h2> <pre><code class="yaml">box: dala00/laravel </code></pre> <p>僕が作ったイメージです(7.2。タグ付けは忘れているようです)。<code>/var/www/app</code>にプロジェクトが入っています。ちょっとしたものは大体動くのでこれで問題ない気がします(どうしてもちょうどいいイメージが見つからないため…)。</p> <pre><code class="yaml"> - id: mysql tag: 5.7 </code></pre> <p>mysql8が入るとパスワードのプラグインが違う関係でWerckerのCI時に接続ができません。仕方がないのでtagで5.7を指定しています。(恐らく今後イメージ側かWercker側で対処してくれるとは思うのですが…)</p> <pre><code class="yaml"> sudo sed -i -e "s/DB_HOST=mysql/DB_HOST=$MYSQL_PORT_3306_TCP_ADDR/g" .env.testing sudo sed -i -e "s/DB_PORT=3306/DB_PORT=$MYSQL_PORT_3306_TCP_PORT/g" .env.testing </code></pre> <p>Laravel5.6のテストの場合はphpunit.xmlで指定されている環境変数である<code>APP_ENV=testing</code>が使われるため、<code>.env.testing</code>が優先的に使用されます。また、WerckerはDBのIPがMYSQL_PORT_3306_TCP_ADDRで取得できるので、<code>.env.testing</code>をその内容に置換します。置換前の文字列は適宜自分のものに置き換えてください。</p> <p>こんな感じでWerckerにてLaravel5.6のCIが可能です。BitBucketを利用されている方は連携も非常に簡単ですので是非お試しください。</p> だら@Crieit開発者