blob: 9a0e4ab4f9dd96110f3fb4c84f8996a67b17cedb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
#!/usr/bin/env bash
set -euo pipefail
set -x
# Bump this to "clear" the cache.
# Actually, it just causes us to ignore previous cached results.
cache_clear_token=2023-11-09b
cache_dir=cache/"$CI_JOB_IMAGE","$cache_clear_token","puppeteer"
local_dir="$HOME/.cache/puppeteer"
if test -d "$cache_dir"; then
mkdir -p "$local_dir"/.
cp -a "$cache_dir"/. "$local_dir"/.
fi
./bin/via-yarn-install-in-ci mmdc https://github.com/mermaid-js/mermaid-cli \
bba0240ad87f6fbf44d8a24941e37f4bc2c8bf30
(
cd "$local_dir"
find -printf '%y %p %l\n' | sort
find -type f | sort | xargs sha256sum --
) >puppeteer-cache-got-listings
# Empirically, the mermaid-cli locked install produced a very old
# chromium today. So I suspect it's not fetching "latest", but a controlled
# version. Nevertheless, we should check that what we got is actually
# the same and hasn't been changed by Google (or something on the way).
# Doing this now isn't ideal, because I don't actually know if
# the mermaid-cli *install* process runs anything from here.
# But I don't think it runs the main chrome binary, since at one point
# in our tests we got as far as this and then the chrome binary
# failed with due to a missing OS shared library.
# This expected output listing shouldn't be in bin/ but the best way
# to fix that would be to rename the whole bin directory to maint.
diff -u bin/puppeteer-cache-expect-listings puppeteer-cache-got-listings
if ! test -d "$cache_dir"; then
mkdir -p "$cache_dir"
cp -a "$local_dir"/. "$cache_dir"/.
fi
# This is the easiest way to get the shared libraries that chromium
# depends on. Obviously, using the Debian package's dependencies
# is totally wrong, but it works in practice, and we don't have a proper
# dependency list from the binaries from the ad-hoc downloads.
apt-get install -y chromium
|