name: 'Reusable Test Runner | RAG + CoT | Generic' on: workflow_call: inputs: batch_offset: description: 'Starting prompt index offset' required: true type: number range_name: description: 'Human readable range name (e.g., "1-20")' required: true type: string test_file_path: description: 'Path to the test file to run' required: true type: string model_display_name: description: 'Human readable model name for workflow title' required: true type: string batch_size: description: 'Number of prompts per batch' required: false type: number default: 2 jobs: test: runs-on: ubuntu-latest timeout-minutes: 55 # Set max runtime for each job continue-on-error: true strategy: # Always 10 batches per workflow matrix: batch: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] fail-fast: false steps: - name: 'checkout' uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - name: 'set up Python' uses: actions/setup-python@v3 with: python-version: '3.12' - name: 'set up Python dependencies' shell: bash run: pip install -r ${{ github.workspace }}/requirements.txt - name: 'run text generation tests - ${{ inputs.model_display_name }} - range ${{ inputs.range_name }} batch ${{ matrix.batch }}' shell: bash env: HF_TOKEN: ${{ secrets.HF_TOKEN }} PROMPT_BATCH: ${{ matrix.batch }} BATCH_SIZE: ${{ inputs.batch_size }} BATCH_OFFSET: ${{ inputs.batch_offset }} run: pytest ${{ inputs.test_file_path }} -s --disable-warnings - name: Check for changes id: verify-changed-files run: | if [ -n "$(git status --porcelain)" ]; then echo "changed=true" >> $GITHUB_OUTPUT else echo "changed=false" >> $GITHUB_OUTPUT fi - name: Commit and push changes if: steps.verify-changed-files.outputs.changed == 'true' run: | git config --local user.email "42450907+lightbroker@users.noreply.github.com" git config --local user.name "Adam Wilson" git add . git add . git commit -m "Auto-generated files from microsoft/Phi-3-mini-4k-instruct range 1-20 batch 4 [skip ci]" git checkout -b auto-generated-$(date +%Y%m%d-%H%M%S) git push origin HEAD