From 0081deae96aea731bc5892d764ccae0d5266fc87 Mon Sep 17 00:00:00 2001 From: Mason Daugherty Date: Fri, 20 Feb 2026 00:43:09 -0500 Subject: [PATCH] feat(infra): schedule daily model profile refresh with job summary (#35354) - Schedules the `refresh_model_profiles` workflow to run daily at 08:00 UTC (manual trigger available). - Adds a job summary step that reports whether a PR was created/updated or skipped because profiles were already up to date. - Each run supersedes any stale PR from a previous run since the action force-pushes to a fixed branch (`bot/refresh-model-profiles`). --- .github/workflows/refresh_model_profiles.yml | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/.github/workflows/refresh_model_profiles.yml b/.github/workflows/refresh_model_profiles.yml index 5cfe866a55a..5969da9d271 100644 --- a/.github/workflows/refresh_model_profiles.yml +++ b/.github/workflows/refresh_model_profiles.yml @@ -1,11 +1,15 @@ # Refreshes model profile data for all in-monorepo partner integrations by # pulling the latest metadata from models.dev via the `langchain-profiles` CLI. # -# Creates a pull request with any changes. Triggered manually from the Actions UI. +# Creates a pull request with any changes. Runs daily and can be triggered +# manually from the Actions UI. Uses a fixed branch so each run supersedes +# any stale PR from a previous run. name: "🔄 Refresh Model Profiles" on: + schedule: + - cron: "0 8 * * *" # daily at 08:00 UTC workflow_dispatch: permissions: @@ -63,7 +67,8 @@ jobs: private-key: ${{ secrets.MODEL_PROFILE_BOT_PRIVATE_KEY }} - name: "🔀 Create pull request" - uses: peter-evans/create-pull-request@v7 + id: create-pr + uses: peter-evans/create-pull-request@v8 with: token: ${{ steps.app-token.outputs.token }} branch: bot/refresh-model-profiles @@ -74,4 +79,15 @@ jobs: integrations via `langchain-profiles refresh`. 🤖 Generated by the `refresh_model_profiles` workflow. + labels: bot add-paths: libs/partners/**/data/_profiles.py + + - name: "📝 Summary" + run: | + op="${{ steps.create-pr.outputs.pull-request-operation }}" + url="${{ steps.create-pr.outputs.pull-request-url }}" + if [ "$op" = "created" ] || [ "$op" = "updated" ]; then + echo "### ✅ PR ${op}: ${url}" >> "$GITHUB_STEP_SUMMARY" + else + echo "### ⏭️ Skipped: profiles already up to date" >> "$GITHUB_STEP_SUMMARY" + fi