name: Test pytorch binary description: 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 runs: using: composite steps: - name: Test PyTorch binary shell: bash run: | set -x # shellcheck disable=SC2086,SC2090 container_name=$(docker run \ ${GPU_FLAG:-} \ -e BINARY_ENV_FILE \ -e BUILDER_ROOT \ -e BUILD_ENVIRONMENT \ -e DESIRED_CUDA \ -e DESIRED_DEVTOOLSET \ -e DESIRED_PYTHON \ -e GITHUB_ACTIONS \ -e GPU_ARCH_TYPE \ -e GPU_ARCH_VERSION \ -e LIBTORCH_VARIANT \ -e PACKAGE_TYPE \ -e PYTORCH_FINAL_PACKAGE_DIR \ -e PYTORCH_ROOT \ -e SKIP_ALL_TESTS \ -e USE_SPLIT_BUILD \ --tty \ --detach \ -v "${GITHUB_WORKSPACE}/pytorch:/pytorch" \ -v "${GITHUB_WORKSPACE}/builder:/builder" \ -v "${RUNNER_TEMP}/artifacts:/final_pkgs" \ -w / \ "${DOCKER_IMAGE}" ) echo "CONTAINER_NAME=${container_name}" >> "$GITHUB_ENV" if [[ "${GPU_ARCH_TYPE}" != "rocm" && "${BUILD_ENVIRONMENT}" != "linux-aarch64-binary-manywheel" && "${BUILD_ENVIRONMENT}" != "linux-s390x-binary-manywheel" && "${GPU_ARCH_TYPE}" != "xpu" ]]; then # Propagate download.pytorch.org IP to container. This is only needed on Linux non aarch64 runner grep download.pytorch.org /etc/hosts | docker exec -i "${container_name}" bash -c "/bin/cat >> /etc/hosts" fi docker exec -t -w "${PYTORCH_ROOT}" "${container_name}" bash -c "bash .circleci/scripts/binary_populate_env.sh" # Generate test script docker exec -t -w "${PYTORCH_ROOT}" -e OUTPUT_SCRIPT="/run.sh" "${container_name}" bash -c "bash .circleci/scripts/binary_linux_test.sh" docker exec -t "${container_name}" bash -c "source ${BINARY_ENV_FILE} && bash -x /run.sh" - name: Cleanup docker if: always() && (env.BUILD_ENVIRONMENT == 'linux-s390x-binary-manywheel' || env.GPU_ARCH_TYPE == 'xpu') shell: bash run: | # on s390x or xpu stop the container for clean worker stop # shellcheck disable=SC2046 docker stop "${{ env.CONTAINER_NAME }}" || true