name: Main Confidence

on:
  push:
    branches:
      - dev

permissions:
  actions: read
  contents: read

jobs:
  confidence:
    runs-on: ubuntu-latest
    env:
      SAIL_TTY: 'false'

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Set up PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: '8.4'
          coverage: none
          tools: composer:v2

      - name: Install platform dependencies
        run: |
          cd apps/platform
          if [[ ! -f .env ]]; then
            cp .env.example .env
          fi
          composer install --no-interaction --prefer-dist --optimize-autoloader

      - name: Boot Sail
        run: |
          cd apps/platform
          ./vendor/bin/sail up -d
          ./vendor/bin/sail artisan key:generate --force --no-interaction

      - name: Run Confidence lane
        run: ./scripts/platform-test-lane confidence --workflow-id=main-confidence --trigger-class=mainline-push

      - name: Refresh Confidence report
        if: always()
        env:
          TENANTATLAS_GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
        run: ./scripts/platform-test-report confidence --workflow-id=main-confidence --trigger-class=mainline-push --fetch-latest-history

      - name: Stage Confidence artifacts
        if: always()
        run: ./scripts/platform-test-artifacts confidence .gitea-artifacts/main-confidence --workflow-id=main-confidence --trigger-class=mainline-push

      - name: Upload Confidence artifacts
        if: always()
        uses: actions/upload-artifact@v4
        with:
          name: confidence-artifacts
          path: .gitea-artifacts/main-confidence
          if-no-files-found: error

      - name: Stop Sail
        if: always()
        run: |
          cd apps/platform
          ./vendor/bin/sail stop
