name: Doctest job on: workflow_call: inputs: job_splits: required: true type: string split_keys: required: true type: string env: HF_HOME: /mnt/cache TRANSFORMERS_IS_CI: yes RUN_SLOW: yes OMP_NUM_THREADS: 16 MKL_NUM_THREADS: 16 TF_FORCE_GPU_ALLOW_GROWTH: true permissions: contents: read jobs: run_doctests: name: " " strategy: max-parallel: 8 # 8 jobs at a time fail-fast: false matrix: split_keys: ${{ fromJson(inputs.split_keys) }} runs-on: group: aws-g5-4xlarge-cache container: image: huggingface/transformers-all-latest-gpu options: --gpus all --shm-size "16gb" --ipc host -v /mnt/cache/.cache/huggingface:/mnt/cache/ steps: - name: Update clone working-directory: /transformers run: git fetch && git checkout ${{ github.sha }} - name: Reinstall transformers in edit mode (remove the one installed during docker image build) working-directory: /transformers run: python3 -m pip uninstall -y transformers && python3 -m pip install -e .[flax] - name: GPU visibility working-directory: /transformers run: | python3 utils/print_env.py - name: Show installed libraries and their versions run: pip freeze - name: Get doctest files working-directory: /transformers run: | echo "${{ toJson(fromJson(inputs.job_splits)[matrix.split_keys]) }}" > doc_tests.txt cat doc_tests.txt - name: Set `split_keys` shell: bash run: | echo "${MATRIX_SPLIT_KEYS}" split_keys=${MATRIX_SPLIT_KEYS} split_keys=${split_keys//'/'/'_'} echo "split_keys" echo "split_keys=$split_keys" >> $GITHUB_ENV env: MATRIX_SPLIT_KEYS: ${{ matrix.split_keys }} - name: Run doctests working-directory: /transformers run: | cat doc_tests.txt python3 -m pytest -v --make-reports "doc_tests_gpu_${split_keys}" --doctest-modules $(cat doc_tests.txt) -sv --doctest-continue-on-failure --doctest-glob="*.md" - name: Failure short reports if: ${{ failure() }} continue-on-error: true run: cat "/transformers/reports/doc_tests_gpu_${split_keys}/failures_short.txt" - name: "Test suite reports artifacts: doc_tests_gpu_test_reports_${{ env.split_keys }}" if: ${{ always() }} uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: doc_tests_gpu_test_reports_${{ env.split_keys }} path: /transformers/reports/doc_tests_gpu_${{ env.split_keys }}