Update contributing docs to point to Maestro and reflect direct push … #12
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: Build and Push Kit Changes | |
| on: | |
| push: | |
| branches: | |
| - main | |
| permissions: | |
| contents: read | |
| pull-requests: read | |
| jobs: | |
| build: | |
| name: Build ${{ matrix.name }} | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| # Livewire variants | |
| - name: Livewire Kit (Blank) | |
| kit: Livewire | |
| build_flags: '--blank' | |
| repository: laravel/blank-livewire-starter-kit | |
| path: blank-livewire-starter-kit | |
| branch: main | |
| node: false | |
| - name: Livewire Kit | |
| kit: Livewire | |
| build_flags: '' | |
| repository: laravel/livewire-starter-kit | |
| path: livewire-starter-kit | |
| branch: main | |
| node: false | |
| - name: Livewire Kit (Components) | |
| kit: Livewire | |
| build_flags: '--components' | |
| repository: laravel/livewire-starter-kit | |
| path: livewire-starter-kit-components | |
| branch: components | |
| node: false | |
| - name: Livewire Kit (WorkOS) | |
| kit: Livewire | |
| build_flags: '--workos' | |
| repository: laravel/livewire-starter-kit | |
| path: livewire-starter-kit-workos | |
| branch: workos | |
| node: false | |
| - name: Livewire Kit (Teams) | |
| kit: Livewire | |
| build_flags: '--teams' | |
| repository: laravel/livewire-starter-kit | |
| path: livewire-starter-kit-teams | |
| branch: teams | |
| node: false | |
| - name: Livewire Kit (WorkOS Teams) | |
| kit: Livewire | |
| build_flags: '--teams --workos' | |
| repository: laravel/livewire-starter-kit | |
| path: livewire-starter-kit-workos-teams | |
| branch: workos-teams | |
| node: false | |
| # React variants | |
| - name: React Kit (Blank) | |
| kit: React | |
| build_flags: '--blank' | |
| repository: laravel/blank-react-starter-kit | |
| path: blank-react-starter-kit | |
| branch: main | |
| node: true | |
| - name: React Kit | |
| kit: React | |
| build_flags: '' | |
| repository: laravel/react-starter-kit | |
| path: react-starter-kit | |
| branch: main | |
| node: true | |
| - name: React Kit (WorkOS) | |
| kit: React | |
| build_flags: '--workos' | |
| repository: laravel/react-starter-kit | |
| path: react-starter-kit-workos | |
| branch: workos | |
| node: true | |
| - name: React Kit (Teams) | |
| kit: React | |
| build_flags: '--teams' | |
| repository: laravel/react-starter-kit | |
| path: react-starter-kit-teams | |
| branch: teams | |
| node: true | |
| - name: React Kit (WorkOS Teams) | |
| kit: React | |
| build_flags: '--teams --workos' | |
| repository: laravel/react-starter-kit | |
| path: react-starter-kit-workos-teams | |
| branch: workos-teams | |
| node: true | |
| # Svelte variants | |
| - name: Svelte Kit (Blank) | |
| kit: Svelte | |
| build_flags: '--blank' | |
| repository: laravel/blank-svelte-starter-kit | |
| path: blank-svelte-starter-kit | |
| branch: main | |
| node: true | |
| - name: Svelte Kit | |
| kit: Svelte | |
| build_flags: '' | |
| repository: laravel/svelte-starter-kit | |
| path: svelte-starter-kit | |
| branch: main | |
| node: true | |
| - name: Svelte Kit (WorkOS) | |
| kit: Svelte | |
| build_flags: '--workos' | |
| repository: laravel/svelte-starter-kit | |
| path: svelte-starter-kit-workos | |
| branch: workos | |
| node: true | |
| - name: Svelte Kit (Teams) | |
| kit: Svelte | |
| build_flags: '--teams' | |
| repository: laravel/svelte-starter-kit | |
| path: svelte-starter-kit-teams | |
| branch: teams | |
| node: true | |
| - name: Svelte Kit (WorkOS Teams) | |
| kit: Svelte | |
| build_flags: '--teams --workos' | |
| repository: laravel/svelte-starter-kit | |
| path: svelte-starter-kit-workos-teams | |
| branch: workos-teams | |
| node: true | |
| # Vue variants | |
| - name: Vue Kit (Blank) | |
| kit: Vue | |
| build_flags: '--blank' | |
| repository: laravel/blank-vue-starter-kit | |
| path: blank-vue-starter-kit | |
| branch: main | |
| node: true | |
| - name: Vue Kit | |
| kit: Vue | |
| build_flags: '' | |
| repository: laravel/vue-starter-kit | |
| path: vue-starter-kit | |
| branch: main | |
| node: true | |
| - name: Vue Kit (WorkOS) | |
| kit: Vue | |
| build_flags: '--workos' | |
| repository: laravel/vue-starter-kit | |
| path: vue-starter-kit-workos | |
| branch: workos | |
| node: true | |
| - name: Vue Kit (Teams) | |
| kit: Vue | |
| build_flags: '--teams' | |
| repository: laravel/vue-starter-kit | |
| path: vue-starter-kit-teams | |
| branch: teams | |
| node: true | |
| - name: Vue Kit (WorkOS Teams) | |
| kit: Vue | |
| build_flags: '--workos --teams' | |
| repository: laravel/vue-starter-kit | |
| path: vue-starter-kit-workos-teams | |
| branch: workos-teams | |
| node: true | |
| steps: | |
| - name: Checkout Maestro | |
| uses: actions/checkout@v6 | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: '8.4' | |
| extensions: mbstring, xml, ctype, json, curl | |
| - name: Setup Node.js | |
| if: matrix.node | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: '22' | |
| - name: Install Composer Dependencies | |
| working-directory: orchestrator | |
| run: composer install --no-interaction --prefer-dist | |
| - name: Build ${{ matrix.name }} | |
| working-directory: orchestrator | |
| run: php artisan build --kit=${{ matrix.kit }} ${{ matrix.build_flags }} | |
| - name: Checkout Starter Kit | |
| uses: actions/checkout@v6 | |
| with: | |
| repository: ${{ matrix.repository }} | |
| ref: ${{ matrix.branch }} | |
| path: ${{ matrix.path }} | |
| token: ${{ secrets.STARTER_KIT_TOKEN }} | |
| - name: Copy Build to Starter Kit | |
| working-directory: ${{ matrix.path }} | |
| run: | | |
| find . -mindepth 1 -maxdepth 1 ! -name '.git' -exec rm -rf {} + | |
| cp -r ../build/* . | |
| cp -r ../build/.[!.]* . 2>/dev/null || true | |
| - name: Remove Lock Files | |
| working-directory: ${{ matrix.path }} | |
| run: rm -f composer.lock package-lock.json | |
| - name: Discard Permission-Only Changes | |
| working-directory: ${{ matrix.path }} | |
| run: | | |
| git diff --diff-filter=M --name-only | while read file; do | |
| if git diff "$file" | grep -q '^diff --git' && \ | |
| ! git diff "$file" | grep -qE '^(\+([^+]|$)|-([^-]|$))'; then | |
| git checkout -- "$file" | |
| fi | |
| done | |
| - name: Check for Changes | |
| id: changes | |
| working-directory: ${{ matrix.path }} | |
| run: | | |
| if [[ -n "$(git status --porcelain)" ]]; then | |
| echo "has_changes=true" >> $GITHUB_OUTPUT | |
| else | |
| echo "has_changes=false" >> $GITHUB_OUTPUT | |
| echo "No changes detected, skipping push." | |
| fi | |
| - name: Get Merged PR Information | |
| if: steps.changes.outputs.has_changes == 'true' | |
| id: pr-info | |
| uses: actions/github-script@v8 | |
| with: | |
| script: | | |
| const script = require('./.github/scripts/get-merged-pr-info.js'); | |
| await script({ github, context, core }); | |
| - name: Commit and Push Changes | |
| if: steps.changes.outputs.has_changes == 'true' | |
| working-directory: ${{ matrix.path }} | |
| run: | | |
| git config user.name "github-actions[bot]" | |
| git config user.email "41898282+github-actions[bot]@users.noreply.github.com" | |
| git add -A | |
| COMMIT_MSG="${{ steps.pr-info.outputs.title }}" | |
| TRAILERS="" | |
| if [[ "${{ steps.pr-info.outputs.found }}" == "true" ]]; then | |
| TRAILERS="Co-authored-by: ${{ steps.pr-info.outputs.author }} <${{ steps.pr-info.outputs.author_email }}>" | |
| fi | |
| CO_AUTHORS="${{ steps.pr-info.outputs.co_authors }}" | |
| if [[ -n "$CO_AUTHORS" ]]; then | |
| if [[ -n "$TRAILERS" ]]; then | |
| TRAILERS="$TRAILERS | |
| $CO_AUTHORS" | |
| else | |
| TRAILERS="$CO_AUTHORS" | |
| fi | |
| fi | |
| if [[ -n "$TRAILERS" ]]; then | |
| git commit -m "$COMMIT_MSG" -m "$TRAILERS" | |
| else | |
| git commit -m "$COMMIT_MSG" | |
| fi | |
| git push origin ${{ matrix.branch }} |