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