Repository navigation
readme: a shot and a line for every widget #85
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| # a dropped push webhook leaves no run to re-run; this makes a missing one replayable by hand | |
| workflow_dispatch: | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: actions/setup-java@v5 | |
| with: | |
| distribution: temurin | |
| java-version: 21 | |
| cache: maven | |
| - uses: actions/setup-node@v5 | |
| with: | |
| node-version: 24 | |
| cache: npm | |
| cache-dependency-path: web/package-lock.json | |
| # the only place the linter and the unit suite run at all | |
| - name: Check the frontend | |
| working-directory: web | |
| run: | | |
| npm ci | |
| npm run check | |
| - name: Build add-on | |
| run: ./mvnw -B -ntp clean install | |
| # a jar whose frontend failed to pack still installs, and then serves nothing at all | |
| - name: Check the jar is complete | |
| run: | | |
| jar="$(ls target/org.openhab.ui.neohab-*.jar)" | |
| if ! unzip -l "$jar" | grep -q 'web/index.html'; then | |
| echo '::error::the built jar contains no frontend' | |
| exit 1 | |
| fi | |
| if ! unzip -p "$jar" META-INF/MANIFEST.MF | grep -q 'Bundle-SymbolicName: org.openhab.ui.neohab'; then | |
| echo '::error::the built jar is not the neohab OSGi bundle' | |
| exit 1 | |
| fi | |
| echo "$(basename "$jar") ($(du -h "$jar" | cut -f1))" >> "$GITHUB_STEP_SUMMARY" | |
| - name: Upload add-on jar | |
| uses: actions/upload-artifact@v5 | |
| with: | |
| name: neohab-addon | |
| path: target/org.openhab.ui.neohab-*.jar | |
| if-no-files-found: error |