name: UI Build on: push: branches: - master paths: - 'ui/**' pull_request: paths: - 'ui/**' workflow_dispatch: jobs: build-ui: runs-on: ubuntu-latest permissions: contents: write pull-requests: write steps: - uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.ref }} repository: ${{ github.event.pull_request.head.repo.full_name }} token: ${{ secrets.GITHUB_TOKEN }} - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '18' cache: 'npm' cache-dependency-path: ui/package-lock.json - name: Install Dependencies working-directory: ui run: npm ci - name: Build UI working-directory: ui run: npm run build - name: Commit changes to PR if: github.event_name == 'pull_request' run: | git config --global user.name 'github-actions[bot]' git config --global user.email 'github-actions[bot]@users.noreply.github.com' git add src/ui_*.h git status --porcelain && git commit -m "chore: update UI build outputs" && git push || echo "No changes to commit" - name: Create Pull Request if: github.event_name != 'pull_request' uses: peter-evans/create-pull-request@v7 with: commit-message: 'chore: update UI build outputs' title: 'Update UI build outputs' body: | This PR updates the UI build outputs (header files) based on changes in the UI source code. Changes were automatically generated by the UI build workflow. branch: update-ui-build delete-branch: true base: master add-paths: | src/ui_*.h labels: | automated pr ui