# SPDX-FileCopyrightText: 2026 Matthias Andreas Benkard # SPDX-License-Identifier: AGPL-3.0-or-later # Selbsttätige Prüfung nach README § 17. Drei Läufe nebeneinander: # # 1. „pruefung“ — ./mvnw verify: Kompilat, sämtliche Tests (Akzeptanz- und # Korpuslauf eingeschlossen), Spotless und Enforcer. # 2. „browserfassung“ — der Wasm-Bau nach § 14 Abs. 5. Er braucht Oracle GraalVM, # nicht die Community Edition: Web Image ist nur dort enthalten. # 3. „lizenzauszeichnung“ — reuse lint nach § 16. # # Der Beispielkorpus (src/test/resources/sampledata) liegt im Repository; das # gewöhnliche checkout genügt, nachzuladen ist nichts. name: CI on: push: branches: [master] pull_request: workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true permissions: contents: read jobs: pruefung: name: Bau und Prüfung (JDK 25) runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Java einrichten uses: actions/setup-java@v4 with: distribution: temurin java-version: '25' cache: maven - name: mvnw verify run: ./mvnw --batch-mode --no-transfer-progress verify - name: Ausführbare Archivdatei aufbewahren uses: actions/upload-artifact@v4 with: name: aendggner-jar path: | target/aendggner-*.jar target/libs/ retention-days: 14 # Nur im Fehlerfall: sonst wäre bei jedem grünen Lauf ein Bericht abzulegen, # den niemand ansieht. - name: Testberichte im Fehlerfall aufbewahren if: failure() uses: actions/upload-artifact@v4 with: name: surefire-berichte path: target/surefire-reports/ retention-days: 14 browserfassung: name: Browserfassung (GraalVM Web Image) runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 # Binaryen liefert wasm-opt. Fehlt es, bleibt das Modul unnachoptimiert # (webpaket.sh warnt nur), und die Prüfung gegen die 25-MiB-Grenze von # Cloudflare Workers misst nicht das, was ausgeliefert würde. - name: Binaryen einrichten run: | sudo apt-get update sudo apt-get install -y binaryen - name: Oracle GraalVM einrichten uses: graalvm/setup-graalvm@v1 with: distribution: graalvm java-version: '25' cache: maven # Die Tests laufen im Job „pruefung“; hier geht es um den Übersetzungsweg # (native-image --tool:svm-wasm) und um deploy/webpaket.sh. - name: mvnw -Pwasm package run: ./mvnw --batch-mode --no-transfer-progress -Pwasm package -DskipTests - name: Webpaket aufbewahren uses: actions/upload-artifact@v4 with: name: aendggner-web path: target/web/ retention-days: 14 lizenzauszeichnung: name: Lizenzauszeichnung (REUSE) runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: fsfe/reuse-action@v5