WIP: Vendoo 1.44.0 – UX Foundation & Guided Workspaces #29

Draft
Masterluke77 wants to merge 284 commits from release/1.44.0-ux-foundation-production-update-v1 into main
Showing only changes of commit d533a66079 - Show all commits
@@ -0,0 +1,85 @@
name: Apply Vendoo UX Foundation 1.44.0
on:
pull_request:
branches: [main]
workflow_dispatch:
permissions:
contents: write
concurrency:
group: vendoo-ux-foundation-1-44-${{ github.event.pull_request.head.ref || github.ref_name }}
cancel-in-progress: false
jobs:
apply:
if: github.event_name == 'workflow_dispatch' || github.event.pull_request.head.ref == 'release/1.44.0-ux-foundation-production-update-v1'
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: UX-Branch auschecken
uses: actions/checkout@v6
with:
ref: release/1.44.0-ux-foundation-production-update-v1
fetch-depth: 0
- name: Node.js 22 aktivieren
uses: actions/setup-node@v4
with:
node-version: '22.x'
- name: UX-Assets sicher in die Shell einbinden
shell: python
run: |
from pathlib import Path
path = Path('public/index.html')
text = path.read_text(encoding='utf-8')
css = ' <link rel="stylesheet" href="ux-foundation.css?v=1.44.0">\n'
js = ' <script src="ux-foundation.js?v=1.44.0"></script>\n'
css_anchor = ' <link rel="stylesheet" href="style.css?v=1.43.0">\n'
js_anchor = ' <script src="app.js?v=1.43.0"></script>\n'
if css not in text:
if text.count(css_anchor) != 1:
raise SystemExit('CSS-Anker ist nicht eindeutig.')
text = text.replace(css_anchor, css_anchor + css, 1)
if js not in text:
if text.count(js_anchor) != 1:
raise SystemExit('JS-Anker ist nicht eindeutig.')
text = text.replace(js_anchor, js_anchor + js, 1)
path.write_text(text, encoding='utf-8', newline='\n')
- name: UX-Abnahme in den vollständigen Releasevertrag aufnehmen
shell: node
run: |
const fs = require('node:fs');
const path = 'package.json';
const pkg = JSON.parse(fs.readFileSync(path, 'utf8'));
pkg.scripts['verify:ux-foundation'] = 'node tools/verify-ux-foundation-1.44.0.mjs';
if (!pkg.scripts['verify:all'].includes('verify:ux-foundation')) {
const anchor = 'npm run verify:architecture';
if (!pkg.scripts['verify:all'].includes(anchor)) throw new Error('verify:all-Anker fehlt.');
pkg.scripts['verify:all'] = pkg.scripts['verify:all'].replace(anchor, `${anchor} && npm run verify:ux-foundation`);
}
fs.writeFileSync(path, `${JSON.stringify(pkg, null, 2)}\n`);
- name: UX-Vertrag prüfen
run: node tools/verify-ux-foundation-1.44.0.mjs
- name: Release-Manifest aktualisieren
run: node tools/generate-release-manifest.mjs .
- name: Shell-Integration committen
shell: bash
run: |
set -euo pipefail
git diff --check
git config user.name 'vendoo-ux-build'
git config user.email 'vendoo-ux-build@users.noreply.github.com'
git add public/index.html package.json release-manifest.json
if git diff --cached --quiet; then
echo 'UX-Foundation ist bereits vollständig eingebunden.'
exit 0
fi
git commit -m 'feat: integrate UX foundation into Vendoo shell'
git push origin HEAD:release/1.44.0-ux-foundation-production-update-v1