ということをやりたかったのでやり方。

ダメな例


普通にshcdしてもディレクトリは切り替わらない。
例えば下記のようにworkdir内にあるdosomething.shを実行したいとする。

1
2
3
4
node {
sh ("cd ./workdir")
sh ("sh dosomething.sh")
}

しかし、sh ("cd ./workdir")を実行してもそれ以降の処理はルートディレクトリで実行されてしまうためdosomething.shは存在しないと言われてビルドは落ちる。

やり方


下記のようにdirを使えばその中の処理は記述したディレクトリに切り替わった状態で処理ができる。

1
2
3
4
5
node {
dir(./workdir) {
sh ("sh dosomething.sh")
}
}

ただ、実際は切り替えなくてもsh ("./workdir/dosomething.sh")とかやればよいケースが大半だと思う。けど、今回はちょっとそうではなかったので上記のやり方でディレクトリを切り替えてやりました。という記録。