1
0
forked from baron/baron-sso

코드체크 결과 README에 뱃지로 추가

This commit is contained in:
2026-05-29 17:15:13 +09:00
parent 5ddfc6c81b
commit 23cd316c23
26 changed files with 1096 additions and 350 deletions

View File

@@ -749,11 +749,11 @@ jobs:
userfront-e2e/test-results
if-no-files-found: ignore
front-vitest-coverage:
adminfront-vitest-coverage:
needs:
- changes
- lint
if: ${{ always() && needs.changes.outputs.front_coverage == 'true' && (github.event_name != 'workflow_dispatch' || inputs.run_front_coverage == true) }}
if: ${{ always() && needs.changes.outputs.adminfront == 'true' && (github.event_name != 'workflow_dispatch' || inputs.run_front_coverage == true) }}
runs-on: ubuntu-latest
steps:
- name: Checkout code
@@ -777,10 +777,10 @@ jobs:
if [ "$install_exit_code" -ne 0 ]; then
{
echo "# Front Vitest Coverage Failure Report"
echo "# Adminfront Vitest Coverage Failure Report"
echo
echo "- Workflow: \`${GITHUB_WORKFLOW:-Code Check}\`"
echo "- Job: \`front-vitest-coverage\`"
echo "- Job: \`adminfront-vitest-coverage\`"
echo "- Reason: \`Dependency install failed\`"
echo "- Exit Code: \`$install_exit_code\`"
echo
@@ -791,39 +791,37 @@ jobs:
echo '```text'
tail -n 200 reports/front-coverage-install.log
echo '```'
} > reports/front-vitest-coverage-failure-report.md
} > reports/adminfront-vitest-coverage-failure-report.md
exit 1
fi
for app in adminfront devfront orgfront; do
set +e
cd "$app"
pnpm install --no-frozen-lockfile --shamefully-hoist 2>&1 | tee -a ../reports/front-coverage-install.log
app_install_exit_code=${PIPESTATUS[0]}
cd ..
set -e
set +e
cd adminfront
pnpm install --no-frozen-lockfile --shamefully-hoist 2>&1 | tee -a ../reports/front-coverage-install.log
app_install_exit_code=${PIPESTATUS[0]}
cd ..
set -e
if [ "$app_install_exit_code" -ne 0 ]; then
{
echo "# Front Vitest Coverage Failure Report"
echo
echo "- Workflow: \`${GITHUB_WORKFLOW:-Code Check}\`"
echo "- Job: \`front-vitest-coverage\`"
echo "- Package: \`$app\`"
echo "- Reason: \`Dependency install failed\`"
echo "- Exit Code: \`$app_install_exit_code\`"
echo
echo "## Command"
echo "\`cd $app && pnpm install --no-frozen-lockfile --shamefully-hoist\`"
echo
echo "## Install Log Tail (last 200 lines)"
echo '```text'
tail -n 200 reports/front-coverage-install.log
echo '```'
} > reports/front-vitest-coverage-failure-report.md
exit 1
fi
done
if [ "$app_install_exit_code" -ne 0 ]; then
{
echo "# Adminfront Vitest Coverage Failure Report"
echo
echo "- Workflow: \`${GITHUB_WORKFLOW:-Code Check}\`"
echo "- Job: \`adminfront-vitest-coverage\`"
echo "- Package: \`adminfront\`"
echo "- Reason: \`Dependency install failed\`"
echo "- Exit Code: \`$app_install_exit_code\`"
echo
echo "## Command"
echo "\`cd adminfront && pnpm install --no-frozen-lockfile --shamefully-hoist\`"
echo
echo "## Install Log Tail (last 200 lines)"
echo '```text'
tail -n 200 reports/front-coverage-install.log
echo '```'
} > reports/adminfront-vitest-coverage-failure-report.md
exit 1
fi
- name: Run adminfront Vitest coverage
run: |
@@ -836,10 +834,10 @@ jobs:
if [ "$test_exit_code" -ne 0 ]; then
{
echo "# Front Vitest Coverage Failure Report"
echo "# Adminfront Vitest Coverage Failure Report"
echo
echo "- Workflow: \`${GITHUB_WORKFLOW:-Code Check}\`"
echo "- Job: \`front-vitest-coverage\`"
echo "- Job: \`adminfront-vitest-coverage\`"
echo "- Package: \`adminfront\`"
echo "- Exit Code: \`$test_exit_code\`"
echo
@@ -847,7 +845,108 @@ jobs:
echo '```text'
tail -n 200 reports/adminfront-vitest-coverage.log
echo '```'
} > reports/front-vitest-coverage-failure-report.md
} > reports/adminfront-vitest-coverage-failure-report.md
exit 1
fi
- name: Generate adminfront Vitest coverage summary
run: |
node scripts/summarize_vitest_coverage.mjs adminfront
cat reports/vitest-coverage-summary.md >> "$GITHUB_STEP_SUMMARY"
- name: Publish adminfront Vitest coverage failure summary
if: ${{ failure() }}
run: |
if [ -f reports/adminfront-vitest-coverage-failure-report.md ]; then
cat reports/adminfront-vitest-coverage-failure-report.md >> "$GITHUB_STEP_SUMMARY"
fi
- name: Upload adminfront Vitest coverage report artifact
if: ${{ always() }}
uses: actions/upload-artifact@v3
continue-on-error: true
with:
name: adminfront-vitest-coverage-report
path: |
reports/vitest-coverage-summary.md
reports/vitest-coverage-summary.json
reports/adminfront-vitest-coverage-failure-report.md
reports/front-coverage-install.log
reports/adminfront-vitest-coverage.log
adminfront/coverage
if-no-files-found: ignore
devfront-vitest-coverage:
needs:
- changes
- lint
if: ${{ always() && needs.changes.outputs.devfront == 'true' && (github.event_name != 'workflow_dispatch' || inputs.run_front_coverage == true) }}
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "24"
- name: Install front workspace dependencies
run: |
mkdir -p reports
set +e
npm install -g pnpm
cd common
pnpm install --no-frozen-lockfile --shamefully-hoist 2>&1 | tee ../reports/front-coverage-install.log
install_exit_code=${PIPESTATUS[0]}
cd ..
set -e
if [ "$install_exit_code" -ne 0 ]; then
{
echo "# Devfront Vitest Coverage Failure Report"
echo
echo "- Workflow: \`${GITHUB_WORKFLOW:-Code Check}\`"
echo "- Job: \`devfront-vitest-coverage\`"
echo "- Reason: \`Dependency install failed\`"
echo "- Exit Code: \`$install_exit_code\`"
echo
echo "## Command"
echo "\`cd common && pnpm install --no-frozen-lockfile --shamefully-hoist\`"
echo
echo "## Install Log Tail (last 200 lines)"
echo '```text'
tail -n 200 reports/front-coverage-install.log
echo '```'
} > reports/devfront-vitest-coverage-failure-report.md
exit 1
fi
set +e
cd devfront
pnpm install --no-frozen-lockfile --shamefully-hoist 2>&1 | tee -a ../reports/front-coverage-install.log
app_install_exit_code=${PIPESTATUS[0]}
cd ..
set -e
if [ "$app_install_exit_code" -ne 0 ]; then
{
echo "# Devfront Vitest Coverage Failure Report"
echo
echo "- Workflow: \`${GITHUB_WORKFLOW:-Code Check}\`"
echo "- Job: \`devfront-vitest-coverage\`"
echo "- Package: \`devfront\`"
echo "- Reason: \`Dependency install failed\`"
echo "- Exit Code: \`$app_install_exit_code\`"
echo
echo "## Command"
echo "\`cd devfront && pnpm install --no-frozen-lockfile --shamefully-hoist\`"
echo
echo "## Install Log Tail (last 200 lines)"
echo '```text'
tail -n 200 reports/front-coverage-install.log
echo '```'
} > reports/devfront-vitest-coverage-failure-report.md
exit 1
fi
@@ -862,10 +961,10 @@ jobs:
if [ "$test_exit_code" -ne 0 ]; then
{
echo "# Front Vitest Coverage Failure Report"
echo "# Devfront Vitest Coverage Failure Report"
echo
echo "- Workflow: \`${GITHUB_WORKFLOW:-Code Check}\`"
echo "- Job: \`front-vitest-coverage\`"
echo "- Job: \`devfront-vitest-coverage\`"
echo "- Package: \`devfront\`"
echo "- Exit Code: \`$test_exit_code\`"
echo
@@ -873,7 +972,108 @@ jobs:
echo '```text'
tail -n 200 reports/devfront-vitest-coverage.log
echo '```'
} > reports/front-vitest-coverage-failure-report.md
} > reports/devfront-vitest-coverage-failure-report.md
exit 1
fi
- name: Generate devfront Vitest coverage summary
run: |
node scripts/summarize_vitest_coverage.mjs devfront
cat reports/vitest-coverage-summary.md >> "$GITHUB_STEP_SUMMARY"
- name: Publish devfront Vitest coverage failure summary
if: ${{ failure() }}
run: |
if [ -f reports/devfront-vitest-coverage-failure-report.md ]; then
cat reports/devfront-vitest-coverage-failure-report.md >> "$GITHUB_STEP_SUMMARY"
fi
- name: Upload devfront Vitest coverage report artifact
if: ${{ always() }}
uses: actions/upload-artifact@v3
continue-on-error: true
with:
name: devfront-vitest-coverage-report
path: |
reports/vitest-coverage-summary.md
reports/vitest-coverage-summary.json
reports/devfront-vitest-coverage-failure-report.md
reports/front-coverage-install.log
reports/devfront-vitest-coverage.log
devfront/coverage
if-no-files-found: ignore
orgfront-vitest-coverage:
needs:
- changes
- lint
if: ${{ always() && needs.changes.outputs.orgfront == 'true' && (github.event_name != 'workflow_dispatch' || inputs.run_front_coverage == true) }}
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "24"
- name: Install front workspace dependencies
run: |
mkdir -p reports
set +e
npm install -g pnpm
cd common
pnpm install --no-frozen-lockfile --shamefully-hoist 2>&1 | tee ../reports/front-coverage-install.log
install_exit_code=${PIPESTATUS[0]}
cd ..
set -e
if [ "$install_exit_code" -ne 0 ]; then
{
echo "# Orgfront Vitest Coverage Failure Report"
echo
echo "- Workflow: \`${GITHUB_WORKFLOW:-Code Check}\`"
echo "- Job: \`orgfront-vitest-coverage\`"
echo "- Reason: \`Dependency install failed\`"
echo "- Exit Code: \`$install_exit_code\`"
echo
echo "## Command"
echo "\`cd common && pnpm install --no-frozen-lockfile --shamefully-hoist\`"
echo
echo "## Install Log Tail (last 200 lines)"
echo '```text'
tail -n 200 reports/front-coverage-install.log
echo '```'
} > reports/orgfront-vitest-coverage-failure-report.md
exit 1
fi
set +e
cd orgfront
pnpm install --no-frozen-lockfile --shamefully-hoist 2>&1 | tee -a ../reports/front-coverage-install.log
app_install_exit_code=${PIPESTATUS[0]}
cd ..
set -e
if [ "$app_install_exit_code" -ne 0 ]; then
{
echo "# Orgfront Vitest Coverage Failure Report"
echo
echo "- Workflow: \`${GITHUB_WORKFLOW:-Code Check}\`"
echo "- Job: \`orgfront-vitest-coverage\`"
echo "- Package: \`orgfront\`"
echo "- Reason: \`Dependency install failed\`"
echo "- Exit Code: \`$app_install_exit_code\`"
echo
echo "## Command"
echo "\`cd orgfront && pnpm install --no-frozen-lockfile --shamefully-hoist\`"
echo
echo "## Install Log Tail (last 200 lines)"
echo '```text'
tail -n 200 reports/front-coverage-install.log
echo '```'
} > reports/orgfront-vitest-coverage-failure-report.md
exit 1
fi
@@ -888,10 +1088,10 @@ jobs:
if [ "$test_exit_code" -ne 0 ]; then
{
echo "# Front Vitest Coverage Failure Report"
echo "# Orgfront Vitest Coverage Failure Report"
echo
echo "- Workflow: \`${GITHUB_WORKFLOW:-Code Check}\`"
echo "- Job: \`front-vitest-coverage\`"
echo "- Job: \`orgfront-vitest-coverage\`"
echo "- Package: \`orgfront\`"
echo "- Exit Code: \`$test_exit_code\`"
echo
@@ -899,38 +1099,34 @@ jobs:
echo '```text'
tail -n 200 reports/orgfront-vitest-coverage.log
echo '```'
} > reports/front-vitest-coverage-failure-report.md
} > reports/orgfront-vitest-coverage-failure-report.md
exit 1
fi
- name: Generate Vitest coverage summary
- name: Generate orgfront Vitest coverage summary
run: |
node scripts/summarize_vitest_coverage.mjs
node scripts/summarize_vitest_coverage.mjs orgfront
cat reports/vitest-coverage-summary.md >> "$GITHUB_STEP_SUMMARY"
- name: Publish front Vitest coverage failure summary
- name: Publish orgfront Vitest coverage failure summary
if: ${{ failure() }}
run: |
if [ -f reports/front-vitest-coverage-failure-report.md ]; then
cat reports/front-vitest-coverage-failure-report.md >> "$GITHUB_STEP_SUMMARY"
if [ -f reports/orgfront-vitest-coverage-failure-report.md ]; then
cat reports/orgfront-vitest-coverage-failure-report.md >> "$GITHUB_STEP_SUMMARY"
fi
- name: Upload front Vitest coverage report artifact
- name: Upload orgfront Vitest coverage report artifact
if: ${{ always() }}
uses: actions/upload-artifact@v3
continue-on-error: true
with:
name: front-vitest-coverage-report
name: orgfront-vitest-coverage-report
path: |
reports/vitest-coverage-summary.md
reports/vitest-coverage-summary.json
reports/front-vitest-coverage-failure-report.md
reports/orgfront-vitest-coverage-failure-report.md
reports/front-coverage-install.log
reports/adminfront-vitest-coverage.log
reports/devfront-vitest-coverage.log
reports/orgfront-vitest-coverage.log
adminfront/coverage
devfront/coverage
orgfront/coverage
if-no-files-found: ignore
@@ -1406,7 +1602,9 @@ jobs:
- backend-tests
- userfront-tests
- userfront-e2e-tests
- front-vitest-coverage
- adminfront-vitest-coverage
- devfront-vitest-coverage
- orgfront-vitest-coverage
- adminfront-tests
- devfront-tests
- orgfront-tests
@@ -1423,12 +1621,26 @@ jobs:
with:
node-version: "24"
- name: Download Vitest coverage report artifact
- name: Download adminfront Vitest coverage report artifact
uses: actions/download-artifact@v3
continue-on-error: true
with:
name: front-vitest-coverage-report
path: badge-artifacts/front-vitest-coverage-report
name: adminfront-vitest-coverage-report
path: badge-artifacts/adminfront
- name: Download devfront Vitest coverage report artifact
uses: actions/download-artifact@v3
continue-on-error: true
with:
name: devfront-vitest-coverage-report
path: badge-artifacts/devfront
- name: Download orgfront Vitest coverage report artifact
uses: actions/download-artifact@v3
continue-on-error: true
with:
name: orgfront-vitest-coverage-report
path: badge-artifacts/orgfront
- name: Update badge files
env:
@@ -1438,7 +1650,9 @@ jobs:
USERFRONT_RESULT: ${{ needs['userfront-tests'].result }}
USERFRONT_E2E_RESULT: ${{ needs['userfront-e2e-tests'].result }}
USERFRONT_E2E_FULL: ${{ github.event_name == 'workflow_dispatch' && inputs.run_userfront_e2e_full == true }}
COVERAGE_RESULT: ${{ needs['front-vitest-coverage'].result }}
ADMINFRONT_COVERAGE_RESULT: ${{ needs['adminfront-vitest-coverage'].result }}
DEVFRONT_COVERAGE_RESULT: ${{ needs['devfront-vitest-coverage'].result }}
ORGFRONT_COVERAGE_RESULT: ${{ needs['orgfront-vitest-coverage'].result }}
ADMINFRONT_RESULT: ${{ needs['adminfront-tests'].result }}
DEVFRONT_RESULT: ${{ needs['devfront-tests'].result }}
ORGFRONT_RESULT: ${{ needs['orgfront-tests'].result }}

View File

@@ -63,9 +63,9 @@ jobs:
git cat-file -e "refs/remotes/origin/badges:dev/${target_sha}/badges.json" 2>/dev/null; then
full_message="$(
git show "refs/remotes/origin/badges:dev/${target_sha}/badges.json" |
node -e "let input=''; process.stdin.on('data', c => input += c); process.stdin.on('end', () => { const data = JSON.parse(input); process.stdout.write(data.badges?.['userfront-e2e-full']?.message || 'unknown'); });"
node -e "let input=''; process.stdin.on('data', c => input += c); process.stdin.on('end', () => { const data = JSON.parse(input); const keys = ['userfront-chrome', 'userfront-firefox', 'userfront-safari']; const messages = keys.map((key) => data.badges?.[key]?.message || 'unknown'); process.stdout.write(messages.join(',')); });"
)"
if [ -n "${full_message}" ] && [ "${full_message}" != "unknown" ]; then
if [ -n "${full_message}" ] && ! printf '%s' "${full_message}" | grep -q "unknown"; then
should_run="false"
reason="full-result-exists:${full_message}"
fi
@@ -85,6 +85,13 @@ jobs:
if: ${{ needs.lint.result == 'success' && needs.full-test-policy.outputs.should_run == 'true' }}
runs-on: ubuntu-latest
timeout-minutes: 80
outputs:
chromium_desktop: ${{ steps.full-results.outputs.chromium_desktop }}
chromium_mobile: ${{ steps.full-results.outputs.chromium_mobile }}
firefox_desktop: ${{ steps.full-results.outputs.firefox_desktop }}
firefox_mobile: ${{ steps.full-results.outputs.firefox_mobile }}
webkit_desktop: ${{ steps.full-results.outputs.webkit_desktop }}
webkit_mobile: ${{ steps.full-results.outputs.webkit_mobile }}
steps:
- name: Checkout code
uses: actions/checkout@v4
@@ -124,9 +131,44 @@ jobs:
npx playwright install --with-deps
- name: Run full userfront-e2e tests
id: full-results
run: |
mkdir -p reports
cd userfront-e2e
npm test
workers="${PLAYWRIGHT_WORKERS:-4}"
case "$workers" in
''|*[!0-9]*|0) workers=4 ;;
esac
any_failure=0
run_project() {
output_name="$1"
project_name="$2"
log_path="../reports/userfront-e2e-full-${project_name}.log"
set +e
echo "[userfront-e2e-full] PLAYWRIGHT_WORKERS=${workers} npx playwright test --project=${project_name}" | tee "$log_path"
PLAYWRIGHT_WORKERS="$workers" npx playwright test --project="$project_name" --reporter=list 2>&1 | tee -a "$log_path"
exit_code=${PIPESTATUS[0]}
set -e
if [ "$exit_code" -eq 0 ]; then
result="success"
else
result="failure"
any_failure=1
fi
echo "${output_name}=${result}" >> "$GITHUB_OUTPUT"
}
run_project chromium_desktop chromium-desktop
run_project chromium_mobile chromium-mobile-webapp
run_project firefox_desktop firefox-desktop
echo "firefox_mobile=skipped" >> "$GITHUB_OUTPUT"
run_project webkit_desktop webkit-desktop
run_project webkit_mobile webkit-mobile-webapp
exit "$any_failure"
- name: Upload userfront-e2e full artifacts
if: ${{ always() }}
@@ -135,6 +177,7 @@ jobs:
with:
name: userfront-e2e-full-report
path: |
reports/userfront-e2e-full-*.log
userfront-e2e/playwright-report
userfront-e2e/test-results
if-no-files-found: ignore
@@ -161,6 +204,12 @@ jobs:
env:
USERFRONT_E2E_RESULT: ${{ needs.userfront-e2e-full.result }}
USERFRONT_E2E_FULL: "true"
USERFRONT_E2E_CHROMIUM_DESKTOP_RESULT: ${{ needs.userfront-e2e-full.outputs.chromium_desktop }}
USERFRONT_E2E_CHROMIUM_MOBILE_RESULT: ${{ needs.userfront-e2e-full.outputs.chromium_mobile }}
USERFRONT_E2E_FIREFOX_DESKTOP_RESULT: ${{ needs.userfront-e2e-full.outputs.firefox_desktop }}
USERFRONT_E2E_FIREFOX_MOBILE_RESULT: ${{ needs.userfront-e2e-full.outputs.firefox_mobile }}
USERFRONT_E2E_WEBKIT_DESKTOP_RESULT: ${{ needs.userfront-e2e-full.outputs.webkit_desktop }}
USERFRONT_E2E_WEBKIT_MOBILE_RESULT: ${{ needs.userfront-e2e-full.outputs.webkit_mobile }}
BADGE_UPDATE_CODE_CHECK: "false"
BADGE_SOURCE_BRANCH: dev
BADGE_SOURCE_SHA: ${{ github.sha }}