Skip to content

Commit 259d489

Browse files
authored
Merge pull request #2 from BinHPdev/feature/weekly-update-cicd
Add weekly auto-update (self-hosted runner)
2 parents 246ee3d + da17262 commit 259d489

5 files changed

Lines changed: 247 additions & 0 deletions

File tree

.github/prompts/weekly-update.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Weekly Content Update Task
2+
3+
You are updating an "awesome list" of AI-driven automated model training tools.
4+
5+
## Your Goal
6+
7+
Search for NEW tools, frameworks, and projects related to algorithm automation and model training that have been released or significantly updated in the past 1-2 weeks. Update both `README.md` (English) and `算法自动化训练.md` (Chinese) with any new findings.
8+
9+
## Search Scope
10+
11+
Search across these categories (use WebSearch for each):
12+
13+
1. **Autonomous ML experiment / research frameworks** - new AI agent systems that run experiments autonomously
14+
2. **RL alignment training** (RLHF/GRPO/DPO) - new frameworks, algorithms, or significant updates
15+
3. **LLM fine-tuning frameworks** - new tools or major releases (Unsloth, Axolotl, LlamaFactory, etc.)
16+
4. **Synthetic data generation** - new tools for generating training data at scale
17+
5. **Inference engines** - new or updated engines relevant to RL training loops
18+
6. **Coding agents** - new open-source agents for writing training scripts
19+
7. **Model merging & quantization** - new compression techniques or tools
20+
8. **Multimodal training** - new vision-language or audio-language training frameworks
21+
9. **Evaluation & benchmarks** - new LLM/agent benchmarks
22+
10. **Experiment tracking & MLOps** - new tools or significant updates
23+
24+
## Quality Criteria
25+
26+
Only add tools that meet ALL of these:
27+
- **Directly usable** for automated model training workflows
28+
- **Open source** with active maintenance (prefer projects with 100+ GitHub stars or from reputable labs)
29+
- **Genuinely new** - not already listed in the existing files
30+
- **Significant** - not minor forks or trivial wrappers
31+
32+
## Update Process
33+
34+
1. Read both `README.md` and `算法自动化训练.md` to understand the current content
35+
2. Search for new developments using WebSearch (at least 6 targeted searches)
36+
3. For each new tool found, verify it meets quality criteria
37+
4. Add entries to BOTH files in the appropriate sections:
38+
- README.md: add table rows matching the existing format `| [Name](url) | Description | Key Highlight |`
39+
- 算法自动化训练.md: add detailed entries matching the existing format with GitHub link, description, key features, and use cases
40+
5. If you find new trends, update the Trends section in both files
41+
6. Update the date in both files to today's date
42+
7. If no significant new tools are found, create a file `.github/last-update-log.md` noting "No new tools found on [date]" and do NOT modify the main files
43+
44+
## Important Rules
45+
46+
- Do NOT remove or modify existing entries
47+
- Do NOT change the structure or formatting conventions
48+
- Maintain consistent numbering in the Chinese doc
49+
- Keep table column counts consistent in README.md
50+
- Write Chinese descriptions for 算法自动化训练.md, English for README.md
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
name: Weekly Content Update
2+
3+
on:
4+
schedule:
5+
# 每周五中午 12:00 北京时间 (UTC+8) = 04:00 UTC
6+
- cron: '0 4 * * 5'
7+
workflow_dispatch:
8+
# 支持手动触发
9+
10+
jobs:
11+
update:
12+
# 在本地 Mac 执行(复用 ClaudeNotice 的 self-hosted runner)
13+
runs-on: self-hosted
14+
permissions:
15+
contents: write
16+
17+
timeout-minutes: 30
18+
steps:
19+
- name: 检出代码
20+
uses: actions/checkout@v4
21+
with:
22+
token: ${{ secrets.GITHUB_TOKEN }}
23+
24+
- name: 拉取最新代码
25+
run: git pull origin main --rebase
26+
27+
- name: 检查 Claude CLI
28+
run: |
29+
command -v claude || { echo "❌ claude CLI not found"; exit 1; }
30+
echo "✅ Claude CLI ready"
31+
32+
- name: 运行 Claude Code 搜索更新
33+
timeout-minutes: 20
34+
run: |
35+
# 防止 Mac 休眠
36+
caffeinate -s -w $$ &
37+
38+
PROMPT="Today is $(date +%Y-%m-%d). $(cat .github/prompts/weekly-update.md)"
39+
echo "🔍 开始搜索最新算法自动化工具..."
40+
41+
claude -p "$PROMPT" \
42+
--max-turns 30 \
43+
--allowedTools "WebSearch,Read,Edit,Write,Glob,Grep,Bash(git diff*),Bash(git status*),Bash(wc *),Bash(date*)" \
44+
2>&1 | tee /tmp/awesome-algo-update.log
45+
46+
echo "✅ Claude 搜索完成"
47+
48+
- name: 提交并推送
49+
run: |
50+
git config user.name "AlgoTools Bot"
51+
git config user.email "bot@awesome-algo-tools.local"
52+
53+
# 暂存主文件
54+
git add README.md "算法自动化训练.md"
55+
56+
# 检查是否有实际变更
57+
if git diff --cached --quiet; then
58+
echo "📭 本周无新工具,跳过提交"
59+
exit 0
60+
fi
61+
62+
echo "📝 检测到变更:"
63+
git diff --cached --stat
64+
65+
git commit -m "chore: weekly update $(date +%Y-%m-%d)
66+
67+
Automated scan for new algorithm automation tools.
68+
69+
Co-Authored-By: Claude <noreply@anthropic.com>"
70+
71+
git push origin main
72+
echo "✅ 已推送到 main"

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Update script logs
2+
scripts/*.log
3+
scripts/last-run-*.log
4+
.github/last-update-log.md

CLAUDE.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Project: Awesome Algorithm Auto Tools
2+
3+
A curated "awesome list" of AI-driven automated model training tools and frameworks.
4+
5+
## Files
6+
7+
- `README.md` — English version, uses markdown tables (`| Project | Description | Key Highlight |`)
8+
- `算法自动化训练.md` — Chinese version, detailed report format with numbered sections (e.g., `### 4.10 ToolName ⭐⭐⭐⭐ 🆕`)
9+
10+
## Conventions
11+
12+
- Both files must stay in sync: any new tool added to one must be added to the other
13+
- README.md tables always have 3 columns
14+
- Chinese doc uses sequential numbering within each section (no gaps/duplicates)
15+
- New entries get a 🆕 tag in the Chinese doc
16+
- Star ratings in Chinese doc: ⭐⭐⭐ (useful) to ⭐⭐⭐⭐⭐ (essential)
17+
- Update the date at the top of both files when making changes
18+
- Chinese doc footer date must match header date
19+
20+
## Categories
21+
22+
1. Autonomous Experiment / Research Frameworks
23+
2. Agent-Driven Training Skills (HuggingFace Ecosystem)
24+
3. LLM Fine-Tuning Frameworks
25+
4. RL Alignment Training (RLHF / GRPO)
26+
5. Automated Hyperparameter Optimization / AutoML
27+
6. Self-Evolving / Self-Play Training
28+
7. Synthetic Data Generation & Curation
29+
8. Knowledge Distillation
30+
9. Model Merging & Quantization
31+
10. Lightweight Pretraining & Distributed Training
32+
11. Inference Engines (for RL Training Loops)
33+
12. Multimodal Training Frameworks
34+
13. Experiment Tracking & Orchestration
35+
14. Benchmarks & Evaluation
36+
15. Coding Agents
37+
38+
## Quality Criteria for Inclusion
39+
40+
- Must be directly usable for automated model training workflows
41+
- Prefer open-source projects with active maintenance
42+
- Focus on tools that leverage AI/LLMs to automate the training process

scripts/setup_runner.sh

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
#!/bin/bash
2+
# ============================================================
3+
# awesome-algorithm-auto-tools — 自托管 Runner 安装
4+
#
5+
# 如果你已经在 ClaudeNotice 项目配置过 self-hosted runner,
6+
# 有两种方式复用:
7+
#
8+
# 方式 A(推荐):组织级 Runner
9+
# 将已有 runner 改为组织级,所有仓库共享
10+
# GitHub → Settings → Actions → Runners → 移到 Organization
11+
#
12+
# 方式 B:为本仓库单独注册一个 Runner
13+
# 运行本脚本:./scripts/setup_runner.sh
14+
#
15+
# 使用前:
16+
# 1. 打开 https://github.com/BinHPdev/awesome-algorithm-auto-tools
17+
# 2. Settings → Actions → Runners → New self-hosted runner
18+
# 3. 复制 token,粘贴到下面
19+
# ============================================================
20+
21+
set -e
22+
23+
GITHUB_REPO="https://github.com/BinHPdev/awesome-algorithm-auto-tools"
24+
RUNNER_TOKEN="${1:-$RUNNER_TOKEN}"
25+
RUNNER_NAME="algo-tools-runner"
26+
27+
if [ -z "$RUNNER_TOKEN" ] || [ "$RUNNER_TOKEN" = "YOUR_RUNNER_TOKEN_FROM_GITHUB" ]; then
28+
echo "❌ 请提供 Runner Token:"
29+
echo " 用法: ./scripts/setup_runner.sh <YOUR_TOKEN>"
30+
echo " 或: RUNNER_TOKEN=xxx ./scripts/setup_runner.sh"
31+
exit 1
32+
fi
33+
RUNNER_DIR="$HOME/actions-runner-algo"
34+
35+
echo "======================================"
36+
echo " Awesome Algorithm Auto Tools Runner"
37+
echo "======================================"
38+
39+
command -v claude >/dev/null || { echo "❌ 需要安装 Claude Code"; exit 1; }
40+
command -v git >/dev/null || { echo "❌ 需要安装 git"; exit 1; }
41+
42+
mkdir -p "$RUNNER_DIR"
43+
cd "$RUNNER_DIR"
44+
45+
RUNNER_VERSION=$(curl -s https://api.github.com/repos/actions/runner/releases/latest | grep '"tag_name"' | sed 's/.*"v\([^"]*\)".*/\1/')
46+
ARCH=$(uname -m)
47+
if [ "$ARCH" = "x86_64" ]; then
48+
PKG="actions-runner-osx-x64-${RUNNER_VERSION}.tar.gz"
49+
else
50+
PKG="actions-runner-osx-arm64-${RUNNER_VERSION}.tar.gz"
51+
fi
52+
53+
if [ ! -f "run.sh" ]; then
54+
echo "📦 下载 Runner v${RUNNER_VERSION}..."
55+
curl -sOL "https://github.com/actions/runner/releases/download/v${RUNNER_VERSION}/${PKG}"
56+
tar xzf "$PKG"
57+
rm "$PKG"
58+
fi
59+
60+
echo "⚙️ 配置..."
61+
./config.sh \
62+
--url "$GITHUB_REPO" \
63+
--token "$RUNNER_TOKEN" \
64+
--name "$RUNNER_NAME" \
65+
--labels "self-hosted,macos" \
66+
--work "_work" \
67+
--unattended \
68+
--replace
69+
70+
echo "🚀 安装为系统服务..."
71+
./svc.sh install
72+
./svc.sh start
73+
74+
echo ""
75+
echo "======================================"
76+
echo " ✅ Runner 安装完成!"
77+
echo " 状态: cd $RUNNER_DIR && ./svc.sh status"
78+
echo " 每周五中午会自动运行更新"
79+
echo "======================================"

0 commit comments

Comments
 (0)