name: Python Avatar

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]
  workflow_dispatch:
    branches: [main]

permissions:
  contents: read

jobs:
  test:
    name: Avatar [${{ matrix.shard }}]
    runs-on: ubuntu-latest
    strategy:
      matrix:
        shard: [
           1/24,  2/24,  3/24,  4/24,
           5/24,  6/24,  7/24,  8/24,
           9/24, 10/24, 11/24, 12/24,
          13/24, 14/24, 15/24, 16/24,
          17/24, 18/24, 19/24, 20/24,
          21/24, 22/24, 23/24, 24/24,
        ]
    steps:
      - uses: actions/checkout@v3
      - name: Set Up Python 3.11
        uses: actions/setup-python@v4
        with:
          python-version: 3.11
      - name: Install
        run: |
          python -m pip install --upgrade pip
          python -m pip install .[avatar]
      - name: Rootcanal
        run: nohup python -m rootcanal > rootcanal.log &
      - name: Test
        run: |
          avatar --list | grep -Ev '^=' > test-names.txt
          timeout 5m avatar --test-beds bumble.bumbles --tests $(split test-names.txt -n l/${{ matrix.shard }})
      - name: Rootcanal Logs
        if: always()
        run: cat rootcanal.log
      - name: Upload Mobly logs
        if: always()
        uses: actions/upload-artifact@v4
        with:
          name: mobly-logs-${{ strategy.job-index }}
          path: /tmp/logs/mobly/bumble.bumbles/
