Skip to content

Commit 6a4b1b0

Browse files
committed
Verify and cache exact Clang dependency around stale archive CDN 404
1 parent 3f5740e commit 6a4b1b0

1 file changed

Lines changed: 15 additions & 16 deletions

File tree

‎.github/workflows/recover-v1.0.6-platform-assets.yml‎

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Recover v1.0.6 Deepin assets
1+
name: Recover v1.0.6 Deepin ARMv7 asset
22
'on':
33
push:
44
branches:
@@ -7,7 +7,7 @@ permissions:
77
contents: read
88
actions: read
99
concurrency:
10-
group: recover-v1.0.6-deepin
10+
group: recover-v1.0.6-deepin-armv7
1111
cancel-in-progress: false
1212
jobs:
1313
build-web-ui:
@@ -97,20 +97,6 @@ jobs:
9797
fail-fast: false
9898
matrix:
9999
include:
100-
- id: linux-deepin-x64
101-
os: ubuntu-22.04
102-
triplet: x64-linux
103-
executable: acecode
104-
archive_extension: tar.gz
105-
build_desktop: true
106-
cmake_extra_args: -DACECODE_BUILD_DESKTOP=ON -DACECODE_DEEPIN=ON -DWEBVIEW_WEBKITGTK_API=4.0
107-
- id: linux-deepin-arm64
108-
os: ubuntu-22.04-arm
109-
triplet: arm64-linux
110-
executable: acecode
111-
archive_extension: tar.gz
112-
build_desktop: true
113-
cmake_extra_args: -DACECODE_BUILD_DESKTOP=ON -DACECODE_DEEPIN=ON -DWEBVIEW_WEBKITGTK_API=4.0
114100
- id: linux-deepin-armv7
115101
os: ubuntu-22.04
116102
triplet: arm-linux
@@ -178,6 +164,19 @@ jobs:
178164
qemu-user
179165
)
180166
fi
167+
# A regional archive CDN keeps returning a cached 404 for this existing file.
168+
# Select exactly the APT candidate and verify its signed-index SHA256.
169+
ace_candidate="$(apt-cache policy libclang-cpp11 | awk '/Candidate:/{print $2; exit}')"
170+
ace_record="$(apt-cache show "libclang-cpp11=$ace_candidate")"
171+
ace_package="$(printf '%s\n' "$ace_record" | awk '/^Filename:/{print $2; exit}')"
172+
ace_expected="$(printf '%s\n' "$ace_record" | awk '/^SHA256:/{print $2; exit}')"
173+
test -n "$ace_package" && test "${#ace_expected}" = "64"
174+
ace_cache="/var/cache/apt/archives/$(basename "$ace_package")"
175+
curl --fail --location --retry 3 --connect-timeout 20 --max-time 180 \
176+
"https://archive.debian.org/debian/$ace_package?acecode-recovery=$GITHUB_RUN_ID" \
177+
--output "$ace_cache.acecode-download"
178+
printf '%s %s\n' "$ace_expected" "$ace_cache.acecode-download" | sha256sum --check -
179+
mv "$ace_cache.acecode-download" "$ace_cache"
181180
for ace_attempt in 1 2 3; do
182181
if apt-get install -y --no-install-recommends "${packages[@]}"; then break; fi
183182
if [ "$ace_attempt" = "3" ]; then exit 100; fi

0 commit comments

Comments
 (0)