Jenkins のリリースフローで手動ビルドのリリースを禁止したいときは通常Jenkinsユーザーの権限を制限することで実現するかと思います。 さらに念を入れて手動ビルド自体を禁止する方法を説明します。
手動ビルドを禁止するJenkinsfile
when と triggeredBy を使えば、そのビルドのトリガーが手動(ユーザー)なのかポーリングなのか判定できます。
そこで error や false で止めてしまえばよいです。
下記の例は、人が手動でビルドボタンを押したときにビルドを中断させる例です。これで手動ビルドする不届き者を排除できます。
| |
その他のビルドトリガの判定
ちなみに、Gitなどのポーリングの場合は下記で捕まえられます。
| |
他には下記のトリガがあるそうです。最後のものは特定のユーザが手動ビルドしたときですね。この例ではvlindeさん。
when { triggeredBy 'TimerTrigger' }
when { triggeredBy 'BuildUpstreamCause' }
when { triggeredBy cause: "UserIdCause", detail: "vlinde" }
公式サイトのPipeline - whenに詳細な説明があります。 もっと複雑な処理をしたい場合は参照してください。
まとめ
Jenkinsにて手動ビルドされたときにビルドジョブを中断する方法を書きました。 ユーザー権限で制限するのが普通ですが、さらにJenkinsfileでも禁止しておけば安心ですね。