diff --git a/.github/workflows/daily.yml b/.github/workflows/daily.yml index 0e11d696..9241a1ab 100644 --- a/.github/workflows/daily.yml +++ b/.github/workflows/daily.yml @@ -45,19 +45,35 @@ jobs: echo "FOUND_NEWS=false" >> $GITHUB_OUTPUT fi + run-on-heroku: + needs: daily + runs-on: ubuntu-latest + timeout-minutes: 15 + + steps: + - name: 📦 Install Heroku CLI + run: curl https://cli-assets.heroku.com/install.sh | sh + + - name: 📅 Run upcoming_events:aggregation on Heroku + run: | + heroku run rails upcoming_events:aggregation --app $HEROKU_APP_NAME + env: + HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} + HEROKU_APP_NAME: ${{ secrets.HEROKU_APP_NAME }} + deploy: needs: daily if: ${{ needs.daily.outputs.FOUND_NEWS == 'true' }} # TODO: ubuntu-latest image needs to install heroku CLI to deploy. # https://github.com/AkhileshNS/heroku-deploy/issues/188 runs-on: ubuntu-22.04 - + steps: - name: ☑️ Checkout code uses: actions/checkout@v4 with: ref: main - + - name: 🚀 Deploy to Heroku uses: akhileshns/heroku-deploy@v3.14.15 with: diff --git a/.github/workflows/weekly.yml b/.github/workflows/weekly.yml new file mode 100644 index 00000000..bbc34f9b --- /dev/null +++ b/.github/workflows/weekly.yml @@ -0,0 +1,25 @@ +name: Weekly Workflow + +on: + schedule: + # 毎週月曜 1:00 AM UTC (日本時間 10:00 AM) + - cron: '0 1 * * 1' + # Allows you to run this workflow manually from the Actions tab + # https://docs.github.com/en/actions/managing-workflow-runs/manually-running-a-workflow + workflow_dispatch: + +jobs: + run-on-heroku: + runs-on: ubuntu-latest + timeout-minutes: 15 + + steps: + - name: 📦 Install Heroku CLI + run: curl https://cli-assets.heroku.com/install.sh | sh + + - name: 📊 Run statistics:aggregation on Heroku + run: | + heroku run rails statistics:aggregation --app $HEROKU_APP_NAME + env: + HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }} + HEROKU_APP_NAME: ${{ secrets.HEROKU_APP_NAME }} diff --git a/README.md b/README.md index 7b9c6d6c..6cc3c9a7 100644 --- a/README.md +++ b/README.md @@ -173,16 +173,18 @@ bundle exec rails podcasts:upsert

-### [:alarm_clock:](#howto-develop-jobs) 定期的に実行されるスクリプト (Heroku Scheduler) +### [:alarm_clock:](#howto-develop-jobs) 定期的に実行されるスクリプト (GitHub Actions) -以下のコマンドは上記 CI とは関係なく、定期的に実行されます。 +以下のコマンドは上記 CI とは関係なく、GitHub Actions で定期的に実行されます。 ```console -# 【毎日】近日開催のイベント収集 (Daily at 9:00 PM UTC) +# 【毎日】近日開催のイベント収集 (Daily at 0:00 UTC / 9:00 JST) +# 実行タイミング: .github/workflows/daily.yml $ bundle exec rails upcoming_events:aggregation -# 【毎週】統計情報ページ用のデータ収集 (Daily at 1:00 AM UTC) -$ [ $(date +%u) = 1 ] && bundle exec rails statistics:aggregation +# 【毎週】統計情報ページ用のデータ収集 (Weekly on Monday at 1:00 AM UTC / 10:00 AM JST) +# 実行タイミング: .github/workflows/weekly.yml +$ bundle exec rails statistics:aggregation ``` diff --git a/db/dojo_event_services.yml b/db/dojo_event_services.yml index 30a70320..b5876b9d 100644 --- a/db/dojo_event_services.yml +++ b/db/dojo_event_services.yml @@ -37,7 +37,7 @@ - dojo_id: 350 name: doorkeeper group_id: 104819 - url: https://saijo.doorkeeper.jp/ + url: https://coderdojo-saijo.doorkeeper.jp/ # SAGA @ 駅前中央(佐賀県佐賀市) - dojo_id: 349