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開発者