10 个平台的 web 端全部用 TypeScript 移植自 cv-cat 的开源项目,请求与上游逐字节对拍。 统一的命令语法与 JSON 输出、按 平台 × 端 × 账号 隔离的登录态、给 AI Agent 用的技能与 llms.txt。
44 lines
1.8 KiB
YAML
44 lines
1.8 KiB
YAML
name: docker
|
|
|
|
# 构建 Docker 镜像并在镜像里跑 catbus version / doctor,确认镜像能用。只构建、不推送到任何镜像仓库。
|
|
on:
|
|
push:
|
|
branches: [master]
|
|
paths: ['Dockerfile', '.dockerignore', 'compose.yaml', 'package.json', 'package-lock.json', 'packages/**', 'scripts/**', 'src/**', 'static/**', '.github/workflows/docker.yml']
|
|
pull_request:
|
|
paths: ['Dockerfile', '.dockerignore', 'compose.yaml', 'package.json', 'package-lock.json', 'packages/**', 'scripts/**', 'src/**', 'static/**', '.github/workflows/docker.yml']
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
build:
|
|
name: build (${{ matrix.runner }})
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
runner: [ubuntu-latest, ubuntu-24.04-arm]
|
|
runs-on: ${{ matrix.runner }}
|
|
steps:
|
|
- uses: actions/checkout@v7
|
|
- name: build
|
|
run: docker build -t catbus:ci .
|
|
- name: version / doctor
|
|
run: |
|
|
docker run --rm catbus:ci version
|
|
docker run --rm catbus:ci doctor
|
|
- name: 登录态写进卷
|
|
run: |
|
|
docker volume create catbus-ci
|
|
docker run --rm -v catbus-ci:/data catbus:ci config set timeout 45
|
|
docker run --rm -v catbus-ci:/data catbus:ci config get timeout | grep -q '"data":45'
|
|
- name: 以当前用户运行,登录态放在挂进来的目录(Linux 上文件归自己所有)
|
|
run: |
|
|
mkdir -m 700 data work
|
|
docker run --rm --user "$(id -u):$(id -g)" -v "$PWD/data:/data" -v "$PWD/work:/work" catbus:ci doctor
|
|
docker run --rm --user "$(id -u):$(id -g)" -v "$PWD/data:/data" catbus:ci config set timeout 45
|
|
test "$(stat -c %u data/config.toml)" = "$(id -u)"
|
|
- name: compose 配置
|
|
run: docker compose config --quiet
|