AnyBot/.gitea/workflows/ci.yml

43 lines
1.5 KiB
YAML

# Every push and pull request: build, test, clippy (report only — the tree is not rustfmt'
# clean, so `cargo fmt --check` would need its own one-time reformatting change first). Release builds are release.yml's job.
#
# Runners (see deploy/ci/README.md):
# anybot-linux a Linux computer with Docker; jobs run in anybot-builder:22.04
#
# The nightly `cargo check` keeps the window honest between releases; the computer-use
# bench (bench/computer-use) is NOT here on purpose: it needs a real test box (a Lima VM
# with gVisor, its own volume and image — see its README "怎麼跑"), and it must never run
# against a real box. Run it by hand per release, before tagging, and record the numbers
# in bench/computer-use/README.md.
name: CI
on:
pull_request:
push:
branches: [main]
env:
CARGO_TARGET_DIR: /ci-target
jobs:
check:
runs-on: anybot-linux
steps:
- uses: actions/checkout@v4
- name: Build
run: cargo build --bin anybot
- name: Test
run: cargo test --bin anybot -- --skip live 2>&1 | tail -5
- name: Clippy (report only)
run: cargo clippy --bin anybot 2>&1 | tail -30
- name: Relay build and test
run: cd relay && cargo test
windows-check:
# C9: the Windows engine is real code now; where a Windows runner exists, it must compile.
# Report-only until the release ships Windows binaries.
runs-on: windows
continue-on-error: true
steps:
- uses: actions/checkout@v4
- run: cargo check --bin anybot