Install missing CI toolchain packages
Staging Backend Quality Gate / validate (pull_request) Failing after 14m23s
Staging Backend Quality Gate / publish (pull_request) Has been skipped

This commit is contained in:
Jesse_Chen
2026-08-05 13:26:05 +08:00
parent ef0f01f193
commit aa958758b7
2 changed files with 19 additions and 13 deletions
+13 -11
View File
@@ -47,24 +47,26 @@ jobs:
test "$(git rev-parse HEAD)" = "$GITEA_SHA"
test -z "$(git status --porcelain --untracked-files=all)"
- name: Verify Linux runner toolchain
- name: Install and verify Linux runner toolchain
run: |
set -euo pipefail
packages=()
command -v node >/dev/null || packages+=(nodejs)
command -v npm >/dev/null || packages+=(npm)
if ! docker compose version --short 2>/dev/null | grep -Eq '^v?2\.'; then
packages+=(docker-compose-v2)
fi
if ((${#packages[@]})); then
apt-get -o Acquire::Retries=3 -o Acquire::http::Timeout=30 \
-o Acquire::https::Timeout=30 update
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
"${packages[@]}"
fi
python3 --version
node --version
npm --version
curl --version
docker version
- name: Install and verify Docker Compose v2
run: |
set -euo pipefail
if ! docker compose version --short 2>/dev/null | grep -Eq '^v?2\.'; then
apt-get -o Acquire::Retries=3 -o Acquire::http::Timeout=30 \
-o Acquire::https::Timeout=30 update
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
docker-compose-v2
fi
docker compose version
docker compose version --short | grep -Eq '^v?2\.'
docker compose --help | grep -q -- '--project-name'
@@ -131,8 +131,12 @@ test("Gitea quality gate validates before publishing an immutable ACR manifest",
assert.equal((workflow.match(/git status --porcelain --untracked-files=all/g) ?? []).length, 2);
assert.match(workflow, /python3 -m venv \.venv/);
assert.match(workflow, /python -m playwright install --with-deps chromium/);
assert.match(workflow, /apt-get[\s\S]*Acquire::Retries=3[\s\S]*update/);
assert.match(workflow, /apt-get install -y --no-install-recommends[\s\S]*docker-compose-v2/);
assert.match(workflow, /command -v node[^\n]+\|\| packages\+=\(nodejs\)/);
assert.match(workflow, /command -v npm[^\n]+\|\| packages\+=\(npm\)/);
assert.match(workflow, /packages\+=\(docker-compose-v2\)/);
assert.equal((workflow.match(/Acquire::https::Timeout=30 update/g) ?? []).length, 1);
assert.match(workflow, /apt-get install -y --no-install-recommends[\s\S]*"\$\{packages\[@\]\}"/);
assert.match(workflow, /node --version[\s\S]*npm --version/);
assert.match(workflow, /docker compose version --short/);
assert.match(workflow, /docker compose --help \| grep -q -- '--project-name'/);
assert.match(