# This is a copy of queue-main.yml, but with a different branch pattern.
# It does not push the result anywhere; it logs instead.
# It is meant for people changing how the commit queue works:
# You can hack on the workflows, push to queue-dev-$USER, and iterate.
# Please keep this file in sync with queue-main.yml.

name: Dev Commit Queue
on:
  push:
    branches:
      - "queue-dev-*"

permissions: read-all

jobs:
  formatting:
    uses: ./.github/workflows/formatting.yml
    permissions:
      contents: write
    with:
      auto_fix: true

  go-test:
    needs: [formatting]
    uses: ./.github/workflows/go_test.yml
    permissions: read-all
    with:
      ref: ${{ needs.formatting.outputs.commit_sha }}

  ui-test:
    needs: [formatting]
    uses: ./.github/workflows/webui_test.yml
    permissions: read-all
    with:
      ref: ${{ needs.formatting.outputs.commit_sha }}

  push-to-main:
    runs-on: ubuntu-latest
    needs: [go-test, ui-test, formatting]
    permissions:
      contents: write
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Push to main
        run: |
          COMMIT_TO_PUSH="HEAD"
          if [[ "${{ needs.formatting.outputs.commit_sha }}" != "" ]]; then
            echo "Using formatted commit: ${{ needs.formatting.outputs.commit_sha }}"
            COMMIT_TO_PUSH="${{ needs.formatting.outputs.commit_sha }}"
          fi

          echo "Would push to main: ${COMMIT_TO_PUSH}"
        env:
          GITHUB_TOKEN: ${{ github.token }}
