Skip to content

@.各ファイルの役割

Geusen edited this page Jul 14, 2022 · 13 revisions

ディレクトリ

Schedule_Bot
├─ client_secrets.json  (GoogleDriveアクセス用)
├─ credentials.json  (〃)
├─ schedule.py  (プログラムが記述してある)
├─ settings.py  (環境変数関連)
├─ settings.yaml  (GoogleDriveアクセス用)
│ 
└─ .github
    └─ workflows
        └─ Schedule.yml  (定期実行用ファイル)

※client_secrets.jsonとcredentials.jsonはschedule.pyで一時的に作成されるファイル

Schedule.yml

name: GitHub_Actions(shedule)  (この名前で定期実行)
on:  (実行のタイミング設定)
  workflow_dispatch:  (手動実行)
  schedule:  (定期実行)
    - cron: "*/10 0-12,21-23 * * *"  (分 時 日 月 曜)
            #6時〜21時、10分ごとに動作

env:  #環境変数から文字列(パスワードなど)を取得
  ACCESS_TOKEN: ${{secrets.ACCESS_TOKEN}}  (ACCESS_TOKENという変数取得)
  ACCESS_TOKEN_SECRET: ${{secrets.ACCESS_TOKEN_SECRET}}
  CONSUMER_KEY: ${{secrets.CONSUMER_KEY}}
  CONSUMER_SECRET: ${{secrets.CONSUMER_SECRET}}
  GOOGLE_URL: ${{secrets.GOOGLE_URL}}
  LINE_NOTIFY: ${{secrets.LINE_NOTIFY}}
  LINE_NOTIFY_27: ${{secrets.LINE_NOTIFY_27}}
  DISCORD_TOKEN: ${{secrets.DISCORD_TOKEN}}
  DISCORD_ID: ${{secrets.DISCORD_ID}}
  DISCORD_ID_DEBUG: ${{secrets.DISCORD_ID_DEBUG}}
  JSON: ${{secrets.JSON}}
  CLIENT: ${{secrets.CLIENT}}

jobs:  (実行内容)
  python:  (Python実行)
    runs-on: ubuntu-latest  (ubuntuで実行)
    timeout-minutes: 5  (5分経過したら実行キャンセル)
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-python@v2
        with:
          python-version: '3.6.15'  (Pythonバージョン指定)
          architecture: 'x64'
      - run: |
          python -m pip install --upgrade pip  (モジュールのインポートに必要な機能のアップデート)
          pip install get-chrome-driver  --upgrade  (ChromeDriverを取得)
          pip install python-dotenv==0.19.2  (モジュール取得)
          pip install selenium==3.141.0
          pip install tweepy==4.6.0
          pip install discord.py==1.7.3
          pip install pillow==8.4.0
          pip install pydrive==1.3.1
          pip install opencv-python==4.5.5.64
          python schedule.py  (Schedule.pyを実行)
      - name: Keepalive Workflow  (定期実行自動停止の阻止)
        uses: gautamkrishnar/keepalive-workflow@1.0.7
Clone this wiki locally