Weekly Model Regeneration #66
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # 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 | |
| models: read | |
| 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 }} | |
| GITHUB_TOKEN: ${{ secrets.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 }} | |
| 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 }} | |
| GITHUB_TOKEN: ${{ secrets.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 |