WIP: Vendoo 1.44.0 – UX Foundation & Guided Workspaces #29
@@ -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
|
||||
Reference in New Issue
Block a user