Skip to content

Weekly Model Regeneration #68

Weekly Model Regeneration

Weekly Model Regeneration #68

# Copyright 2025 Marc-Antoine Ruel. All rights reserved.
# Use of this source code is governed under the Apache License, Version 2.0
# that can be found in the LICENSE file.
# Weekly model regeneration workflow.
name: Weekly Model Regeneration
on:
schedule:
# Run every Sunday at 00:00 UTC
- cron: "0 0 * * 0"
workflow_dispatch:
jobs:
regenerate-models:
runs-on: ubuntu-latest
permissions:
actions: write
contents: write
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: stable
- name: Run model regeneration script
id: regen
env:
# Set at https://github.com/maruel/genai/settings/secrets/actions
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
BASETEN_API_KEY: ${{ secrets.BASETEN_API_KEY }}
BFL_API_KEY: ${{ secrets.BFL_API_KEY }}
CEREBRAS_API_KEY: ${{ secrets.CEREBRAS_API_KEY }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
CLOUDFLARE_API_KEY: ${{ secrets.CLOUDFLARE_API_KEY }}
COHERE_API_KEY: ${{ secrets.COHERE_API_KEY }}
DASHSCOPE_API_KEY_US: ${{ secrets.DASHSCOPE_API_KEY_US }}
DASHSCOPE_API_KEY_INTL: ${{ secrets.DASHSCOPE_API_KEY_INTL }}
DEEPSEEK_API_KEY: ${{ secrets.DEEPSEEK_API_KEY }}
GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
GROK_API_KEY: ${{ secrets.GROK_API_KEY }}
GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }}
HUGGINGFACE_API_KEY: ${{ secrets.HUGGINGFACE_API_KEY }}
MIMO_API_KEY: ${{ secrets.MIMO_API_KEY }}
MISTRAL_API_KEY: ${{ secrets.MISTRAL_API_KEY }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
PERPLEXITY_API_KEY: ${{ secrets.PERPLEXITY_API_KEY }}
POLLINATIONS_API_KEY: ${{ secrets.POLLINATIONS_API_KEY }}
TOGETHER_API_KEY: ${{ secrets.TOGETHER_API_KEY }}
run: |
./internal/regen_weekly.sh
- name: Create auto-fix PR with pi.dev
if: failure() && steps.regen.outcome == 'failure'
env:
# Set at https://github.com/maruel/genai/settings/secrets/actions
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
BASETEN_API_KEY: ${{ secrets.BASETEN_API_KEY }}
BFL_API_KEY: ${{ secrets.BFL_API_KEY }}
CEREBRAS_API_KEY: ${{ secrets.CEREBRAS_API_KEY }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
CLOUDFLARE_API_KEY: ${{ secrets.CLOUDFLARE_API_KEY }}
COHERE_API_KEY: ${{ secrets.COHERE_API_KEY }}
DASHSCOPE_API_KEY_US: ${{ secrets.DASHSCOPE_API_KEY_US }}
DASHSCOPE_API_KEY_INTL: ${{ secrets.DASHSCOPE_API_KEY_INTL }}
DEEPSEEK_API_KEY: ${{ secrets.DEEPSEEK_API_KEY }}
GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
GH_TOKEN: ${{ github.token }}
GROK_API_KEY: ${{ secrets.GROK_API_KEY }}
GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }}
HUGGINGFACE_API_KEY: ${{ secrets.HUGGINGFACE_API_KEY }}
MIMO_API_KEY: ${{ secrets.MIMO_API_KEY }}
MISTRAL_API_KEY: ${{ secrets.MISTRAL_API_KEY }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
PERPLEXITY_API_KEY: ${{ secrets.PERPLEXITY_API_KEY }}
PI_TELEMETRY: "0"
POLLINATIONS_API_KEY: ${{ secrets.POLLINATIONS_API_KEY }}
TOGETHER_API_KEY: ${{ secrets.TOGETHER_API_KEY }}
run: |
# The failed regeneration may delete stale recordings before exiting.
# md -apply-patch requires a clean host checkout to integrate the agent's commit.
git reset --hard HEAD
git clean -fd
branch="automation/pi-weekly-regen-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}"
base="${GITHUB_REF_NAME:-main}"
git config user.name 'github-actions[bot]'
git config user.email '41898282+github-actions[bot]@users.noreply.github.com'
git config "branch.${branch}.gh-merge-base" "${base}"
git switch -c "${branch}"
git push --set-upstream origin "${branch}"
go install github.com/caic-xyz/md/cmd/md@latest
go run ./internal/cmd/autofix-weekly-regen -push
gh workflow run test.yml --ref "${branch}"
- name: Check for changes
id: git-check
run: |
if [[ -n $(git status -s) ]]; then
echo "changes=true" >> "$GITHUB_OUTPUT"
fi
- name: Commit and push changes
if: steps.git-check.outputs.changes == 'true'
run: |
git config --global user.name 'github-actions'
git config --global user.email 'github-actions@github.com'
git add docs/
git commit -m "ci: update model list on $(date +'%Y-%m-%d')"
git push origin HEAD:main