• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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