1name: Test pytorch binary 2 3description: Pulls the docker image and tests the pytorch binary using it. All env variable referenced in the "Test PyTorch binary" step must be set in the GITHUB_ENV file 4 5runs: 6 using: composite 7 steps: 8 - name: Test PyTorch binary 9 shell: bash 10 run: | 11 set -x 12 # shellcheck disable=SC2086,SC2090 13 container_name=$(docker run \ 14 ${GPU_FLAG:-} \ 15 -e BINARY_ENV_FILE \ 16 -e BUILDER_ROOT \ 17 -e BUILD_ENVIRONMENT \ 18 -e DESIRED_CUDA \ 19 -e DESIRED_DEVTOOLSET \ 20 -e DESIRED_PYTHON \ 21 -e GITHUB_ACTIONS \ 22 -e GPU_ARCH_TYPE \ 23 -e GPU_ARCH_VERSION \ 24 -e LIBTORCH_VARIANT \ 25 -e PACKAGE_TYPE \ 26 -e PYTORCH_FINAL_PACKAGE_DIR \ 27 -e PYTORCH_ROOT \ 28 -e SKIP_ALL_TESTS \ 29 -e USE_SPLIT_BUILD \ 30 --tty \ 31 --detach \ 32 -v "${GITHUB_WORKSPACE}/pytorch:/pytorch" \ 33 -v "${GITHUB_WORKSPACE}/builder:/builder" \ 34 -v "${RUNNER_TEMP}/artifacts:/final_pkgs" \ 35 -w / \ 36 "${DOCKER_IMAGE}" 37 ) 38 39 echo "CONTAINER_NAME=${container_name}" >> "$GITHUB_ENV" 40 if [[ "${GPU_ARCH_TYPE}" != "rocm" && "${BUILD_ENVIRONMENT}" != "linux-aarch64-binary-manywheel" && "${BUILD_ENVIRONMENT}" != "linux-s390x-binary-manywheel" && "${GPU_ARCH_TYPE}" != "xpu" ]]; then 41 # Propagate download.pytorch.org IP to container. This is only needed on Linux non aarch64 runner 42 grep download.pytorch.org /etc/hosts | docker exec -i "${container_name}" bash -c "/bin/cat >> /etc/hosts" 43 fi 44 45 docker exec -t -w "${PYTORCH_ROOT}" "${container_name}" bash -c "bash .circleci/scripts/binary_populate_env.sh" 46 # Generate test script 47 docker exec -t -w "${PYTORCH_ROOT}" -e OUTPUT_SCRIPT="/run.sh" "${container_name}" bash -c "bash .circleci/scripts/binary_linux_test.sh" 48 docker exec -t "${container_name}" bash -c "source ${BINARY_ENV_FILE} && bash -x /run.sh" 49 50 - name: Cleanup docker 51 if: always() && (env.BUILD_ENVIRONMENT == 'linux-s390x-binary-manywheel' || env.GPU_ARCH_TYPE == 'xpu') 52 shell: bash 53 run: | 54 # on s390x or xpu stop the container for clean worker stop 55 # shellcheck disable=SC2046 56 docker stop "${{ env.CONTAINER_NAME }}" || true 57