mirror of
https://github.com/therealaleph/MasterHttpRelayVPN-RUST.git
synced 2026-05-18 05:44:35 +03:00
v1.2.6: rust-cache bin pruning fix + PR #83 scan-sni
v1.2.4 and v1.2.5 both cut clean tags but CI failed downstream for different self-hosted reasons: - v1.2.4 failed on parallel apt-lock race (fixed) - v1.2.5 failed with "TOML parse error at line 5 column 9" because rust-cache v2's default cache-bin=true prunes $CARGO_HOME/bin of any binary not installed via `cargo install`. `rustup` itself is installed by rustup-init, not cargo install, so it got flagged as "unknown" and deleted on cache save. Next job hits the cargo symlink that points at a missing rustup, which resolves somehow to a very old cargo that can't parse our Cargo.toml. Fix: - Set `cache-bin: "false"` on every Swatinem/rust-cache@v2 call. We still cache target/ + registry (the big win), just not bin/. Binaries are stable across runs on our self-hosted box anyway. - Reinstalled rustup inside each per-runner CARGO_HOME on the server to recover from the broken state. Also in this release: - PR #83: new `mhrv-rs scan-sni` subcommand. Pulls Google's published IP ranges, does PTR lookups via dns.google on each IP, filters to Google-related hostnames, then TLS-probes each discovered SNI against the configured google_ip to see which ones bypass DPI. Useful for rebuilding a working SNI pool on a new ISP. Adds the `url` crate dep. Same user-facing code as v1.2.4/v1.2.5 (PRs #78, #79, README Android note) plus PR #83 and the CI fixes on top.
This commit is contained in:
@@ -106,10 +106,19 @@ jobs:
|
||||
# `git clean -ffdx` wipes target/ between runs and every build is
|
||||
# cold. With it, warm builds are sub-minute even for the full
|
||||
# release profile.
|
||||
#
|
||||
# cache-bin: false is MANDATORY on our self-hosted runners. With
|
||||
# the default (true), rust-cache aggressively prunes $CARGO_HOME/bin
|
||||
# of binaries it didn't install via `cargo install`, including the
|
||||
# `rustup` binary that cargo/rustc/etc. are symlinked to. The next
|
||||
# job then hits "command not found" or a broken-symlink TOML parse
|
||||
# error from a stale cargo. We want target/ + registry caching, NOT
|
||||
# bin pruning. rustup is pre-installed on the runners anyway.
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
if: matrix.mipsel_softfloat != true
|
||||
with:
|
||||
key: ${{ matrix.target }}
|
||||
cache-bin: "false"
|
||||
|
||||
# eframe needs a few system libs on Linux for window management, keyboard,
|
||||
# and OpenGL/X11/Wayland. Gated to GitHub-hosted runners only — the
|
||||
@@ -343,9 +352,14 @@ jobs:
|
||||
# Cache cargo + target/ across Android release builds. Four cargo-ndk
|
||||
# release builds back-to-back with LTO is where the cold cost comes
|
||||
# from; rust-cache brings warm runs down to ~3–4 min from ~9 min cold.
|
||||
# cache-bin: false — see the rationale on the matrix build job above.
|
||||
# On top of that, `cargo-ndk` lives in /usr/local/bin/ on our runners
|
||||
# (not $CARGO_HOME/bin), specifically so rust-cache's default bin
|
||||
# pruning can't delete it.
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
key: android-universal
|
||||
cache-bin: "false"
|
||||
# cargo-ndk writes into `target/<android-triple>/release/`, all
|
||||
# four of which we want to cache.
|
||||
workspaces: |
|
||||
|
||||
Reference in New Issue
Block a user