えいむーさんは明日も頑張るよ

GitHub ActionsでSalmoniaを実行してみた

価格

# GitHub Actions

まず、Github Actions を利用して Salmonia を定期実行することが GitHub の利用規約に抵触しないかを調べます。

利用規約

GitHub アクションでは、カスタムソフトウェア開発のライフサイクルにわたるワークフローを GitHub リポジトリに直接作成することができます。 Actions は、使用量に基づいて課金されます。 Actions のドキュメントには、計算量やストレージ容量 (アカウントのプランによって異なる)、および Actions の使用分数の監視方法や利用限度の設定方法などの詳細情報が記載されています

  • 法律違反、またはそれ以外で当社の利用規約またはコミュニティガイドラインに反しているコンテンツまたは行為
  • クリプトマイニング
  • サーバーレスコンピューティング
  • GitHub ユーザまたは GitHub サービスを危険にさらす行為
  • GitHub Actions が使用されるリポジトリに関連するソフトウェアプロジェクトの製造、テスト、デプロイ、公開に関連しないその他の行為。 つまり、GitHub Actions を使用して常識的に不適切と判断できることはしないこと

少なくともクリプトマイニングではないし、サーバーレスコンピューティングでもなく、GitHub ユーザやサービスを危険に晒す行為でもないです。

GitHub Actions が使用されるリポジトリに関連するソフトウェアプロジェクトの製造、テスト、デプロイ、公開に関連しないその他の行為。 つまり、GitHub Actions を使用して常識的に不適切と判断できることはしないこと

このあたりがちょっと気になるところで、要するにレポジトリの内容と無関係なことをするなということになります。

なので単にプログラムを動かしてリザルトをアップロードするだけでなくデータを保存してレポジトリとして建前上意味があるようにしようと思います。

データを保存してまあそれを表示するようなリザルトビューワとしての仕組みもつくればこの利用規約には触れないでしょう。

とはいっても

リザルトビューワをつくるのはめんどくさいので、最初は Python コードでいいや

# Salmonia for GitHub Actions (opens new window)

というわけでとりあえずリザルトを取得する Python コードを書いてみました。

# アカウントの作成

まずGitHub アカウント (opens new window)を作成する必要があります。

特に難しいこともないのでちゃちゃっとつくります。

# レポジトリのフォーク

Salmonia for GitHub Actions (opens new window)をフォークします。

リンクを開いた先の右上のForkを押せば自分のレポジトリとして作成されます。

# 環境変数の設定

このままだと大量のエラーを吐いてしまうので、自分のレポジトリhttps://github.com/{作成したアカウントのユーザ名}/Salmonia-GA/settingsを開きます。

Settingsを押して、その中のSecretsを開きます。

で、最初は何も設定されていないと思うのですが、次の五つの環境変数を設定します。

  • API_TOKEN
  • IKSM_SESSION
    • SplatNet2 からデータを取得するための iksm_session です
    • Salmonia (opens new window)などで事前に取得しておいてください
  • EMAIL
    • GitHub に登録したメールアドレスです
  • USERNAME
    • GitHub に登録したアカウント名です
  • LATEST_JOB_NUM
    • リザルト ID を指定します
    • 0 を設定しておけば良いです

ENVIRONMENT について

開発者用の環境変数なので、普通は設定しなくて良いです。

# 設定方法

New repository secretをクリックします。

このような画面が開くので、上を参考に五つのパラメータを設定します。

このように入力し、Add secretで環境変数を追加します。

この手順を全てのパラメータに対して行います。

これですべての手順は終了です。

# まとめ

あとは勝手に十分おきにプログラムがイカリング 2 へアクセスして新規リザルトがあるかどうかを確認し、あればリザルトを取得して Salmon Stats へアップロードしてくれます。

他に何もすることはないです。

また、現在はちゃんと実装していませんがVite (opens new window)にも対応しているのでyarn viteを実行すればウェブサイトが立ち上がります。

JSON を読み込んで簡易的なリザルトビューワとして使えるので、将来的に Netlify と連携して色々できたらいいなと思っています。

記事は以上。

価格
    えいむーさんは明日も頑張るよ © 2021