Skip to content

@.各ファイルの役割

Geusen edited this page Feb 1, 2023 · 13 revisions

更新日: 23/01/29


ディレクトリ

Schedule_Bot
├─ schedule.py  (時間割通知のプログラム)
├─ news
│   └─ news.py  (月間予定通知のプログラム)
└─ .github
    └─ workflows
        ├─ Schedule.yml  (定期実行用ファイル)
        └─ News.yml

Schedule.yml

name: GitHub_Actions(shedule)

on:						# 以下の場合に実行
  workflow_dispatch:				  # 手動実行(デバッグ用)
  schedule:					  # 定期実行
    - cron: '*/40 0-12,21-23 * * *'		    # 6時〜21時、40分ごとに動作
  repository_dispatch:				  # 外部から実行(デバッグ用)
    types: GitHub_Actions(gas)			    # GASから実行

env:						# 環境変数から文字列(パスワードなど)を取得
  ACCESS_TOKEN: ${{secrets.ACCESS_TOKEN}}	  # ACCESS_TOKEN (Twitter用)
  ACCESS_TOKEN_SECRET: ${{secrets.ACCESS_TOKEN_SECRET}}	# ACCESS_TOKEN_SECRET (Twitter用)
  CONSUMER_KEY: ${{secrets.CONSUMER_KEY}}	  # CONSUMER_KEY (Twitter用)
  CONSUMER_SECRET: ${{secrets.CONSUMER_SECRET}}	  # CONSUMER_SECRET (Twitter用)
  GOOGLE_URL: ${{secrets.GOOGLE_URL}}		  # 時間割GoogleスプレッドシートのURL
  LINE_NOTIFY: ${{secrets.LINE_NOTIFY}}		  # LINEグループのトークン
  LINE_NOTIFY_27: ${{secrets.LINE_NOTIFY_27}}	  # 27組LINEグループのトークン
  LINE_NOTIFY_13: ${{secrets.LINE_NOTIFY_13}}	  # 13組LINEグループのトークン
  WEBHOOK: ${{secrets.WEBHOOK}}			  # DiscordのWebhookURL
  IMGUR: ${{secrets.IMGUR}}			  # Imgurのトークン
  JSON: ${{secrets.JSON}}			  # Googleスプレッドシートアクセス用JSON
  SHEET_ID: ${{secrets.SHEET_ID}}		  # URL保存先のGoogleスプレッドシートのID
  GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}	  # GITHUBのトークン
  RUN_NUMBER: ${{github.run_number}}		  # このワークフローの番号
  RUN_ID: ${{github.run_id}}			  # このワークフローのID
concurrency:  					# 同時にworkflowが実行されたらキャンセル
  group: ${{ github.workflow }}-${{ github.ref }}

jobs:						# 実行内容
  build:
    runs-on: ubuntu-latest			  # Ubuntuで実行
    timeout-minutes: 5				  # 5分過ぎたら強制終了
    steps:
      - uses: actions/checkout@v3		    # 実行準備
      - uses: actions/setup-python@v4		    # python準備 
        with:
          python-version: '3.x'				# バージョン3系
          architecture: 'x64'				# 64bit

      - name: run python
        id: results
        run: |
          echo "::group::pip install --upgrade pip"	# グループ化(ログを見やすくする為)
          python -m pip install --upgrade pip==22.3.1	# pipのインストール
          pip install get-chrome-driver==1.3.10		# Chrome実行
          pip install selenium==4.8.0			# 〃
          pip install opencv-python==4.7.0.68		# 画像処理
          pip install python-opencv-utils==0.0.4	# 〃
          pip install tweepy==4.12.1			# Twitter投稿
          pip install gspread==5.7.2			# Googleスプレッドシート読み書き
          pip install oauth2client==4.1.3		# 〃
          echo "::endgroup::"
          python -B schedule.py				# Python実行

      - name: GitHub_Summary
        run: |					# 実行結果を出力
          echo -e "- #### 時刻: ${{steps.results.outputs.TIME}}" >> $GITHUB_STEP_SUMMARY
          echo -e "- #### ステータス: ${{steps.results.outputs.STATUS}}" >> $GITHUB_STEP_SUMMARY
          echo -e "- #### 現在の時間割:\n${{steps.results.outputs.NOW}}" >> $GITHUB_STEP_SUMMARY
          echo -e "- #### 過去の時間割:\n${{steps.results.outputs.BEFORE}}" >> $GITHUB_STEP_SUMMARY
      - name: Keepalive Workflow		# GitHubActons停止対策
        uses: gautamkrishnar/keepalive-workflow@v1
Clone this wiki locally