Install Compose from runner package manager
Staging Backend Quality Gate / validate (pull_request) Has been cancelled
Staging Backend Quality Gate / publish (pull_request) Has been cancelled

This commit is contained in:
Jesse_Chen
2026-08-05 12:56:14 +08:00
parent ca4417a345
commit e9800ed324
2 changed files with 8 additions and 21 deletions
+6 -16
View File
@@ -57,24 +57,14 @@ jobs:
docker version
- name: Install and verify Docker Compose v2
env:
DOCKER_COMPOSE_VERSION: v2.39.1
run: |
set -euo pipefail
case "$(uname -m)" in
x86_64) compose_arch=x86_64; compose_sha=a5ea28722d5da628b59226626f7d6c33c89a7ed19e39f750645925242044c9d2 ;;
aarch64|arm64) compose_arch=aarch64; compose_sha=7b2627ed76f7dcb0d93f649f185af912372229b4c09762a3cd1db5be5255632b ;;
*) echo "Unsupported Docker Compose architecture: $(uname -m)" >&2; exit 1 ;;
esac
compose_dir="${DOCKER_CONFIG:-$HOME/.docker}/cli-plugins"
compose_bin="$compose_dir/docker-compose"
mkdir -p "$compose_dir"
curl -fsSL --retry 3 --retry-all-errors --retry-delay 10 \
--connect-timeout 15 --max-time 180 \
"https://github.com/docker/compose/releases/download/$DOCKER_COMPOSE_VERSION/docker-compose-linux-$compose_arch" \
-o "$compose_bin"
printf '%s %s\n' "$compose_sha" "$compose_bin" | sha256sum -c -
chmod +x "$compose_bin"
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,11 +131,8 @@ 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, /DOCKER_COMPOSE_VERSION: v2\.39\.1/);
assert.match(workflow, /docker-compose-linux-\$compose_arch/);
assert.match(workflow, /curl -fsSL --retry 3 --retry-all-errors --retry-delay 10/);
assert.match(workflow, /--connect-timeout 15 --max-time 180/);
assert.match(workflow, /sha256sum -c -/);
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, /docker compose version --short/);
assert.match(workflow, /docker compose --help \| grep -q -- '--project-name'/);
assert.match(