HordeのJob Notificationがうまく機能しません

お世話になっております。

<br/>

Unreal Horde Server : 5.5.0.0

HordeでIncremental BuildのJobを実行しているのですがうまくSlackへ通知を投稿してくれません。何も投稿がされない状況です。

<br/>

<br/>

調査した事

・curlを使ってチャンネルに投稿 → 投稿できました。

curl -X POST "https://slack.com/api/chat.postMessage" -H "Authorization: Bearer xoxb-*************-**************-************************" -H "Content-type: application/json; charset=utf-8" --data "{\"channel\":\"#Slackチャンネル名\",\"text\":\"horde test message\"}"

<br/>

・ログを確認 → socket接続は問題なさそうです

[14:41:32 inf] Opening Slack socket wss://wss-primary.slack.com/link/?ticket=*****&app_id=********
[14:41:33 inf] Slack event: {"type":"hello","num_connections":1,"debug_info":{"host":"applink-0","build_number":4,"approximate_connection_time":18060},"connection_info":{"app_id":"*****"}}

<br/>

・ジョブのログ

[17:40:06 inf] Sending Slack notification for job 6937d119841d9081872b26aa, batch 6d4c, step 7655, outcome Warnings to Anonymous (63f7d3525119b9aa4c0f035a)

<br/>

Engine\Source\Programs\Horde\HordeServer\Slack\manifest.json

SlackのAppはUE5.6の上記のManifestを使って作成しました。ただ、SlackのプランがEnterpriseではないため"user":のところを削除、org_deploy_enabledをfalseにしてアプリを追加しました。

<br/>

設定ファイル(一部パスワード等を****に置き換え)を添付いたします。

そもそもIncremental Buildでは通知がされない仕様なのか、なにか設定が足りてないのかわからず困っています。

よろしくお願いいたします。

[Attachment Removed]

再現手順
Unreal Horde Server : 5.5.0.0

ncremental BuildのJobを実行して、Slackのチャンネルを確認します。

server.json

		"SlackToken": "xoxb-*************-**************-************************",
//		"SlackSocketToken": "xapp-1-***********-**************-****************************************************************",
		"jobNotificationChannel": "#Slackチャンネル名",
		"ConfigNotificationChannel": "#Slackチャンネル名"

[Attachment Removed]

お世話になっております。

確認したところ、Jsonの方は問題がなさそうですので、

次の点を確認してもらえますか。

他の種類のHorde通知はSlackに届いていますか?それかIncrementalBuildのみでしょうか?それとも、ビルドイベントだけが届かない状態でしょうか。

Horde側で設定しているSlack の投稿先(チャンネル ID/Webhook)が、curlでテストして成功したものと完全に一致しているか、念のため確認してもらえますか。

可能であれば、Slack アプリの再認可(re-authorize)や権限スコープの確認もお願いできますか。

トークンが古い、または権限が足りない場合、Horde のログには「sent」と出ても、Slack 側がメッセージを受け取らずに無視する可能性があります。そこも確認していただけますか?

お手数ですが、よろしくお願いします。

[Attachment Removed]

お世話になっております。

トラッキングのため、本件をクローズさせていただきます。

いつでも遠慮なく再オープンしてください!

お手数ですが、よろしくお願いします。

[Attachment Removed]

調査に手間取ってしまい返事が遅くなりました。

HordeServer5.5では"Missing ‘View’ tag when parsing"のエラーがでていたのでHordeServer5.7にアップデートしました。

弊社のネットワーク環境の問題でDNSからSlack.comが引けてないようなエラーが出ていたため以下の対応をしました。

・ルーターにipv6のDNSのアドレスを設定(ipv4で賄えていたが追加設定)

・HostsにSlack.comの定義を追加

・イーサネットのプロパティのipv6のoff

・DotNet環境変数でipv6をDisable

・HordeServerサービスの遅延スタート

上記対応でエラーは解消したのですがまだチャンネルには投稿されません。

そこでユーザーを追加したところDMに通知が来るようになりました。

>他の種類のHorde通知はSlackに届いていますか?

DMに「Job Succeeded」という通知が来ました!

あとはチャンネルに通知がくるようにしたいのですが、どういう操作をするとどういう通知が来るのが正しい挙動なのか教えてほしいです。

IncrementalBuildを手動で走らせた場合はチャンネルへ通知されず、DMのみなのでしょうか?

JenkinsのようにP4でチェックインが行われたときに自動的にビルドを走らせて結果をSlackへ通知させたいです。

自動的にビルドを走らせる方法だとチャンネルへ通知されるのか、それもよくわかっていないです。

知りたい点は

・どういう操作をしたらチャンネルに通知されるのか?

・自動ビルドの方法

・P4Vのpreflightを使いたいのですが接続先サーバーの設定方法

よろしくお願いします。

[Attachment Removed]

お世話になっております。

→ DMとチャンネルのポストの差がないはずです。気になっている点があって、ローマ字(asciiのみ)のチャンネルでも通知が来ていないかどうか確認していただけますか?

→自動ビルド方法

https://dev.epicgames.com/documentation/ja\-jp/unreal\-engine/horde\-build\-automation\-tutorial\-for\-unreal\-engine

IncrementalBuildですと、自動的にPerforceのStreamにサブミットがあったら足っているはずですが、通知を置いて、Job自体はそうなっていないということでしょうか?

→Preflightにかんして、Hordeをインストールした後に、Toolsの方にP4Vのプラグインをダウンロードできます。PresubmitのJobが自動でHordeのホームに追加されています。

[Image Removed]

もし不明点があったら教えてください!

また、1月5日までEpicが全体的に休みになっているため、連絡が遅れる場合があります。

お手数ですが、よろしくお願いします。

[Attachment Removed]

>DMとチャンネルのポストの差がないはずです。気になっている点があって、ローマ字(asciiのみ)のチャンネルでも通知が来ていないかどうか確認していただけますか?

はい、ローマ字のチャンネルでもだめでした。

その後色々調べてもらい原因が分かりました!

stream.jsonに以下の1行を追加する必要がありました。

"notificationChannel": "#チャンネル名",ハマりポイントとしては

  • 付属のサンプルにnotificationChannelの設定がなく、ドキュメントにも書かれていなかったため気づくことができなかった
  • ユーザーを追加しないとそもそも通知をしてくれない
  • チャンネル名の頭に#が必要なところと#を付けないところがあり統一されていない

こんな感じです。

あと、Preflightですが、P4Vから [Image Removed]このように実行しているのですが以下のURLがブラウザが開きエラーになります。

https://my-horde-server/preflight?stream=//AA/Main&change=1261

my-horde-serverの部分を任意のURL、またはIPアドレスに置き換える必要があると思うのですが

それの設定方法が分からないです。

よろしくお願いします。

[Attachment Removed]

お世話になっております。

チャンネルで通知できてよかったです!

Preflightに関しては、もう一件の方で返事させていただきます。

引き続きよろしくお願いします。

[Attachment Removed]