diff --git a/.github/workflows/ci.yml b/.github/workflows/ci-linux.yml similarity index 91% rename from .github/workflows/ci.yml rename to .github/workflows/ci-linux.yml index c98c7f3..36bd0b6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci-linux.yml @@ -1,9 +1,11 @@ -name: ci +name: ci-linux -# Self-host CI: mcpp builds mcpp. The bootstrap mcpp comes from -# `xlings install mcpp` (xim:mcpp in the xlings package index), so -# this workflow no longer depends on a previous-release tarball — the +# Self-host CI on Linux: mcpp builds mcpp. The bootstrap mcpp comes from +# `xlings install mcpp` (xim:mcpp in the xlings package index), so this +# workflow no longer depends on a previous-release tarball — the # chicken-and-egg now lives upstream in the xlings index. +# +# Paired workflows: ci-macos.yml, ci-windows.yml. on: push: @@ -104,6 +106,12 @@ jobs: "$MCPP_FRESH" test - name: E2E suite + # Step-level guard: a single hung test (historically 10_env_command.sh + # on slow xlings/network) used to eat the full 60-min job budget. + # Cap the suite at 25 min so a hang fails fast and we still have room + # for the downstream toolchain steps. Per-test 600s timeout lives in + # tests/e2e/run_all.sh and identifies WHICH test hung. + timeout-minutes: 25 run: | # Point the e2e runner at the freshly-built binary, not the # bootstrap one. Tests cd into mktemp -d, so $MCPP must be diff --git a/.github/workflows/ci-macos.yml b/.github/workflows/ci-macos.yml index 116f154..00427ee 100644 --- a/.github/workflows/ci-macos.yml +++ b/.github/workflows/ci-macos.yml @@ -292,6 +292,9 @@ jobs: "$MCPP" test - name: E2E suite + # See ci-linux.yml — fail-fast on hung tests instead of burning the + # whole job budget. Per-test 600s timeout lives in run_all.sh. + timeout-minutes: 25 run: | MCPP=$(find target -path "*/bin/mcpp" | head -1) MCPP=$(cd "$(dirname "$MCPP")" && pwd)/$(basename "$MCPP") diff --git a/.github/workflows/ci-windows.yml b/.github/workflows/ci-windows.yml index c74b862..4796bb1 100644 --- a/.github/workflows/ci-windows.yml +++ b/.github/workflows/ci-windows.yml @@ -1,6 +1,6 @@ name: ci-windows -# Windows CI for mcpp — same flow as Linux (ci.yml) and macOS (ci-macos.yml): +# Windows CI for mcpp — same flow as Linux (ci-linux.yml) and macOS (ci-macos.yml): # xlings install mcpp → self-host build → E2E → smoke → package on: @@ -178,6 +178,9 @@ jobs: - name: E2E suite shell: bash + # See ci-linux.yml — fail-fast on hung tests instead of burning the + # whole job budget. Per-test 600s timeout lives in run_all.sh. + timeout-minutes: 25 run: | export MCPP="$MCPP_SELF" export MCPP_VENDORED_XLINGS="$XLINGS_BIN" diff --git a/README.md b/README.md index 367c1d4..20f9ce1 100644 --- a/README.md +++ b/README.md @@ -4,10 +4,14 @@ [](https://github.com/mcpp-community/mcpp/releases) [](https://en.cppreference.com/w/cpp/23) -[]() [](https://en.cppreference.com/w/cpp/language/modules) [](LICENSE) +| [文档](docs/) · [快速开始](docs/00-getting-started.md) · [mcpp.toml 指南](docs/05-mcpp-toml.md) · [示例项目](docs/01-examples.md) · [工具链管理](docs/03-toolchains.md) | +|:---:| +| [包索引 mcpp-index](https://github.com/mcpp-community/mcpp-index) · [模块化库 mcpplibs](https://github.com/mcpplibs) · [社区论坛](https://forum.d2learn.org/category/20) · [Issues](https://github.com/mcpp-community/mcpp/issues) · [Releases](https://github.com/mcpp-community/mcpp/releases) | +| [](https://github.com/mcpp-community/mcpp/actions/workflows/ci-linux.yml) [](https://github.com/mcpp-community/mcpp/actions/workflows/ci-macos.yml) [](https://github.com/mcpp-community/mcpp/actions/workflows/ci-windows.yml) | +