Install missing CI toolchain packages
This commit is contained in:
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user