ci: switch to gitea.com action mirrors to bypass github.com network block #27

Merged
dailz merged 13 commits from ci-fix into master 2026-07-14 21:51:50 +08:00
13 Commits
Author SHA1 Message Date
dailz 027e7e02e0 ci: add missing libavdevice-dev (ffmpeg-sys-next requires it)
CI / Build + Clippy + Test (pull_request) Successful in 6m49s
CI / Security audit (RUSTSEC) (pull_request) Successful in 1m22s
CI progressed to cargo build for the first time, revealing that
libavdevice.pc was missing. The original yaml never installed
libavdevice-dev — this was never caught because CI always failed
at actions/checkout before reaching compilation.
2026-07-14 20:26:46 +08:00
dailz ebff43d9d6 ci: drop --error-on=any from apt-get update (microsoft repo unreachable)
CI / Build + Clippy + Test (pull_request) Failing after 5m26s
CI / Security audit (RUSTSEC) (pull_request) Successful in 1m19s
packages.microsoft.com fails through proxy after 5 retries. --error-on=any
causes the whole update to fail. Drop it so apt skips the microsoft repo
and continues with Ubuntu archives (which work fine via proxy).
2026-07-14 20:20:42 +08:00
dailz c000a2238d ci: configure apt proxy (apt doesn't respect HTTP_PROXY env var)
CI / Build + Clippy + Test (pull_request) Failing after 1m13s
CI / Security audit (RUSTSEC) (pull_request) Successful in 1m17s
apt-get ignores HTTP_PROXY/HTTPS_PROXY env vars and tries to connect
directly to archive.ubuntu.com. Clash DNS returns fake-ip (198.18.x.x)
which only works through TUN (disabled). Fix: write apt proxy config to
/etc/apt/apt.conf.d/99proxy before apt-get update.
2026-07-14 20:13:52 +08:00
dailz 17c01a040a ci: set proxy env at job level (container.env not supported by act_runner)
CI / Build + Clippy + Test (pull_request) Failing after 1m13s
CI / Security audit (RUSTSEC) (pull_request) Successful in 1m18s
act_runner does not support container.env in config.yaml — job containers
get NO proxy env vars. Set HTTP_PROXY/HTTPS_PROXY/NO_PROXY directly in
the workflow's job-level env block.

NO_PROXY includes gitea.com (actions checkout goes direct, faster) and
gitea.dailz.cn (self-hosted Gitea, internal).
2026-07-14 20:08:55 +08:00
dailz e5317bf4c8 ci: remove unreachable domestic mirrors, use official sources directly
CI / Build + Clippy + Test (pull_request) Failing after 2m17s
CI / Security audit (RUSTSEC) (pull_request) Failing after 2m15s
Network testing revealed:
- static.rust-lang.org: direct 200/0.24s (fast, no proxy needed)
- sh.rustup.rs: direct 200/0.11s (fast)
- gitea.com: direct 303/0.68s (fast)
- mirrors.ustc.edu.cn: UNREACHABLE (5s timeout)
- rsproxy.cn: UNREACHABLE (5s timeout)

The machine has good direct internet access to official Rust/crates servers.
Domestic mirrors are the ones that are blocked. Remove all mirror config and
use defaults.
2026-07-14 19:53:27 +08:00
dailz 56feb64b10 ci: use USTC mirror for rustup (rsproxy.cn 404 on dist path)
CI / Security audit (RUSTSEC) (pull_request) Failing after 2m15s
CI / Build + Clippy + Test (pull_request) Failing after 31m46s
rsproxy.cn/rustup returns 404 for /dist/x86_64-unknown-linux-gnu/
rustup-init — different path structure from static.rust-lang.org.
Switch to mirrors.ustc.edu.cn/rust-static which is a full mirror with
identical path structure.
2026-07-14 14:43:32 +08:00
dailz 3d00625518 ci: use rsproxy.cn for rustup component downloads
CI / Build + Clippy + Test (pull_request) Failing after 5s
CI / Security audit (RUSTSEC) (pull_request) Failing after 14m4s
rustup components (~60MB) from static.rust-lang.org are slow even
through proxy. Switch to rsproxy.cn/rustup mirror (domestic, direct
connection via NO_PROXY).
2026-07-14 14:39:40 +08:00
dailz 985c8f9cd2 ci: trigger rerun after config.yaml container.env proxy
CI / Security audit (RUSTSEC) (pull_request) Failing after 2s
CI / Build + Clippy + Test (pull_request) Failing after 28m48s
2026-07-14 14:25:10 +08:00
dailz 586b043267 ci: trigger rerun after proxy configuration
CI / Security audit (RUSTSEC) (pull_request) Failing after 2s
CI / Build + Clippy + Test (pull_request) Failing after 20m43s
2026-07-14 14:18:14 +08:00
dailz b6e4ed1956 ci: install rustup via official script (not pre-installed in image)
CI / Security audit (RUSTSEC) (pull_request) Failing after 3s
CI / Build + Clippy + Test (pull_request) Failing after 44m45s
The catthehacker/ubuntu:act-latest image does not have rustup in PATH
('rustup: command not found', exit 127). Replace the direct rustup
invocation with the official install script from sh.rustup.rs, which
installs rustup + the stable toolchain in one step.

Also adds ~/.cargo/bin to GITHUB_PATH so subsequent steps (cargo clippy,
cargo build, cargo test, cargo audit) can find cargo/rustc.
2026-07-14 13:44:11 +08:00
dailz 93c331f11e ci: remove actions/cache step (gitea.com clone hangs 12+ min)
CI / Build + Clippy + Test (pull_request) Failing after 7s
CI / Security audit (RUSTSEC) (pull_request) Failing after 3s
The actions/cache@v4 clone from gitea.com has been hanging for 12+
minutes in run 17. The actions/checkout clone took 2.5 min (slow but
completed), but actions/cache is stuck indefinitely.

Removing the cache step entirely. Trade-off: CI recompiles from scratch
each run (slower), but actually progresses past the action-clone phase.
Can re-add once gitea.com access is faster or actions are pre-cached
on the runner.
2026-07-14 13:38:48 +08:00
dailz cbe410534e ci: add rsproxy.cn cargo mirror for crates.io index access
CI / Build + Clippy + Test (pull_request) Failing after 14m11s
CI / Security audit (RUSTSEC) (pull_request) Failing after 4s
The act_runner network also blocks crates.io index access (both sparse
and git protocols). Previous workaround used git protocol to github.com,
which is also blocked. Replace with rsproxy.cn sparse mirror, accessible
from China networks.

Added to both build-test and audit jobs. Config is written to
~/.cargo/config.toml at runtime (CI-only; does not affect local dev).
2026-07-14 13:17:17 +08:00
dailz a20b2ad3c6 ci: switch to gitea.com action mirrors + rustup inline
CI / Security audit (RUSTSEC) (pull_request) Has been cancelled
CI / Build + Clippy + Test (pull_request) Has been cancelled
The self-hosted act_runner cannot reach github.com (network timeout
on actions/checkout clone). Replace:

- actions/checkout@v4 -> https://gitea.com/actions/checkout@v4 (3 sites)
- actions/cache@v4    -> https://gitea.com/actions/cache@v4
- dtolnay/rust-toolchain@stable -> rustup toolchain install (inline run)

gitea.com maintains official mirrors of the actions/* org. dtolnay's
rust-toolchain is third-party (no gitea.com mirror), so replaced with
a direct rustup invocation — the act_runner ubuntu image has rustup
pre-installed.

This unblocks CI which has been red since the original PR #26 was
opened 6 weeks ago. No code changes.
2026-07-14 13:10:21 +08:00