S19: share workstation runner and move agent workflows to landscape

This commit is contained in:
2026-11-10 08:14:35 +01:00
parent c25ce11a1b
commit 46df72f008
40 changed files with 334 additions and 498 deletions

View File

@@ -35,6 +35,10 @@ class GeneratorTests(unittest.TestCase):
self.assertEqual('backend' in components, (project / 'backend/pom.xml').exists())
self.assertEqual('frontend' in components, (project / 'frontend/package.json').exists())
self.assertIn('test-runner', (project / '.gitea/workflows/build.yaml').read_text())
self.assertIn('RUNNER_SCOPE=user', (project / 'engineering.properties').read_text())
self.assertIn('.local/share/test-runner-runner', (project / 'ci/runner/runner.service').read_text())
self.assertIn('landscape', (project / 'AGENTS.md').read_text())
self.assertFalse((project / 'generated/skills').exists())
shutil.rmtree(project / 'generated')
result = subprocess.run(['mvn','-N','-B','-ntp','-Pregenerate-engineering','validate'], cwd=project,
text=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, timeout=180)
@@ -46,6 +50,17 @@ class GeneratorTests(unittest.TestCase):
subprocess.run(args, cwd=project / 'frontend', check=True, stdout=subprocess.DEVNULL)
self.assertTrue((project / 'frontend/dist/index.html').exists())
def test_cli_defaults_to_shared_mini_pc(self):
project = self.root / 'default-runner'
subprocess.run(['python3', str(self.source / 'create-project.py'), 'default-runner', str(project),
'--components', 'frontend', '--repository', str(self.source), '--version', 'v1.0.0'],
check=True, stdout=subprocess.DEVNULL)
self.assertIn('runs-on: mini-pc', (project / '.gitea/workflows/build.yaml').read_text())
self.assertIn('RUNNER_NAME=mini-pc', (project / 'engineering.properties').read_text())
self.assertIn('RUNNER_SCOPE=user', (project / 'engineering.properties').read_text())
self.assertIn('.config/mini-pc-runner/environment', (project / 'ci/runner/runner.service').read_text())
self.assertFalse((project / 'generated/skills').exists())
def test_generator_preserves_existing_destination(self):
project = self.root / 'already-exists'
project.mkdir()