|
46 | 46 | python3 -m pip install meson mako |
47 | 47 | python3 -m pip install cmake==4.2.0 |
48 | 48 |
|
| 49 | + - name: Resolve prebuilt bundle checksums |
| 50 | + shell: bash |
| 51 | + run: | |
| 52 | + set -euo pipefail |
| 53 | + llvm_sha="$(curl -L --fail "${LLVM_PREBUILT_URL}.sha256" | awk 'NR==1 {print $1}')" |
| 54 | + dxc_sha="$(curl -L --fail "${DXC_WASM_PREBUILT_URL}.sha256" | awk 'NR==1 {print $1}')" |
| 55 | + if [ -z "${llvm_sha}" ] || [ -z "${dxc_sha}" ]; then |
| 56 | + echo "Failed to resolve prebuilt checksums from release sidecar files." |
| 57 | + exit 1 |
| 58 | + fi |
| 59 | + echo "LLVM_PREBUILT_SHA256=${llvm_sha}" >> "${GITHUB_ENV}" |
| 60 | + echo "DXC_WASM_PREBUILT_SHA256=${dxc_sha}" >> "${GITHUB_ENV}" |
| 61 | +
|
49 | 62 | - name: Restore third-party cache |
50 | 63 | id: cache_thirdparty |
51 | 64 | uses: actions/cache/restore@v4 |
@@ -74,14 +87,21 @@ jobs: |
74 | 87 | dxc_dir="${GITHUB_WORKSPACE}/.3rdparty/dxc-wasm" |
75 | 88 | dxc_js="${dxc_dir}/dxc.js" |
76 | 89 | dxc_wasm="${dxc_dir}/dxc.wasm" |
| 90 | + dxc_sha_stamp="${dxc_dir}/.sha256" |
| 91 | + download_dxc=0 |
77 | 92 | if [ ! -f "${dxc_js}" ] || [ ! -f "${dxc_wasm}" ]; then |
| 93 | + download_dxc=1 |
| 94 | + elif [ ! -f "${dxc_sha_stamp}" ] || [ "$(cat "${dxc_sha_stamp}")" != "${DXC_WASM_PREBUILT_SHA256}" ]; then |
| 95 | + download_dxc=1 |
| 96 | + fi |
| 97 | + if [ "${download_dxc}" -eq 1 ]; then |
78 | 98 | mkdir -p "${dxc_dir}" |
| 99 | + rm -f "${dxc_js}" "${dxc_wasm}" "${dxc_sha_stamp}" |
79 | 100 | curl -L --fail "${DXC_WASM_PREBUILT_URL}" -o "${RUNNER_TEMP}/dxc-wasm-prebuilt.zip" |
80 | | - if [ -n "${DXC_WASM_PREBUILT_SHA256}" ]; then |
81 | | - echo "${DXC_WASM_PREBUILT_SHA256} ${RUNNER_TEMP}/dxc-wasm-prebuilt.zip" | sha256sum -c - |
82 | | - fi |
| 101 | + echo "${DXC_WASM_PREBUILT_SHA256} ${RUNNER_TEMP}/dxc-wasm-prebuilt.zip" | sha256sum -c - |
83 | 102 | python3 -c "import sys,zipfile; zipfile.ZipFile(sys.argv[1]).extractall(sys.argv[2])" \ |
84 | 103 | "${RUNNER_TEMP}/dxc-wasm-prebuilt.zip" "${dxc_dir}" |
| 104 | + printf '%s' "${DXC_WASM_PREBUILT_SHA256}" > "${dxc_sha_stamp}" |
85 | 105 | fi |
86 | 106 | test -f "${dxc_js}" |
87 | 107 | test -f "${dxc_wasm}" |
@@ -158,6 +178,19 @@ jobs: |
158 | 178 | python3 -m pip install --upgrade pip |
159 | 179 | python3 -m pip install cmake==4.2.0 |
160 | 180 |
|
| 181 | + - name: Resolve prebuilt bundle checksums |
| 182 | + shell: bash |
| 183 | + run: | |
| 184 | + set -euo pipefail |
| 185 | + llvm_sha="$(curl -L --fail "${LLVM_PREBUILT_URL}.sha256" | awk 'NR==1 {print $1}')" |
| 186 | + dxc_sha="$(curl -L --fail "${DXC_WASM_PREBUILT_URL}.sha256" | awk 'NR==1 {print $1}')" |
| 187 | + if [ -z "${llvm_sha}" ] || [ -z "${dxc_sha}" ]; then |
| 188 | + echo "Failed to resolve prebuilt checksums from release sidecar files." |
| 189 | + exit 1 |
| 190 | + fi |
| 191 | + echo "LLVM_PREBUILT_SHA256=${llvm_sha}" >> "${GITHUB_ENV}" |
| 192 | + echo "DXC_WASM_PREBUILT_SHA256=${dxc_sha}" >> "${GITHUB_ENV}" |
| 193 | +
|
161 | 194 | - name: Restore third-party cache |
162 | 195 | id: cache_thirdparty |
163 | 196 | uses: actions/cache/restore@v4 |
@@ -189,14 +222,21 @@ jobs: |
189 | 222 | dxc_dir="${GITHUB_WORKSPACE}/.3rdparty/dxc-wasm" |
190 | 223 | dxc_js="${dxc_dir}/dxc.js" |
191 | 224 | dxc_wasm="${dxc_dir}/dxc.wasm" |
| 225 | + dxc_sha_stamp="${dxc_dir}/.sha256" |
| 226 | + download_dxc=0 |
192 | 227 | if [ ! -f "${dxc_js}" ] || [ ! -f "${dxc_wasm}" ]; then |
| 228 | + download_dxc=1 |
| 229 | + elif [ ! -f "${dxc_sha_stamp}" ] || [ "$(cat "${dxc_sha_stamp}")" != "${DXC_WASM_PREBUILT_SHA256}" ]; then |
| 230 | + download_dxc=1 |
| 231 | + fi |
| 232 | + if [ "${download_dxc}" -eq 1 ]; then |
193 | 233 | mkdir -p "${dxc_dir}" |
| 234 | + rm -f "${dxc_js}" "${dxc_wasm}" "${dxc_sha_stamp}" |
194 | 235 | curl -L --fail "${DXC_WASM_PREBUILT_URL}" -o "${RUNNER_TEMP}/dxc-wasm-prebuilt.zip" |
195 | | - if [ -n "${DXC_WASM_PREBUILT_SHA256}" ]; then |
196 | | - echo "${DXC_WASM_PREBUILT_SHA256} ${RUNNER_TEMP}/dxc-wasm-prebuilt.zip" | sha256sum -c - |
197 | | - fi |
| 236 | + echo "${DXC_WASM_PREBUILT_SHA256} ${RUNNER_TEMP}/dxc-wasm-prebuilt.zip" | sha256sum -c - |
198 | 237 | python3 -c "import sys,zipfile; zipfile.ZipFile(sys.argv[1]).extractall(sys.argv[2])" \ |
199 | 238 | "${RUNNER_TEMP}/dxc-wasm-prebuilt.zip" "${dxc_dir}" |
| 239 | + printf '%s' "${DXC_WASM_PREBUILT_SHA256}" > "${dxc_sha_stamp}" |
200 | 240 | fi |
201 | 241 | test -f "${dxc_js}" |
202 | 242 | test -f "${dxc_wasm}" |
|
0 commit comments