返回 DeepSeek-Reasonix
validate-release-control-plane.sh
根目录 / scripts / validate-release-control-plane.sh
1 #!/usr/bin/env bash
2 set -euo pipefail
3
4 root="${1:-$(git rev-parse --show-toplevel)}"
5 required=(
6 .github/actions/setup-certum/action.yml
7 .github/workflows/release-candidate.yml
8 .github/workflows/release-candidate-verify.yml
9 .github/workflows/release-promote.yml
10 .github/workflows/release-desktop.yml
11 .signpath/contracts/release-signing.yml
12 npm/publish-candidate.mjs
13 scripts/build-release-cli-candidate.mjs
14 scripts/desktop-release-artifacts.mjs
15 scripts/finalize-windows-signed-candidate.sh
16 scripts/install-nsis.ps1
17 scripts/package-windows-desktop.sh
18 scripts/release-candidate.mjs
19 scripts/release-candidate-tags.sh
20 scripts/resolve-release-candidate.mjs
21 scripts/sign-certum.ps1
22 scripts/test-windows-installer-startup.ps1
23 scripts/test-windows-startup-recovery.ps1
24 scripts/test-windows-upgrade-startup.ps1
25 scripts/verify-windows-authenticode.ps1
26 scripts/verify-release-authorization.sh
27 scripts/verify-release-artifact-archive.mjs
28 scripts/windows-acceptance-environment.ps1
29 scripts/windows-upgrade-ui-evidence.ps1
30 )
31
32 for file in "${required[@]}"; do
33 if [ ! -s "$root/$file" ]; then
34 echo "missing release control file: $file" >&2
35 exit 1
36 fi
37 done
38
39 for file in \
40 scripts/finalize-windows-signed-candidate.sh \
41 scripts/package-windows-desktop.sh; do
42 if [ ! -x "$root/$file" ]; then
43 echo "release control helper is not executable: $file" >&2
44 exit 1
45 fi
46 done
47
48 node --check "$root/scripts/release-candidate.mjs"
49 node --check "$root/scripts/verify-release-artifact-archive.mjs"
50 node --check "$root/scripts/resolve-release-candidate.mjs"
51 node --check "$root/scripts/build-release-cli-candidate.mjs"
52 node --check "$root/npm/publish-candidate.mjs"
53 bash -n "$root/scripts/finalize-windows-signed-candidate.sh"
54 bash -n "$root/scripts/release-candidate-tags.sh"
55 bash -n "$root/scripts/package-windows-desktop.sh"
56
57 echo "release control preflight: PASS"
58
58 lines BASH