Github Actions設定で躓いたこと

pythonで作った天気予報のプログラムをGithub Actionsで毎日決められた時間に実行しようとして設定をしてみたのですが、最初は上手く行かず、あれこれ試して最終的にできたので備忘録&戒めのつもりでブログにその過程を残しておきます。

まずはプログラムの全貌

name: Daily Weather Notification

# スケジュールを設定
on:
  schedule:
    - cron: "0 23 * * *" # 毎日朝8時に実行 (日本時間)

jobs:
  run-weather-script:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v3

      - name: Set up Python
        uses: actions/setup-python@v2
        with:
          python-version: "3.x"

      - name: List files in the root directory
        run: ls -al

      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          pip install -r requirements.txt
        working-directory: ${{ github.workspace }}

      - name: Run weather script
        env:
          LINE_NOTIFY_ACCESS_TOKEN_LIST: ${{ secrets.LINE_NOTIFY_ACCESS_TOKEN_LIST }}
        run: |
          python ScrapingYahooWeather.py

躓いたところ

その1:requirements.txtが見つからないエラー

最初はそもそもファイルを作っていなかった・・。
しかし、作っても再度プッシュして反映したつもりだけど、同じエラーの繰り返し

それで、working-directory: ${{ github.workspace }}を指定しても、actions/checkout@v2からactions/checkout@v3へ変更しても、エラーが消えることがありませんでした。

よく見たらファイルの中身を更新してプッシュしても、実際には変わらなかったです。

その後、以下をためしたら無事動いてくれました。
※尚、こちらの設定は「mainブランチがpushされたら」というトリガーになっているようです。
そのためこの設定があることで、mainブランチが更新されプッシュされるたびに、Jobが実行されることになります。本当はそうしたくありません。根本原因は恐らくGithub Actionsのキャッシュにあると思います。

on:
  push:
    branches:
      - main

その2:設定した環境変数を上手く取得できず401エラー

こちらのエラーは自分の勘違いで設定ミスによるエラーでした。

「Repository secrets」として定義しないといけないのに、「Environment secrets」として定義してしまったことが原因でした。

Repository secretsの設定方法

  1. GitHubリポジトリのページに移動します。
  2. Settingsタブをクリックします。
  3. 左側のメニューからSecrets and variables > Actionsを選択します。
  4. New repository secretボタンをクリックします。
  5. NameフィールドにLINE_NOTIFY_ACCESS_TOKEN_LISTと入力します。
  6. Valueフィールドに以下の値をそのまま入力します。

コメント

タイトルとURLをコピーしました