diff --git a/.gitea/workflows/backend-quality-gate.yml b/.gitea/workflows/backend-quality-gate.yml index 387e8f44..35383cd7 100644 --- a/.gitea/workflows/backend-quality-gate.yml +++ b/.gitea/workflows/backend-quality-gate.yml @@ -59,9 +59,12 @@ jobs: packages+=(python3-venv) fi rm -rf "$venv_probe" - if ! python3 -c 'import pathlib, sysconfig; assert pathlib.Path(sysconfig.get_path("include"), "Python.h").is_file()'; then + if ! python3 -c 'import pathlib, sysconfig; assert pathlib.Path(sysconfig.get_path("include"), "Python.h").is_file()' >/dev/null 2>&1; then packages+=(python3-dev) fi + if ! command -v g++ >/dev/null 2>&1; then + packages+=(g++) + fi if [ "${#packages[@]}" -gt 0 ]; then apt-get -o Acquire::Retries=3 -o Acquire::http::Timeout=30 \ -o Acquire::https::Timeout=30 update diff --git a/frontend/tests/staging-backend-workflows.test.ts b/frontend/tests/staging-backend-workflows.test.ts index 94987121..b9a82cd3 100644 --- a/frontend/tests/staging-backend-workflows.test.ts +++ b/frontend/tests/staging-backend-workflows.test.ts @@ -146,6 +146,7 @@ test("Gitea quality gate validates before publishing an immutable ACR manifest", assert.match(workflow, /python3 -m venv "\$venv_probe\/venv"/); assert.match(workflow, /packages\+=\(python3-venv\)/); assert.match(workflow, /sysconfig\.get_path\("include"\)[\s\S]*packages\+=\(python3-dev\)/); + assert.match(workflow, /command -v g\+\+[\s\S]*packages\+=\(g\+\+\)/); assert.match(workflow, /apt-get install -y --no-install-recommends[\s\S]*"\$\{packages\[@\]\}"/); assert.doesNotMatch(workflow, /packages\+=\((?:nodejs|npm)\)|apt-get install[^\n]*(?:nodejs|npm)/); assert.equal((workflow.match(/NODE_TOOL_SOURCE_IMAGE: swr\.cn-north-4\.myhuaweicloud\.com\/ddn-k8s\/docker\.io\/library\/node:22-bookworm-slim@sha256:ef343465b6a14bbdf2ab52f6e100ec0659a792464fcf72c462370d88b3df909c/g) ?? []).length, 2);