@@ -666,154 +666,6 @@ jobs:
666666 python ${script} || exit 1
667667 done
668668
669- array-api-conformity :
670- needs : build_linux
671- runs-on : ${{ matrix.runner }}
672- timeout-minutes : 90
673- permissions :
674- pull-requests : write
675-
676- strategy :
677- matrix :
678- python : ['3.10']
679- experimental : [false]
680- runner : [ubuntu-22.04]
681- continue-on-error : ${{ matrix.experimental }}
682- steps :
683- - name : Construct channels line
684- run : |
685- echo "CHANNELS=-c ${{ env.INTEL_CHANNEL }} -c conda-forge --override-channels" >> $GITHUB_ENV
686- - name : Display channels line
687- run : |
688- echo ${{ env.CHANNELS }}
689- - name : Checkout dpctl repo
690- uses : actions/checkout@v6.0.2
691- with :
692- fetch-depth : 0
693- - name : Cache array API tests
694- id : cache-array-api-tests
695- uses : actions/cache@v5
696- env :
697- ARRAY_CACHE : 3
698- with :
699- path : |
700- /home/runner/work/array-api-tests/
701- key : ${{ runner.os }}-array-api-${{ env.cache-name }}-{{ env.ARRAY_CACHE }}-${{ hashFiles('/home/runner/work/array-api-tests/requirements.txt') }}
702- restore-keys : |
703- ${{ runner.os }}-build-${{ env.cache-name }}-
704- ${{ runner.os }}-build-
705- ${{ runner.os }}-
706- - name : Clone array API tests repo
707- if : steps.cache-array-api-tests.outputs.cache-hit != 'true'
708- shell : bash -l {0}
709- run : |
710- cd /home/runner/work
711- git clone --recurse-submodules https://github.com/data-apis/array-api-tests array-api-tests
712- cd array-api-tests
713- - name : Download artifact
714- uses : actions/download-artifact@v7
715- with :
716- name : ${{ env.PACKAGE_NAME }} ${{ runner.os }} Python ${{ matrix.python }}
717- - name : Add conda to system path
718- run : echo $CONDA/bin >> $GITHUB_PATH
719- - name : Install conda-index
720- # Needed to be able to run conda index
721- run : |
722- conda update -n base --all
723- conda install conda-index -c conda-forge --override-channels
724- - name : Create conda channel
725- run : |
726- mkdir -p $GITHUB_WORKSPACE/channel/linux-64
727- conda index $GITHUB_WORKSPACE/channel || exit 1
728- mv ${PACKAGE_NAME}-*.conda $GITHUB_WORKSPACE/channel/linux-64 || exit 1
729- conda index $GITHUB_WORKSPACE/channel || exit 1
730- # Test channel
731- conda search $PACKAGE_NAME -c $GITHUB_WORKSPACE/channel --override-channels --info --json > $GITHUB_WORKSPACE/ver.json
732- cat ver.json
733- - name : Collect dependencies
734- run : |
735- CHANNELS="-c $GITHUB_WORKSPACE/channel ${{ env.CHANNELS }}"
736- export PACKAGE_VERSION=$(python -c "${VER_SCRIPT1} ${VER_SCRIPT2}")
737- conda create -n ${{ env.TEST_ENV_NAME }} $PACKAGE_NAME=${PACKAGE_VERSION} python=${{ matrix.python }} $CHANNELS --only-deps --dry-run > lockfile
738- cat lockfile
739- - name : Set pkgs_dirs
740- run : |
741- echo "pkgs_dirs: [~/.conda/pkgs]" >> ~/.condarc
742- - name : Cache conda packages
743- uses : actions/cache@v5
744- env :
745- CACHE_NUMBER : 3 # Increase to reset cache
746- with :
747- path : ~/.conda/pkgs
748- key :
749- ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-${{hashFiles('lockfile') }}
750- restore-keys : |
751- ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-python-${{ matrix.python }}-
752- ${{ runner.os }}-conda-${{ env.CACHE_NUMBER }}-
753- - name : Install dpctl
754- run : |
755- CHANNELS="-c $GITHUB_WORKSPACE/channel ${{ env.CHANNELS }}"
756- export PACKAGE_VERSION=$(python -c "${VER_SCRIPT1} ${VER_SCRIPT2}")
757- conda create -n ${{ env.TEST_ENV_NAME }} $PACKAGE_NAME=${PACKAGE_VERSION} pytest python=${{ matrix.python }} $CHANNELS
758- # Test installed packages
759- conda list
760- - name : Install array API test dependencies
761- shell : bash -l {0}
762- run : |
763- . $CONDA/etc/profile.d/conda.sh
764- conda activate ${{ env.TEST_ENV_NAME }}
765- cd /home/runner/work/array-api-tests
766- pip install -r requirements.txt
767- - name : Install jq
768- shell : bash -l {0}
769- run : |
770- sudo apt-get install jq
771- - name : Run array API conformance tests
772- id : run-array-api-tests
773- shell : bash -l {0}
774- env :
775- ARRAY_API_TESTS_MODULE : ' dpctl.tensor'
776- ARRAY_API_TESTS_VERSION : ' 2024.12'
777- SYCL_CACHE_PERSISTENT : 1
778- run : |
779- FILE=/home/runner/work/.report.json
780- . $CONDA/etc/profile.d/conda.sh
781- conda activate ${{ env.TEST_ENV_NAME }}
782- cd /home/runner/work/array-api-tests
783- ${CONDA_PREFIX}/bin/python -c "import dpctl; dpctl.lsplatform()"
784- ${CONDA_PREFIX}/bin/python -m pytest --json-report --json-report-file=$FILE --disable-deadline --skips-file ${GITHUB_WORKSPACE}/.github/workflows/array-api-skips.txt array_api_tests/ || true
785- - name : Set Github environment variables
786- shell : bash -l {0}
787- run : |
788- export PACKAGE_VERSION=$(python -c "${VER_SCRIPT1} ${VER_SCRIPT2}")
789- FILE=/home/runner/work/.report.json
790- if test -f "$FILE"; then
791- PASSED_TESTS=$(jq '.summary | .passed // 0' $FILE)
792- FAILED_TESTS=$(jq '.summary | .failed // 0' $FILE)
793- SKIPPED_TESTS=$(jq '.summary | .skipped // 0' $FILE)
794- MESSAGE="Array API standard conformance tests for dpctl=$PACKAGE_VERSION ran successfully.
795- Passed: $PASSED_TESTS
796- Failed: $FAILED_TESTS
797- Skipped: $SKIPPED_TESTS"
798- echo "MESSAGE<<EOF" >> $GITHUB_ENV
799- echo "$MESSAGE" >> $GITHUB_ENV
800- echo "EOF" >> $GITHUB_ENV
801- else
802- echo "Array API standard conformance tests failed to run for dpctl=$PACKAGE_VERSION."
803- exit 1
804- fi
805- - name : Output API summary
806- shell : bash -l {0}
807- run : echo "::notice ${{ env.MESSAGE }}"
808- - name : Post result to PR
809- if : ${{ github.event.pull_request && !github.event.pull_request.head.repo.fork }}
810- uses : mshick/add-pr-comment@v2
811- with :
812- message : |
813- ${{ env.MESSAGE }}
814- allow-repeats : true
815- repo-token : ${{ secrets.GITHUB_TOKEN }}
816-
817669 cleanup_packages :
818670 name : Clean up anaconda packages
819671 needs : [upload_linux, upload_windows]
0 commit comments