Files
skills/.gitea/workflows/sync-releases.yml
T

95 lines
2.8 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
name: 同步 skill Releases
on:
schedule:
- cron: "17 * * * *"
workflow_dispatch:
concurrency:
group: sync-skill-releases
cancel-in-progress: false
permissions:
contents: write
jobs:
sync:
runs-on: ubuntu-latest
steps:
- name: 检出分发仓
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0
persist-credentials: false
- name: 检查同步凭据
env:
SOURCE_REPOS_TOKEN: ${{ secrets.AGENT_SKILL_BOT }}
run: |
set -eu
test -n "$SOURCE_REPOS_TOKEN" || {
echo "缺少组织 Actions secret:AGENT_SKILL_BOT"
exit 1
}
- name: 同步 latest Releases
env:
GITEA_SERVER_URL: ${{ github.server_url }}
SOURCE_REPOS_TOKEN: ${{ secrets.AGENT_SKILL_BOT }}
run: python3 scripts/sync-releases.py
- name: 校验分发仓
run: |
set -eu
python3 scripts/validate-dist.py
NO_COLOR=1 npx --yes skills@1.5.22 add . --list | tee /tmp/skills-list.txt
python3 - <<'PY'
from pathlib import Path
expected = {
"baimiao-table-ocr",
"disk-master",
"everything-file-search",
"init-workspace",
"teach-me",
"think-twice",
"why-here",
}
output = Path("/tmp/skills-list.txt").read_text(encoding="utf-8")
lines = {line.strip(" │└├─") for line in output.splitlines()}
missing = sorted(expected - lines)
if missing:
raise SystemExit(f"skills CLI 未发现:{', '.join(missing)}")
print(f"skills CLI 已发现全部 {len(expected)} 个 skill")
PY
- name: 提交同步结果
env:
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
GITEA_SERVER_URL: ${{ github.server_url }}
run: |
set -eu
if git diff --quiet -- .dist-sync skills; then
echo "latest Releases 没有产生内容变化"
exit 0
fi
git config user.name "Agent Skills Bot"
git config user.email "agent-skills-bot@im0o.top"
git add .dist-sync skills
git commit -m "同步 latest skill releases"
auth=$(printf 'x-access-token:%s' "$GITEA_TOKEN" | base64 | tr -d '\n')
server_url=${GITEA_SERVER_URL%/}
git_auth() {
git -c "http.${server_url}/.extraheader=Authorization: Basic $auth" "$@"
}
git_auth fetch origin main
test "$(git rev-parse HEAD^)" = "$(git rev-parse origin/main)" || {
echo "origin/main 已前进,本次不自动变基或强制推送"
exit 1
}
git_auth push origin HEAD:main