🙌

GitHubのActionsを使ったライブラリ自動verifyでyukicoderの問題を使う方法

2024/05/29に公開

GitHubのActionsを使ったライブラリ自動Verifyとは、 Online Judge Verification Helper を GitHub Actions上で走らせる例のアレのことです。 https://online-judge-tools.github.io/verification-helper/document.ja.html

Online Judge Verification Helper (以下OJVHと略す)の導入やGitHub Actionsの導入は終わっていて、Library CheckerやAOJの問題を使った自動Verifyはできているものとします。

yukicoderのAPIキーを取得する

Library CheckerやAOJと違って、yukicoderの問題をOJVHでVerifyするには、yukicoderのAPIキーが必要です。

APIキーはyukicoderのプロフィールページの下のほうにある、「APIキー (β)
」のところから取得可能です。APIキーがどこまでできるのかはあまり把握していませんが、公開しないほうが良さそうではあるので、公開しないでおきましょう。

ローカルでyukicoderの問題を使ってverifyする場合

OJVHは環境変数でyukicoderのAPIキーを読み出します。
bashを使っている場合は、.bashrcに下のように書いておきましょう。

export YUKICODER_TOKEN='(ここにAPIキーを入れる)'

GitHub Actionsでyukicoderの問題を使ってverifyする場合

ここが本題です。
ライブラリを管理しているリポジトリのSettingsの、Security欄のSecrets and variablesのActionsをクリックします。

"Ner Repository secret"をクリックして、Secretの名前を`YUKICODER_TOKEN'として、Secretの中には先程取得したyukicoderのAPIキーを入力して、 Add secretを押すことで設定が完了します。

なんかVerifyしてみる

テスト用の問題として、これ https://yukicoder.me/problems/12 を使って自動Verifyできるか試してみましょう。

Hello Worldを出力するだけの問題です。

#define PROBLEM "https://yukicoder.me/problems/12"
#include <bits/stdc++.h>
using namespace std;
int main() {
  cout << "Hello World!" << endl;
}

上のようなコードを書いて、oj-verify runしてみて、実際にテストが走ったらローカルでは成功です。 (Actionsの設定次第ですが) push origin mainなどすると、Actionsも同じ様にテストが走るはずです。

実際、Verifyできてました。

めでたしめでたし。

Discussion