GitHubのActionsを使ったライブラリ自動verifyでyukicoderの問題を使う方法
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