しばやん雑記

Azure とメイドさんが大好きなフリーランスのプログラマーのブログ

Azure Web サイトがアップデートされて Bower / Grunt / Gulp が使えるようになりました

今日に Azure Web サイトのアップデートが行われて、Kudu の更新以外にも Bower / Grunt / Gulp の 3 つが新しくインストールされるようになっていました。

既に Kudu の Debug Console からはパスが通っているので、そのまま使えるようになっています。

f:id:shiba-yan:20141205232338p:plain

なので、Debug Console から bower install bootstrap といったコマンドを実行すると、ちゃんと Twitter Bootstrap がインストールされます。

f:id:shiba-yan:20141205232928p:plain

Visual Studio 2015 Preview では GUI での操作に対応しましたが、Azure Web サイトならコマンドからの操作にも簡単に対応出来ますね。Visual Studio 2015 に興味のある方は以下の記事を参照してください。

ASP.NET 5 と Visual Studio 2015 では Bower と Grunt が標準になるみたいなので勉強してみた - しばやん雑記

惜しいのが Monaco からはパスが通っていない点です。今後の改善に期待しましょう。

f:id:shiba-yan:20141205234207p:plain

IIS プロセスでも Bower / Grunt / Gulp へのパスが通っているのかは確認出来てませんが、Kudu のカスタムデプロイスクリプト内では問題なく実行出来ると思うので、Azure Web サイトに git push したタイミングでサーバー側で処理を入れたりは簡単に出来そうです。

Azure Web サイトに Ruby on Rails アプリケーションを簡単にデプロイするスクリプトを作った - しばやん雑記

ちなみにデフォルトのデプロイスクリプトは Azure xplat-cli を使って簡単に生成することが出来ます。

The Azure Cross-Platform Command-Line Interface

azure site deploymentscript コマンドを使うと、様々なターゲットへのデプロイスクリプトが生成されます。

> azure site deploymentscript

Executing command site deploymentscript
Generate custom deployment script

Usage: site deploymentscript [options]

Options:
  -h, --help                         output usage information
  -v, --verbose                      use verbose output
  --json                             use json output
  -r, --repositoryRoot [dir path]    The root path for the repository (default: .)
  --aspWAP <projectFilePath>         Create a deployment script for .NET web application, specify the project file path
  --aspWebSite                       Create a deployment script for basic website
  --node                             Create a deployment script for node.js website
  --php                              Create a deployment script for php website
  --python                           Create a deployment script for python website
  --basic                            Create a deployment script for any other website
  --dotNetConsole <projectFilePath>  Create a deployment script for .NET console application, specify the project file path
  -s, --solutionFile [file path]     The solution file path (sln)
  -p, --sitePath [directory path]    The path to the site being deployed (default: same as repositoryRoot)
  -t, --scriptType [batch|bash]      The script output type (default: batch)
  -o, --outputPath <output path>     The path to output generated script (default: same as repository root)
  -y, --suppressPrompt               Suppresses prompting to confirm you want to overwrite an existing destination file.
  --no-dot-deployment                Do not generate the .deployment file.
  --no-solution                      Do not require a solution file path (only for --aspWAP otherwise ignored).

Please specify one of these flags: --aspWAP, --aspWebSite, --php, --python, --dotNetConsole, --basic or --node

このコマンドで生成された deploy.sh ファイルをカスタマイズしていきます。Node.js 用に bash 向けに出力すると、以下のように npm のパッケージを復元する処理があります。

# 3. Install npm packages
if [ -e "$DEPLOYMENT_TARGET/package.json" ]; then
  cd "$DEPLOYMENT_TARGET"
  eval $NPM_CMD install --production
  exitWithMessageOnError "npm failed"
  cd - > /dev/null
fi

$NPM_CMD に npm へのパスが入っているので、追加でパッケージが必要な処理も書けます。

と言うか、普通の bash スクリプトなのでパス通したり curl を叩いたり何でもできます。grunt でテストを実行したり、Sass とかのコンパイルを行ったり出来るはずです。試しては無いですが。