Build and publish image / image (pull_request) Failing after 2m39s
Co-authored-by: multica-agent <github@multica.ai>
77 lines
2.8 KiB
Bash
Executable File
77 lines
2.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
bash -n scripts/build.sh tests/check.sh
|
|
sh -n docker-entrypoint.sh
|
|
|
|
grep -q 'Xvfb :99' docker-entrypoint.sh
|
|
! grep -q -- '--headless' docker-entrypoint.sh
|
|
grep -q -- '--no-sandbox' docker-entrypoint.sh
|
|
grep -q 'TCP-LISTEN:' docker-entrypoint.sh
|
|
grep -q 'git.ipao.vip/rogee/fingerprint-chromium' .gitea/workflows/publish.yml
|
|
grep -q 'ghcr.io/rogeecn/fingerprint-chromium' .github/workflows/publish.yml
|
|
grep -q 'packages: write' .gitea/workflows/publish.yml
|
|
grep -q 'packages: write' .github/workflows/publish.yml
|
|
grep -q 'org.opencontainers.image.revision="$OCI_REVISION"' Dockerfile
|
|
grep -q 'org.opencontainers.image.source="$OCI_SOURCE"' Dockerfile
|
|
grep -q 'OCI_SOURCE: https://git.ipao.vip/rogee/fingerprint-chromium' .gitea/workflows/publish.yml
|
|
grep -q '/link/fingerprint-chromium' .gitea/workflows/publish.yml
|
|
grep -q "repository.full_name // empty" .gitea/workflows/publish.yml
|
|
test "$(grep -c 'Authorization: token \$REGISTRY_TOKEN' .gitea/workflows/publish.yml)" -eq 3
|
|
|
|
font_packages=(
|
|
fonts-croscore
|
|
fonts-crosextra-caladea
|
|
fonts-crosextra-carlito
|
|
fonts-dejavu-core
|
|
fonts-dejavu-extra
|
|
fonts-freefont-ttf
|
|
fonts-liberation
|
|
fonts-liberation-sans-narrow
|
|
fonts-noto-cjk
|
|
fonts-noto-color-emoji
|
|
fonts-noto-core
|
|
fonts-ubuntu
|
|
fonts-urw-base35
|
|
)
|
|
|
|
version="$(curl --fail --location --retry 3 --silent --show-error \
|
|
https://api.github.com/repos/adryfish/fingerprint-chromium/releases/latest \
|
|
| jq -er '.tag_name | select(test("^[0-9]+(\\.[0-9]+){3}$"))')"
|
|
image="fingerprint-chromium-test:$version"
|
|
CHROME_VERSION="$version" ./scripts/build.sh fingerprint-chromium-test
|
|
|
|
docker run --rm --entrypoint sh "$image" -c '
|
|
for package do
|
|
test "$(dpkg-query -W -f="\${Status}" "$package" 2>/dev/null)" = "install ok installed" || exit 1
|
|
done
|
|
' sh "${font_packages[@]}"
|
|
|
|
docker run --rm --entrypoint sh "$image" -c '
|
|
for font do
|
|
fc-match --format "%{family}\n" "$font" | grep -Fq "$font" || exit 1
|
|
done
|
|
' sh Arimo Tinos Cousine Caladea Carlito \
|
|
'Noto Sans CJK JP' 'Noto Sans CJK SC' 'Noto Sans CJK TC' \
|
|
'Noto Serif CJK JP' 'Noto Serif CJK SC' 'Noto Serif CJK TC'
|
|
|
|
probe() {
|
|
local platform="$1" threshold="$2" output count
|
|
output="$(docker run --rm \
|
|
--volume "$PWD/tests/font-probe.html:/tmp/font-probe.html:ro" \
|
|
--entrypoint /opt/chromium/chrome "$image" \
|
|
--no-sandbox --headless=new --disable-gpu --disable-dev-shm-usage \
|
|
--fingerprint=1000 --fingerprint-platform="$platform" \
|
|
--dump-dom "file:///tmp/font-probe.html#$platform" 2>/dev/null)"
|
|
count="$(sed -n 's/.*data-count="\([0-9][0-9]*\)".*/\1/p' <<<"$output")"
|
|
[[ "$count" =~ ^[0-9]+$ && "$count" -ge "$threshold" ]] || {
|
|
printf '%s font probe: expected >= %s, got %s\n' "$platform" "$threshold" "${count:-none}" >&2
|
|
return 1
|
|
}
|
|
printf '%s font probe: %s\n' "$platform" "$count"
|
|
}
|
|
|
|
probe windows 22
|
|
probe macos 24
|
|
probe linux 27
|