Skip to content

General PR slow CI #305

General PR slow CI

General PR slow CI #305

name: PR slow CI
on:
pull_request:
env:
HF_HOME: /mnt/cache
TRANSFORMERS_IS_CI: yes
OMP_NUM_THREADS: 8
MKL_NUM_THREADS: 8
RUN_SLOW: yes
# For gated repositories, we still need to agree to share information on the Hub repo. page in order to get access.
# This token is created under the bot `hf-transformers-bot`.
HF_HUB_READ_TOKEN: ${{ secrets.HF_HUB_READ_TOKEN }}
SIGOPT_API_TOKEN: ${{ secrets.SIGOPT_API_TOKEN }}
TF_FORCE_GPU_ALLOW_GROWTH: true
RUN_PT_TF_CROSS_TESTS: 1
CUDA_VISIBLE_DEVICES: 0,1
jobs:
find_models_to_run:
runs-on: ubuntu-22.04
name: Find models to run slow tests
if: ${{ contains(github.event.pull_request.labels.*.name, 'run-slow') }}
outputs:
models: ${{ steps.models_to_run.outputs.models }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: "0"
ref: ${{ github.event.pull_request.head.sha }}
- name: Check if there is a new model
run: |
python -m pip install GitPython
echo "new_model=$(python utils/check_if_new_model_added.py | tail -n 1)" >> $GITHUB_ENV
- name: Check commit message
run: |
echo "${{ github.event.head_commit.message }}"
echo "commit_message=$(git show -s --format=%s)" >> $GITHUB_ENV
# TODO: get this value from the commit message
- name: Check if there are specified models
run: |
echo "models=$(python utils/check_if_new_model_added.py | tail -n 1)" >> $GITHUB_ENV
# TODO: combine the values
- name: Models to run slow CI
id: models_to_run
run: |
echo "${{ env.commit_message }}"
echo "${{ env.new_model }}"
echo "${{ env.models }}"
echo "models=${{ env.models }}" >> $GITHUB_OUTPUT
dummy:
runs-on: ubuntu-22.04
name: Check specified models to test 3333444444
needs: find_models_to_run
steps:
- name: Check if there are specified models
run: |
echo "${{ needs.find_models_to_run.outputs.models }}"
dummy2:
runs-on: ubuntu-22.04
name: Check specified models to test 3
needs: find_models_to_run
if: contains(fromJson(needs.find_models_to_run.outputs.models), 'dummy') != true
steps:
- name: Check if there are specified models
run: |
echo "${{ needs.find_models_to_run.outputs.models }}"
#
# run_models_gpu:
# name: Run all tests for the new model
# # Triggered if it is a new model PR and the required label is added
# if: ${{ needs.check_for_new_model.outputs.new_model != '' && contains(github.event.pull_request.labels.*.name, 'single-model-run-slow') }}
# needs: check_for_new_model
# strategy:
# fail-fast: false
# matrix:
# folders: ["${{ needs.check_for_new_model.outputs.new_model }}"]
# machine_type: [single-gpu, multi-gpu]
# runs-on: ['${{ matrix.machine_type }}', nvidia-gpu, t4, ci]
# container:
# image: huggingface/transformers-all-latest-gpu
# options: --gpus all --shm-size "16gb" --ipc host -v /mnt/cache/.cache/huggingface:/mnt/cache/
# steps:
# - name: Echo input and matrix info
# shell: bash
# run: |
# echo "${{ matrix.folders }}"
#
# - name: Echo folder ${{ matrix.folders }}
# shell: bash
# # For folders like `models/bert`, set an env. var. (`matrix_folders`) to `models_bert`, which will be used to
# # set the artifact folder names (because the character `/` is not allowed).
# run: |
# echo "${{ matrix.folders }}"
# matrix_folders=${{ matrix.folders }}
# matrix_folders=${matrix_folders/'models/'/'models_'}
# echo "$matrix_folders"
# echo "matrix_folders=$matrix_folders" >> $GITHUB_ENV
#
# - name: Update clone
# working-directory: /transformers
# run: git fetch && git fetch origin pull/${{ github.event.pull_request.number }}/head:pull/${{ github.event.pull_request.number }}/merge && git checkout pull/${{ github.event.pull_request.number }}/merge
#
# - 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 .
#
# - name: NVIDIA-SMI
# run: |
# nvidia-smi
#
# - name: Environment
# working-directory: /transformers
# run: |
# python3 utils/print_env.py
#
# - name: Show installed libraries and their versions
# working-directory: /transformers
# run: pip freeze
#
# - name: Run all tests on GPU
# working-directory: /transformers
# run: python3 -m pytest -v -rs --make-reports=${{ matrix.machine_type }}_run_models_gpu_${{ matrix.folders }}_test_reports tests/${{ matrix.folders }}
#
# - name: Failure short reports
# if: ${{ failure() }}
# continue-on-error: true
# run: cat /transformers/reports/${{ matrix.machine_type }}_run_models_gpu_${{ matrix.folders }}_test_reports/failures_short.txt
#
# - name: Make sure report directory exists
# shell: bash
# run: |
# mkdir -p /transformers/reports/${{ matrix.machine_type }}_run_models_gpu_${{ matrix.folders }}_test_reports
# echo "hello" > /transformers/reports/${{ matrix.machine_type }}_run_models_gpu_${{ matrix.folders }}_test_reports/hello.txt
# echo "${{ matrix.machine_type }}_run_models_gpu_${{ matrix.folders }}_test_reports"
#
# - name: "Test suite reports artifacts: ${{ matrix.machine_type }}_run_models_gpu_${{ env.matrix_folders }}_test_reports"
# if: ${{ always() }}
# uses: actions/upload-artifact@v4
# with:
# name: ${{ matrix.machine_type }}_run_models_gpu_${{ env.matrix_folders }}_test_reports
# path: /transformers/reports/${{ matrix.machine_type }}_run_models_gpu_${{ matrix.folders }}_test_reports