General PR slow CI #305
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |