続・PowerShell+Antで簡易CI

さすがにさっきのはCPUを無駄に食いまくりだしアホすぎにもほどがあるので、更新を検出してテストするようにしてみた。

# ci.ps1
$now = Get-Date

$sourceDirs = @('src/main/scala', 'src/test/scala')
$filter = "*.scala"
$sleepTime = 3000

ant clean test

while($true) {
  foreach($dir in $sourceDirs) {
    $ls = ls -recurse -filter $filter $dir
    foreach($file in $ls) {
      if($now -lt $file.LastWriteTime) {
        $now = $file.LastWriteTime
        ant test
      }
    }
  }
  [Threading.Thread]::Sleep($sleepTime)
}

ヤバイ、これ便利すぎだー。ファイルをセーブするだけでガンガンテストしてくれますよ!