Skip to content

docs: add Android Bench architecture design analysis #11

docs: add Android Bench architecture design analysis

docs: add Android Bench architecture design analysis #11

Workflow file for this run

name: Sync Wiki
on:
push:
branches:
- main
paths:
- 'docs/learns/**/*.md'
- 'docs/best-choices/**/*.md'
workflow_dispatch:
permissions:
contents: write
jobs:
sync-wiki:
runs-on: ubuntu-latest
steps:
- name: Checkout main repo
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Checkout wiki
uses: actions/checkout@v4
with:
repository: ${{ github.repository }}.wiki
path: wiki
token: ${{ secrets.GITHUB_TOKEN }}
- name: Clean wiki
run: |
# Remove old tag pages and directories
rm -rf wiki/tags
rm -f wiki/Tags.md
# Clean learns and best-choices for fresh sync
rm -rf wiki/learns
rm -rf wiki/best-choices
- name: Sync docs to wiki
run: |
# Create directories
mkdir -p wiki/learns
# Sync learns with directory structure preserved
if [ -d "docs/learns" ]; then
find docs/learns -name "*.md" -type f ! -name "README.md" | while read file; do
# Get relative path from docs/learns
rel_path="${file#docs/learns/}"
target_file="wiki/learns/$rel_path"
target_dir=$(dirname "$target_file")
# Create directory and copy file
mkdir -p "$target_dir"
cp "$file" "$target_file"
done
fi
# Create best-choices directory
mkdir -p wiki/best-choices
# Sync best-choices
if [ -d "docs/best-choices" ]; then
find docs/best-choices -maxdepth 1 -name "*.md" -type f ! -name "README.md" | while read file; do
cp "$file" "wiki/best-choices/"
done
fi
- name: Generate Home page
run: |
cat > wiki/Home.md << EOF
# Agent Group 知识库 Wiki
欢迎访问 Agent Group Wiki!本 Wiki 自动同步自 [主仓库](${{ github.server_url }}/${{ github.repository }})。
## 学习笔记
EOF
# 递归生成学习笔记目录树
process_home_tree() {
local dir="$1"
local level="$2"
local base_path="$3"
find "$dir" -mindepth 1 -maxdepth 1 -type d | sort | while read subdir; do
local dirname=$(basename "$subdir")
# 检查是否有非 README 的 md 文件(递归检查)
local has_content=$(find "$subdir" -name "*.md" ! -name "README.md" -type f | head -1)
if [ -n "$has_content" ]; then
# 生成标题前缀 (# 数量根据层级)
local heading=""
local i=0
while [ $i -lt $level ]; do
heading="${heading}#"
i=$((i + 1))
done
heading="${heading}###"
echo "" >> wiki/Home.md
echo "${heading} ${dirname}" >> wiki/Home.md
echo "" >> wiki/Home.md
# 当前目录下的 md 文件
find "$subdir" -maxdepth 1 -name "*.md" ! -name "README.md" -type f | sort | while read file; do
local filename=$(basename "$file")
local name="${filename%.md}"
local rel_path="${base_path}${dirname}/${name}"
echo "- [${name}](./learns/${rel_path})" >> wiki/Home.md
done
# 递归处理子目录
process_home_tree "$subdir" $((level + 1)) "${base_path}${dirname}/"
fi
done
}
if [ -d "docs/learns" ]; then
process_home_tree "docs/learns" 0 ""
fi
cat >> wiki/Home.md << 'EOF'
## 最佳实践
EOF
if [ -d "docs/best-choices" ]; then
find docs/best-choices -maxdepth 1 -name "*.md" ! -name "README.md" -type f | sort | while read file; do
filename=$(basename "$file")
name="${filename%.md}"
echo "- [${name}](./best-choices/${name})" >> wiki/Home.md
done
fi
echo "" >> wiki/Home.md
echo "---" >> wiki/Home.md
echo "*最后同步:$(date -u '+%Y-%m-%d %H:%M:%S UTC')*" >> wiki/Home.md
- name: Generate Sidebar
run: |
cat > wiki/_Sidebar.md << 'EOF'
## 导航
**[首页](./Home)**
### 学习笔记
EOF
# 递归处理 learns 目录
process_sidebar_tree() {
local dir="$1"
local indent="$2"
local base_path="$3"
find "$dir" -mindepth 1 -maxdepth 1 -type d | sort | while read subdir; do
local dirname=$(basename "$subdir")
# 检查是否有非 README 的 md 文件
local has_content=$(find "$subdir" -name "*.md" ! -name "README.md" -type f | head -1)
if [ -n "$has_content" ]; then
# 目录标题
echo "${indent}**${dirname}**" >> wiki/_Sidebar.md
# 当前目录下的 md 文件
find "$subdir" -maxdepth 1 -name "*.md" ! -name "README.md" -type f | sort | while read file; do
local filename=$(basename "$file")
local name="${filename%.md}"
local rel_path="${base_path}${dirname}/${name}"
echo "${indent}- [${name}](./learns/${rel_path})" >> wiki/_Sidebar.md
done
# 递归处理子目录(增加缩进)
process_sidebar_tree "$subdir" "${indent} " "${base_path}${dirname}/"
fi
done
}
if [ -d "docs/learns" ]; then
process_sidebar_tree "docs/learns" "" ""
fi
cat >> wiki/_Sidebar.md << 'EOF'
### 最佳实践
EOF
if [ -d "docs/best-choices" ]; then
find docs/best-choices -maxdepth 1 -name "*.md" ! -name "README.md" -type f | sort | while read file; do
filename=$(basename "$file")
name="${filename%.md}"
echo "- [${name}](./best-choices/${name})" >> wiki/_Sidebar.md
done
fi
- name: Commit and push wiki
run: |
cd wiki
git config user.name 'github-actions[bot]'
git config user.email 'github-actions[bot]@users.noreply.github.com'
git add -A
git diff --quiet && git diff --staged --quiet || git commit -m "Sync from main repo: $(date -u '+%Y-%m-%d %H:%M')"
git push origin master || git push origin main