@@ -180,19 +180,32 @@ jobs:
180180 node-version : 24.15.0
181181 - name : Verify native Git and download immutable selected archive
182182 run : |-
183+ exec > >(tee "$RUNNER_TEMP/git-provenance.log") 2>&1
183184 export PATH="/c/Program Files/Git/cmd:$PATH"
184- /mingw64/bin/python -c 'import subprocess; subprocess.run(["git","--version"],check=True)'
185+ /mingw64/bin/python - <<'GIT_PROBE'
186+ import shutil, subprocess
187+ print('selected native Git:', shutil.which('git'), flush=True)
188+ for arguments in (['--version'], ['rev-parse', '--verify', 'HEAD^{commit}']):
189+ result = subprocess.run(['git'] + arguments, capture_output=True, text=True)
190+ print('git', *arguments, 'exit=' + str(result.returncode), flush=True)
191+ print(result.stdout[-2048:], end='', flush=True)
192+ print(result.stderr[-2048:], end='', flush=True)
193+ result.check_returncode()
194+ GIT_PROBE
185195 /mingw64/bin/python scripts/run-v3-release-ci.py download --artifact-id "$SELECTED_ID" --digest "$SELECTED_DIGEST" --output "$RUNNER_TEMP/selected"
186196 - name : Selected provider and clients
187197 run : |-
188198 exec > >(tee "$RUNNER_TEMP/prerequisites-ci.log") 2>&1
199+ export PATH="/c/Program Files/Git/cmd:$PATH"
189200 /mingw64/bin/python scripts/prepare-v3-package-ci.py --output "$RUNNER_TEMP/prerequisites"
190201 /mingw64/bin/python -m venv "$RUNNER_TEMP/clients"
191202 "$(cygpath -m "$RUNNER_TEMP/clients/bin/python.exe")" -m pip install -r test/integ/http2-client-requirements.txt
192203 - name : Complete native and installed TLS off/on proof
193- run : /mingw64/bin/python scripts/run-v3-release-ci.py platform --selection "$RUNNER_TEMP/selected/selected.json" --archive "$RUNNER_TEMP/selected/"libhttpserver-*.tar.gz
194- --provider-prefix "$RUNNER_TEMP/prerequisites/provider" --client-python "$(cygpath -m "$RUNNER_TEMP/clients/bin/python.exe")"
195- --node node --output "$RUNNER_TEMP/platform" --toolchain-prefix "$(cygpath -m /mingw64)"
204+ run : |-
205+ export PATH="/c/Program Files/Git/cmd:$PATH"
206+ /mingw64/bin/python scripts/run-v3-release-ci.py platform --selection "$RUNNER_TEMP/selected/selected.json" --archive "$RUNNER_TEMP/selected/"libhttpserver-*.tar.gz \
207+ --provider-prefix "$RUNNER_TEMP/prerequisites/provider" --client-python "$(cygpath -m "$RUNNER_TEMP/clients/bin/python.exe")" \
208+ --node node --output "$RUNNER_TEMP/platform" --toolchain-prefix "$(cygpath -m /mingw64)"
196209 - id : proof
197210 uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
198211 with :
@@ -209,6 +222,7 @@ jobs:
209222 ${{ runner.temp }}/prerequisites/preparation.json
210223 ${{ runner.temp }}/prerequisites/*.log
211224 ${{ runner.temp }}/prerequisites-ci.log
225+ ${{ runner.temp }}/git-provenance.log
212226 retention-days : 30
213227 if-no-files-found : warn
214228 compression-level : 0
@@ -241,23 +255,32 @@ jobs:
241255 release : ' 14.3'
242256 mem : 8192
243257 cpu : 2
244- prepare : pkg install -y bash autoconf automake libtool pkgconf python3 gmake curl binutils perl5 llvm git
258+ prepare : pkg install -y bash autoconf automake libtool pkgconf python3 gmake curl binutils perl5 llvm19 git
245259 node24
246260 run : |-
247261 set -eu
248262 export RUNNER_TEMP=/tmp/v3-release-${{ github.run_id }}-${{ github.run_attempt }}
249- mkdir -p "$RUNNER_TEMP"
250- trap 'mkdir -p platform-evidence; cp -R "$RUNNER_TEMP/platform" platform-evidence/ 2>/dev/null || true; cp -R "$RUNNER_TEMP/prerequisites" platform-evidence/ 2>/dev/null || true' EXIT
263+ mkdir -p "$RUNNER_TEMP/platform-evidence "
264+ trap 'cp -R "$RUNNER_TEMP/platform" "$RUNNER_TEMP/ platform-evidence/" 2>/dev/null || true; cp -R "$RUNNER_TEMP/prerequisites" "$RUNNER_TEMP/ platform-evidence/" 2>/dev/null || true; cp -R "$RUNNER_TEMP/platform-evidence" ./platform-evidence ' EXIT
251265 if [ "$(node --version)" != v24.15.0 ]; then
252266 mkdir -p "$RUNNER_TEMP/node-source"
267+ node_logs="$RUNNER_TEMP/platform-evidence/node-source"
268+ mkdir -p "$node_logs"
253269 curl --fail --location https://nodejs.org/dist/v24.15.0/node-v24.15.0.tar.gz -o "$RUNNER_TEMP/node-source/node-v24.15.0.tar.gz"
254270 test "$(sha256 -q "$RUNNER_TEMP/node-source/node-v24.15.0.tar.gz")" = 729de494dd2872e5a3a6c32a1cd156a5413d4aca2772b2d873ee86bb5531bcd9
255271 tar -xzf "$RUNNER_TEMP/node-source/node-v24.15.0.tar.gz" -C "$RUNNER_TEMP/node-source"
256272 (
257273 cd "$RUNNER_TEMP/node-source/node-v24.15.0"
258- ./configure --prefix="$RUNNER_TEMP/node"
259- gmake -j2 > "$RUNNER_TEMP/node-source/build.log" 2>&1
260- gmake install >> "$RUNNER_TEMP/node-source/build.log" 2>&1
274+ {
275+ node_llvm_bin="$(llvm-config19 --bindir)"
276+ export CC="$node_llvm_bin/clang" CXX="$node_llvm_bin/clang++"
277+ printf 'CC=%s\nCXX=%s\n' "$CC" "$CXX"
278+ "$CC" --version
279+ "$CXX" --version
280+ } > "$node_logs/compiler.log" 2>&1
281+ ./configure --prefix="$RUNNER_TEMP/node" > "$node_logs/configure.log" 2>&1
282+ gmake -j2 > "$node_logs/build.log" 2>&1
283+ gmake install >> "$node_logs/build.log" 2>&1
261284 )
262285 export PATH="$RUNNER_TEMP/node/bin:$PATH"
263286 fi
@@ -267,6 +290,11 @@ jobs:
267290 python3 -m venv "$RUNNER_TEMP/clients"
268291 "$RUNNER_TEMP/clients/bin/python" -m pip install -r test/integ/http2-client-requirements.txt
269292 python3 scripts/run-v3-release-ci.py platform --selection build/ci-selected-input/selected.json --archive build/ci-selected-input/libhttpserver-*.tar.gz --provider-prefix "$RUNNER_TEMP/prerequisites/provider" --client-python "$RUNNER_TEMP/clients/bin/python" --node node --make gmake --pkg-config-dir /usr/local/share/pkgconfig --output "$RUNNER_TEMP/platform"
293+ - name : Recover FreeBSD evidence
294+ if : always()
295+ run : |
296+ mkdir -p platform-evidence
297+ scp -O -r freebsd:/tmp/v3-release-${{ github.run_id }}-${{ github.run_attempt }}/platform-evidence/. platform-evidence/
270298 - id : proof
271299 uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
272300 with :
0 commit comments