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