Edited at

node × TeamCity インテグレーション 〜TeamCity上でnode, npm を使用できるようにする〜

More than 3 years have passed since last update.

TeamCity ではデフォルトでnode のコマンドをサポートしていません。

そのためTeamCity のプラグインを導入しなければなりません。

ここではそのプラグインの紹介と簡単な使い方を紹介します。

プラグインの導入方法については解説しませんので、ご注意を。


プラグイン

https://github.com/jonnyzzz/TeamCity.Node

Node 関連のコマンドを扱うプラグインです。

実行できるようになるコマンドは以下になります。


  • node.js


  • npm:パッケージマネージャ


  • nvm:Node バージョン変更


  • Phantom.js:仮想ブラウザ


  • Grunt:タスクランナー


  • Gulp:タスクランナー


プラグインを使うために追加でインストールすべきもの

プラグインを導入しただけでは、TeamCity 上でコマンドを実行した時にエラーとなってしまいます。

そのため、以下のものについては、TeamCity が起動しているサーバに追加インストールする必要があります。

必須

任意

任意とした理由は、もしTeamCity を複数プロジェクトで使用している場合は、プロジェクトごとに異なるバージョンを使用することがあるため、プロジェクト側のビルドプロセスで任意パッケージをインストールしたほうが良いからです。

1プロジェクトであればTeamCity にインストールしておいて問題ありません。

もちろん使用しないのであれば、すべてインストールする必要ありませんが。


TeamCity ビルド

ここでは、npm, gulp を使用したビルドを紹介します。

この例では、各プロジェクトごとに各パッケージのバージョンが異なる前提で作成しています。

全体のタスクは以下のようになります。

all.png




1. Node のバージョンを NVM インストーラで指定します。

first.png




2. Node をインストールしたときに付属してくるnpm をバージョン指定します。ここでは最新版にしています。

second.png




3. gulp をバージョン指定してインストールします。ここでは最新版にしています。

third.png




4. リポジトリから取得したプロジェクトをnpm installします。これでnpm_modules がTeamCity 上にインストールされます。

forth.png




5. リポジトリから取得したプロジェクトの各タスクを実行します。ここではnpm runしています。

fifth.png

ポイントは各パッケージをプロジェクトのビルドプロセスでインストールしていることです。