Closed8

GitHub ActionsでAtCoder Problemsのバーチャルコンテストを自動で作成したい

powellpowell

AtCoder ProblemsのAPIを叩いてバーチャルコンテストを作成するスクリプト(既存のもの)をGitHub Actionsから呼び出して、自動化したい。

https://github.com/KowerKoint/ac-problems-contest-builder

ディレクトリ構造

+ .github
+  └ workflows
+     └ build_virtual_contest.yml
  config.py         # 環境のセットアップを行う
  main.py           # APIを叩く
  problems.sqlite3  # 過去に出題した問題を保存するデータベース
  requirements.txt
powellpowell

build_virtual_contest.ymlの中身

(ミスがあったので削除)正しいものについてはスレッドを参照

powellpowell
  • 2023/11/27: 変更後のデータベースが反映されない問題を修正
  • 2023/12/04: タイムゾーンの問題を修正
name: build_virtual_contest
on:
  # 手動実行
  workflow_dispatch:
  # 定期実行
  schedule:
    # 分 時 日 月 曜日
    - cron: '0 1 * * 1'  # 毎週月曜日の朝10時に実行

jobs:
  build:
    runs-on: ubuntu-latest

    # 実行する処理&コマンド指定
    steps:
      - uses: actions/checkout@v2
      - name: Set up Python 3.8
        uses: actions/setup-python@v1
        with:
          python-version: 3.8
      - name: build virtual contest
        env:
          TZ: 'Asia/Tokyo'
        run: |
          # パッケージのインストール
          python -m pip install -r requirements.txt
          # 出題データの読み込み
          python config.py
          # コンテストを立てる
          python main-for-actions.py ${{ secrets.ATCODER_PROBLEMS_TOKEN }} >> log.txt
          # ログの表示
          cat log.txt
      - name: push to main branch
        run: |
          # ユーザー情報の設定
          git config user.name github-actions
          git config user.email github-actions@github.com
          # 変更の追加
          git add problems.sqlite3
          git commit -F log.txt
          git push
powellpowell

✅上のコードで正しく動作することが確認できました

このスクラップは2023/12/11にクローズされました