Files
Test_runner/README.md
T
2026-07-20 12:16:04 +08:00

64 lines
3.3 KiB
Markdown
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.
# Test_runner
Gitea Actions 自托管 runner 的测试仓库,同时作为其他仓库编写 workflow 的参考。
- 实例:https://gitea.docker.antior.cn/
- 参考 workflow[.gitea/workflows/build.yaml](.gitea/workflows/build.yaml)push 到 main → esbuild 编译 → 打包 → 创建 Release 并上传产物)
- runner 环境说明与人工部署手顺:[docs/add-runner.md](docs/add-runner.md)
## 给其他电脑 Agent 的 Prompt(复制即用)
```text
我的 Gitea 实例:https://gitea.docker.antior.cn/
仓库已有一台在线的自托管 runner,请为本仓库编写 Gitea Actions workflow
实现:push 到 main 分支时自动编译/构建,并创建 Release、上传构建产物。
【runner 环境约束 —— workflow 必须遵守】
- runner 是 Windows 11 x64 宿主机模式(非 Docker),labelswindows-latest / windows / windows-amd64
→ runs-on 必须用 windows-latest
- 已安装工具链:
- Node.js v22 + npm 10node/npm 直接在 PATH
- Python 3.10 / 3.11 / 3.12 / 3.13 / 3.14,通过 py launcher 调用(py -3.12 等,py 默认为 3.14
→ workflow 里必须用 py -X.Y 显式指定版本,不要只写 pythonPATH 中的 python 是 3.12,可能与预期不符)
- PowerShell 7 (pwsh)、git、curl
- 没有:gcc/make/go/rust/docker。不要引用依赖这些工具的步骤
- workflow 文件放在 .gitea/workflows/ 目录(不是 .github/
- 默认 shell 是 PowerShell,写 run 步骤时用 PowerShell 语法,
或显式声明 shell: pwsh;不要写 bash 语法
- 路径用 Windows 规则;产物打包用 Compress-Archive
- actions/checkout@v4 等 GitHub 官方 action 可用(runner 可访问 github.com 和 npm/pypi registry
【Release 发布方式】
用 Gitea API 发布,token 用自动注入的 ${{ secrets.GITHUB_TOKEN }}
API 地址用 ${{ gitea.server_url }}/api/v1。参考步骤(shell: pwsh):
- name: Create Gitea release with artifact
shell: pwsh
env:
GITEA_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
$repo = "${{ github.repository }}"
$tag = "v0.1.${{ github.run_number }}"
$server = "${{ gitea.server_url }}"
$headers = @{ Authorization = "token $env:GITEA_TOKEN" }
$body = @{
tag_name = $tag; name = "Build $tag"
target_commitish = "${{ github.sha }}"
draft = $false; prerelease = $true
} | ConvertTo-Json
$release = Invoke-RestMethod -Method Post -Uri "$server/api/v1/repos/$repo/releases" `
-Headers $headers -Body $body -ContentType "application/json"
Invoke-RestMethod -Method Post `
-Uri "$server/api/v1/repos/$repo/releases/$($release.id)/assets?name=<产物文件名>" `
-Headers $headers -Form @{ attachment = Get-Item "<产物文件路径>" }
tag 命名建议带 ${{ github.run_number }} 保证唯一,避免重复 tag 导致发布失败。
也可以直接参考本实例上 antior/Test_runner 仓库的 .gitea/workflows/build.yaml。
【本仓库信息】
- 项目类型:<比如 Node / Python / 纯静态文件>
- 构建命令:<比如 npm ci && npm run build,或 py -3.12 -m PyInstaller ...>
- 产物位置:<比如 dist/ 目录>
请生成 workflow 并提交 push,然后确认 Actions 运行成功、Release 已创建。
```