120 lines
3.6 KiB
Bash
120 lines
3.6 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
WORK_DIR="$(mktemp -d)"
|
|
trap 'rm -rf "$WORK_DIR"' EXIT
|
|
|
|
mkdir -p "$WORK_DIR/docs/badges"
|
|
|
|
cat > "$WORK_DIR/docs/badges/badges.json" <<'JSON'
|
|
{
|
|
"schemaVersion": 1,
|
|
"generatedBy": "scripts/update_code_check_badges.mjs",
|
|
"updatedAt": "2026-01-01T00:00:00.000Z",
|
|
"source": {
|
|
"branch": "dev",
|
|
"sha": "abc123456789",
|
|
"shortSha": "abc123456789",
|
|
"runId": "1",
|
|
"runNumber": "1"
|
|
},
|
|
"badges": {
|
|
"code-check": {
|
|
"label": "code check",
|
|
"message": "passing",
|
|
"color": "#2ea043"
|
|
},
|
|
"biome": {
|
|
"label": "biome",
|
|
"message": "passing",
|
|
"color": "#2ea043"
|
|
},
|
|
"backend-tests": {
|
|
"label": "backend",
|
|
"message": "pass | 93.20%",
|
|
"color": "#2ea043"
|
|
},
|
|
"userfront": {
|
|
"label": "userfront",
|
|
"message": "pass | 56.52%",
|
|
"color": "#bf8700"
|
|
},
|
|
"adminfront": {
|
|
"label": "adminfront",
|
|
"message": "pass | 60.01%",
|
|
"color": "#bf8700"
|
|
},
|
|
"devfront": {
|
|
"label": "devfront",
|
|
"message": "pass | 58.02%",
|
|
"color": "#bf8700"
|
|
},
|
|
"orgfront": {
|
|
"label": "orgfront",
|
|
"message": "pass | 61.18%",
|
|
"color": "#bf8700"
|
|
},
|
|
"userfront-chrome": {
|
|
"label": "chrome",
|
|
"message": "unknown",
|
|
"color": "#6e7781"
|
|
},
|
|
"userfront-firefox": {
|
|
"label": "firefox",
|
|
"message": "unknown",
|
|
"color": "#6e7781"
|
|
},
|
|
"userfront-safari": {
|
|
"label": "safari",
|
|
"message": "unknown",
|
|
"color": "#6e7781"
|
|
}
|
|
}
|
|
}
|
|
JSON
|
|
|
|
(
|
|
cd "$WORK_DIR"
|
|
USERFRONT_E2E_RESULT=failure \
|
|
USERFRONT_E2E_FULL=true \
|
|
USERFRONT_E2E_CHROMIUM_DESKTOP_RESULT=success \
|
|
USERFRONT_E2E_CHROMIUM_MOBILE_RESULT=success \
|
|
USERFRONT_E2E_FIREFOX_DESKTOP_RESULT=success \
|
|
USERFRONT_E2E_FIREFOX_MOBILE_RESULT=skipped \
|
|
USERFRONT_E2E_WEBKIT_DESKTOP_RESULT=failure \
|
|
USERFRONT_E2E_WEBKIT_MOBILE_RESULT=success \
|
|
BADGE_UPDATE_CODE_CHECK=false \
|
|
BADGE_SOURCE_BRANCH=dev \
|
|
BADGE_SOURCE_SHA=abc123456789 \
|
|
GITHUB_RUN_ID=2 \
|
|
GITHUB_RUN_NUMBER=2 \
|
|
node "$ROOT_DIR/scripts/update_code_check_badges.mjs"
|
|
)
|
|
|
|
node - "$WORK_DIR/docs/badges/badges.json" <<'NODE'
|
|
const fs = require("node:fs");
|
|
|
|
const manifest = JSON.parse(fs.readFileSync(process.argv[2], "utf8"));
|
|
const badges = manifest.badges;
|
|
|
|
function assertEqual(actual, expected, message) {
|
|
if (actual !== expected) {
|
|
throw new Error(`${message}: expected ${expected}, got ${actual}`);
|
|
}
|
|
}
|
|
|
|
assertEqual(badges["code-check"].message, "passing", "full nightly must preserve code-check badge");
|
|
assertEqual(badges.biome.message, "passing", "full nightly must preserve biome badge");
|
|
assertEqual(badges["backend-tests"].message, "pass | 93.20%", "full nightly must preserve backend badge");
|
|
assertEqual(badges.userfront.message, "pass | 56.52%", "full nightly must preserve userfront package badge");
|
|
assertEqual(badges.adminfront.message, "pass | 60.01%", "full nightly must preserve adminfront badge");
|
|
assertEqual(badges.devfront.message, "pass | 58.02%", "full nightly must preserve devfront badge");
|
|
assertEqual(badges.orgfront.message, "pass | 61.18%", "full nightly must preserve orgfront badge");
|
|
assertEqual(badges["userfront-chrome"].message, "pass | pass", "full nightly must update chrome badge");
|
|
assertEqual(badges["userfront-firefox"].message, "pass | skip", "full nightly must update firefox badge");
|
|
assertEqual(badges["userfront-safari"].message, "fail | pass", "full nightly must update safari badge");
|
|
NODE
|
|
|
|
echo "OK: full nightly preserves existing non-browser badges"
|