diff --git a/.github/workflows/test_openvino_full.yml b/.github/workflows/test_openvino_full.yml new file mode 100644 index 0000000000..914035b750 --- /dev/null +++ b/.github/workflows/test_openvino_full.yml @@ -0,0 +1,88 @@ +name: OpenVINO - Full Test + +on: + workflow_dispatch: + schedule: + - cron: "41 3 * * *" # run every day at 3:41 + push: + branches: + - v*-release + pull_request: + types: [opened, synchronize, reopened, labeled] + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + build: + if: ${{ (github.event_name == 'workflow_dispatch') || (github.event_name == 'schedule') || (github.event_name == 'push') || contains( github.event.pull_request.labels.*.name, 'openvino-test') }} + strategy: + fail-fast: false + matrix: + include: + - python-version: "3.9" + os: "ubuntu-22.04" + transformers-version: "latest" + openvino: "ov-stable" + nncf: "nncf-stable" + - python-version: "3.9" + os: "ubuntu-22.04" + transformers-version: "latest" + openvino: "ov-nightly" + nncf: "nncf-stable" + - python-version: "3.9" + os: "ubuntu-22.04" + transformers-version: "latest" + openvino: "ov-stable" + nncf: "nncf-develop" + - python-version: "3.9" + os: "ubuntu-22.04" + transformers-version: "latest" + openvino: "ov-nightly" + nncf: "nncf-develop" + + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v4 + - name: Setup Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + # Install PyTorch CPU to prevent unnecessary downloading/installing of CUDA packages + pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu + pip install .[tests] + + - name: Install openvino-nightly + if: ${{ matrix.openvino == 'ov-nightly' }} + run: pip install --pre -U openvino openvino-tokenizers --extra-index-url https://storage.openvinotoolkit.org/simple/wheels/nightly + + - name: Install openvino release + if: ${{ matrix.openvino == 'ov-stable' }} + run: pip install .[openvino] + + - name: Install nncf develop + if: ${{ matrix.nncf == 'nncf-develop' }} + run: pip install git+https://github.com/openvinotoolkit/nncf.git + + - name: Install nncf release + if: ${{ matrix.nncf == 'nncf-stable' }} + run: pip install .[nncf] + + - name: Install the lowest compatible transformers version + if: ${{ matrix.transformers-version != 'latest' }} + run: pip install transformers==${{ matrix.transformers-version }} + + - name: Pip freeze + run: pip freeze + + - name: OpenVINO tests + run: pytest tests/openvino --durations=0 + env: + RUN_SLOW: 1 + HF_HUB_READ_TOKEN: ${{ secrets.HF_HUB_READ_TOKEN }} diff --git a/.github/workflows/test_openvino_slow.yml b/.github/workflows/test_openvino_slow.yml index bf52413a7d..6f9c6167c4 100644 --- a/.github/workflows/test_openvino_slow.yml +++ b/.github/workflows/test_openvino_slow.yml @@ -25,9 +25,7 @@ jobs: fail-fast: false matrix: os: ["ubuntu-22.04", "windows-2019"] - openvino-version: ["stable", "nightly"] transformers-version: ["4.36.0", "latest"] - nncf: ["nncf", "git+https://github.com/openvinotoolkit/nncf.git"] runs-on: ${{ matrix.os }} @@ -47,11 +45,6 @@ jobs: pip install .[openvino,tests] transformers[testing] pip uninstall -y nncf - - if: ${{ matrix.openvino-version == 'nightly' }} - name: Install nightly OpenVINO - run: | - pip install openvino openvino-tokenizers --pre --upgrade --extra-index-url https://storage.openvinotoolkit.org/simple/wheels/nightly - - if: ${{ matrix.transformers-version != 'latest' }} name: Downgrade Transformers and Accelerate run: pip install transformers==${{ matrix.transformers-version }} accelerate==0.* @@ -65,7 +58,11 @@ jobs: - name: Install dependencies (slow) run: | - pip install ${{ matrix.nncf }} + pip install .[nncf] + + - if: ${{ matrix.transformers-version != 'latest' }} + name: Downgrade Transformers and Accelerate + run: pip install transformers==${{ matrix.transformers-version }} accelerate==0.* - name: Test with Pytest (slow) run: |