世の中の流れに逆らって、オンプレでAzure DevOps ServerやSelf-Hostedのビルドエージェントを構築してますが、またまた引っかかってしまいました・・・
AntからGradleに移してみようと思い、エージェント環境を構築するのに、GitHubから最新版のエージェントをインストールして、JavaもOpenJDKを入れて、Gradleもローカルで動くことを確認して、「じゃあ、Pipelineから動かそう」としたところ、
「指定した要求を満たすエージェントがプール Default 内に見つかりません。java Agent.Version -gtVersion 1.95.1」
と怒られました・・・( ゚Д゚)
エージェントのバージョンは(当時の)最新版(2.153)だし、Javaは環境変数(JAVA_HOME)をちゃんと指定しているので問題ないはずなんですが、エージェントを再インストールしても、エージェントのPCを再起動しても認識してくれない。
ちょっと悩んでましたが、GitHubのIssueに上がってました。
java capability not detected properly with Azul Zulu
なんと、現状ではOracleのJDKしか認識しないとのこと。今回インストールしたのはAdopt OpenJDKだったので、認識してくれなかったようです。
ということで、小細工をして動かします。
通常は、エージェントがJavaのインストールを自動で検知して、エージェントの「システムの機能」として管理するのですが、今回は検知してくれないので「ユーザ定義の機能」として指定します。
「ユーザ定義の機能」自体は、タグ付けみたいな感じで使うのですが、システムの機能で設定されるキーワードを設定することもできるので、これでごまかします。
今回は「java」というキーワードを持っているエージェントが見つからないということなので、「名前:java」「値:true」と設定してあげます。
(エージェントの管理は、プロジェクト設定からになります)
一番うれしいのは、エージェントがちゃんと認識してくれることなのですが、Issueに「Area: Cross Platform」がタグ付けされてて根が深そうなので、当面はこの方法で回避かなと。