一文から始める
CIジョブは、実行のたびに数行のPythonでステータスポスターを描画します。最新のものをチームエリアのテレビに表示したいとします。
- あなた
CIジョブは実行のたびにステータスポスターを描画します。最新のものをチームエリアのテレビに表示して、テレビに実際に反映されたら教えてください。
- エージェント
ビルド4821を反映しました:PASSED、221件中221件のテスト。送信から約2秒で、テレビがポスターを受け取ったことを確認し、スクリーンの画像を撮って確かめました。

- あなた
ビルド4822が失敗しました。テレビを更新してください。
- エージェント
更新しました。テレビには赤字のFAILED、221件中219件のテストが表示されています。

同じことをスクリプトから
CIジョブはチャットをしません。画像をアップロードしてプレイリストを書き込むコマンドを1つ実行し、さらにスクリーンに反映してテレビが確認するまで待つコマンドをもう1つ実行します:
screenrig playlist init build-4821.png --screen-id SCREEN --duration-ms 600000 --output board.json
screenrig screen publish SCREEN board.jsonCLIの内側では、ベアラートークンを使った6つのHTTP呼び出しが行われます。アップロードの宣言、バイト列の送信、コミット、プレイリストの作成、スクリーンをそれに向ける、スクリーンの状態を読み戻す、の順です。それぞれAPIリファレンスに、終了コードはCLIリファレンスにあります。無人で動くスクリプトは、サービスクライアントとしてサインインします。
公開が教えてくれること
公開はテレビを最大2分待ち、その後どう終わったかを報告します:
| 回答 | 意味するもの | やること |
|---|---|---|
| 再生中 | テレビがプレイリストを受け取りました。 | 対応は不要です。 |
| 割り当て済み、スクリーンはオフライン | テレビがオフ、または切断されていました。再接続すると、プレイリストを再生します。 | 同じ公開をもう一度実行すると待機します。2つ目のプレイリストが作られることはありません。 |
| 割り当て済み、テイクオーバーを表示中 | 一時的なオーバーライドがスクリーンに表示されているため、新しいプレイリストが既定になり、オーバーライドが終わると再生されます。 | 待つか、テイクオーバーを解除します。 |
| 割り当て済み、テレビが拒否 | テレビが切り替えられませんでした。たとえば、アドレスにログインが含まれるページへの切り替えなどです。 | 理由を読み、修正してから、スクリーンを更新します。 |
| レビュー待ち | このプロジェクトでは、変更に人の承認が必要です。承認されるまで何も再生されません。 | 承認を待ちます。 |
| 公開済み | 同一の公開がすでに実行済みで、これは先ほどの回答です。 | 対応は不要です。 |
再試行しても、共有しても安全
- 再試行しても二重になりません。同じ公開を2回送っても、2つ目ではなく同じプレイリストが得られます。
- 古い更新は拒否されます。読み取ったリビジョンを付けて更新します。別のジョブが先にプレイリストを変更していた場合、あなたの更新は拒否されて現在のリビジョンが通知されるため、2つのジョブが互いに上書きすることはありません。
- スクリーンの画像は無料です。リフレッシュや、1台のスクリーンへのメモも同様です。スクリーンのグループ全体を更新する1つのコマンドは、届くスクリーンの数にかかわらず1リクエストとして数えます。
エージェントはスライドショーを1分で作れます。それをすべてのスクリーン、すべてのデバイスで何年も再生し続けるのが、screenRIGの仕事です。
Player一覧では、特定のテレビへのPlayerのインストールを扱っています。
次は:すべての呼び出し、フィールド、エラーはAPIリファレンスにあります。
