LoginSignup
3
2

More than 5 years have passed since last update.

GitLab CIでMilkcocoaを動かしてみた #mlkcca

Posted at

dotstudioではGitLabを使っています。

Azure WebAppsにGitLab連携でデプロイしてみよう

ということでGitLab CIも最近つかいはじめてみています。
今日は、GitLab CIを使ってMilkcocoaのアプリケーションが動くかテストしてみたので紹介します。

GitLabのアドベントカレンダー代理で投稿させて頂きます

Milkcocoaとは

GitLabのアドベントカレンダーということでMilkcocoaの説明を簡単にします。
Milkcocoaはリアルタイム通信、IoTデバイスとの接続などが簡単にできるようになるバックエンドサービスです。

今回やること

MilkcocoaにはNode.jsのSDKがあるので今回はNode.jsアプリケーションでMilkcocoaを動かして、別のアプリケーションと接続してみます。

CI上でアプリケーションを動かすってCIのちゃんとした使い方ではないですが、無料でホスティングサービス的にCIを活用できたら楽しいことできそうだなと思った次第です。

やりかた

まずはMilkcocoaのアプリケーションIDを取得しましょう。

Milkcocoaの送信テスト用JSサンプルこの辺も参考に

情報を送る側のsend.jsを作成

こちらでMilkcocoaのSendメソッドを使って情報送信ができます。

send.js
'use strict'

const MilkCocoa = require('milkcocoa');
const milkcocoa = new MilkCocoa('アプリケーションID.mlkcca.com');
const ds = milkcocoa.dataStore('message');

setInterval(()=>{
  ds.send({v:1,time: new Date()}, (err, sended) => {
    console.log('送信:', sended);
  });
},2000);

send.jsはCI側で動作させます。2秒に一回sendするプログラムです。

受け取り側のreceive.jsを作成

receive.js
'use strict'

const MilkCocoa = require('milkcocoa');
const milkcocoa = new MilkCocoa('アプリケーションID.mlkcca.com');
const ds = milkcocoa.dataStore('message');

ds.on('send', (sended) => {
  console.log('受信:',sended);
});

手元のPCで動作させます。sendが発生したら反応します。

package.json

package.jsonのscriptsに以下を指定して、CI側でnpm run sendを実行することでsend.jsが起動するようにします。

package.json



"scripts": {
    "send": "node send.js"
  },



"dependencies": {
    "milkcocoa": "^0.6.0"
  }
 


またdependenciesにmilkcocoaを指定しましょう。

.gitlab-ci.ymlを作成

gitlab-ci.yml
image: node:7.2.1

before_script:
  - npm install

all_tests:
  script:
   - npm run send

そのままですが、7.2.1のNode.jsを使えるイメージでnpm installしてnpm run sendを実行します。

試してみた

CIの画面で起動を確認しつつ、手元のPC側はreceive.jsを起動させます。

$ node receive.js

こんな感じでちゃんとCI側で動いてるsend.jsから手元のPCで動いているreceive.jsに対して情報が送られています。

思ったより普通に動きましたね。

終わりに

これをずっと稼働させてるとどこかでfailするのかずっと起動できるのか、そもそも規約違反なのかはわかっていないのでとりあえず最後にキャンセルしておきました。これを何か実際のアプリケーションなどで活用する際は注意してください。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2