From 9400ddbecae3a5e93613b26fb3ed0ede64f768d1 Mon Sep 17 00:00:00 2001 From: Andrey Talman Date: Thu, 16 Nov 2023 11:51:57 -0500 Subject: [PATCH] test (#1600) * test * test --- .../validate-aarch64-linux-binaries.yml | 18 +++++++++++++++-- .github/workflows/validate-binaries.yml | 11 ++++++++++ .github/workflows/validate-linux-binaries.yml | 15 ++++++++++++-- .../validate-macos-arm64-binaries.yml | 18 ++++++++++++++++- .github/workflows/validate-macos-binaries.yml | 18 ++++++++++++++++- .../workflows/validate-windows-binaries.yml | 20 ++++++++++++++++--- test/smoke_test/smoke_test.py | 19 ++++++++++++------ 7 files changed, 104 insertions(+), 15 deletions(-) diff --git a/.github/workflows/validate-aarch64-linux-binaries.yml b/.github/workflows/validate-aarch64-linux-binaries.yml index d3e57fd5c..8abf865f5 100644 --- a/.github/workflows/validate-aarch64-linux-binaries.yml +++ b/.github/workflows/validate-aarch64-linux-binaries.yml @@ -17,6 +17,11 @@ on: default: false required: false type: boolean + version: + description: 'Version to validate - optional' + default: "" + required: false + type: string workflow_dispatch: inputs: channel: @@ -38,6 +43,11 @@ on: default: false required: false type: boolean + version: + description: 'Version to validate - optional' + default: "" + required: false + type: string jobs: generate-aarch64-linux-matrix: @@ -46,8 +56,10 @@ jobs: package-type: wheel os: linux-aarch64 channel: ${{ inputs.channel }} - with-cuda: disable - + generate-release-matrix: + uses: pytorch/test-infra/.github/workflows/generate_release_matrix.yml@main + with: + version: ${{ inputs.version }} linux-aarch64: needs: generate-aarch64-linux-matrix strategy: @@ -72,6 +84,8 @@ jobs: export ENV_NAME="conda-env-${{ github.run_id }}" export TARGET_OS="linux-aarch64" export TORCH_ONLY=${{ inputs.torchonly }} + export RELEASE_VERSION=${{ inputs.version }} + printf '%s\n' ${{ toJson(needs.generate-release-matrix.outputs.matrix) }} > release_matrix.json eval "$(conda shell.bash hook)" # Standart case: Validate binaries diff --git a/.github/workflows/validate-binaries.yml b/.github/workflows/validate-binaries.yml index 9c877f4ed..e122f7e57 100644 --- a/.github/workflows/validate-binaries.yml +++ b/.github/workflows/validate-binaries.yml @@ -60,6 +60,12 @@ on: default: false required: false type: boolean + version: + description: 'Version to validate - optional' + default: "" + required: false + type: string + jobs: win: @@ -69,6 +75,7 @@ jobs: channel: ${{ inputs.channel }} ref: ${{ inputs.ref || github.ref }} torchonly: ${{ inputs.torchonly }} + version: ${{ inputs.version }} linux: if: inputs.os == 'linux' || inputs.os == 'all' @@ -77,6 +84,7 @@ jobs: channel: ${{ inputs.channel }} ref: ${{ inputs.ref || github.ref }} torchonly: ${{ inputs.torchonly }} + version: ${{ inputs.version }} linux-aarch64: if: inputs.os == 'linux-aarch64' @@ -85,6 +93,7 @@ jobs: channel: ${{ inputs.channel }} ref: ${{ inputs.ref || github.ref }} torchonly: ${{ inputs.torchonly }} + version: ${{ inputs.version }} mac: if: inputs.os == 'macos' || inputs.os == 'all' @@ -93,6 +102,7 @@ jobs: channel: ${{ inputs.channel }} ref: ${{ inputs.ref || github.ref }} torchonly: ${{ inputs.torchonly }} + version: ${{ inputs.version }} mac-arm64: if: inputs.os == 'macos' || inputs.os == 'all' @@ -101,3 +111,4 @@ jobs: channel: ${{ inputs.channel }} ref: ${{ inputs.ref || github.ref }} torchonly: ${{ inputs.torchonly }} + version: ${{ inputs.version }} diff --git a/.github/workflows/validate-linux-binaries.yml b/.github/workflows/validate-linux-binaries.yml index 5e1a00698..9078fbb26 100644 --- a/.github/workflows/validate-linux-binaries.yml +++ b/.github/workflows/validate-linux-binaries.yml @@ -17,6 +17,11 @@ on: default: false required: false type: boolean + version: + description: 'Version to validate - optional' + default: "" + required: false + type: string workflow_dispatch: inputs: channel: @@ -38,6 +43,12 @@ on: default: false required: false type: boolean + version: + description: 'Version to validate - optional' + default: "" + required: false + type: string + jobs: generate-linux-matrix: @@ -47,10 +58,9 @@ jobs: os: linux channel: ${{ inputs.channel }} generate-release-matrix: - needs: generate-linux-matrix uses: pytorch/test-infra/.github/workflows/generate_release_matrix.yml@main with: - version: "2.1.1" + version: ${{ inputs.version }} linux: needs: [generate-linux-matrix, generate-release-matrix] @@ -69,6 +79,7 @@ jobs: set -ex export ENV_NAME="conda-env-${{ github.run_id }}" export TORCH_ONLY=${{ inputs.torchonly }} + export RELEASE_VERSION=${{ inputs.version }} export TARGET_OS="linux" eval "$(conda shell.bash hook)" printf '%s\n' ${{ toJson(needs.generate-release-matrix.outputs.matrix) }} > release_matrix.json diff --git a/.github/workflows/validate-macos-arm64-binaries.yml b/.github/workflows/validate-macos-arm64-binaries.yml index f23dec3f6..59d9393d0 100644 --- a/.github/workflows/validate-macos-arm64-binaries.yml +++ b/.github/workflows/validate-macos-arm64-binaries.yml @@ -17,6 +17,11 @@ on: default: false required: false type: boolean + version: + description: 'Version to validate - optional' + default: "" + required: false + type: string workflow_dispatch: inputs: channel: @@ -38,6 +43,11 @@ on: default: false required: false type: boolean + version: + description: 'Version to validate - optional' + default: "" + required: false + type: string jobs: generate-macos-arm64-matrix: @@ -46,8 +56,12 @@ jobs: package-type: all os: macos-arm64 channel: ${{ inputs.channel }} + generate-release-matrix: + uses: pytorch/test-infra/.github/workflows/generate_release_matrix.yml@main + with: + version: ${{ inputs.version }} macos-arm64: - needs: generate-macos-arm64-matrix + needs: [generate-macos-arm64-matrix, generate-release-matrix] strategy: matrix: ${{ fromJson(needs.generate-macos-arm64-matrix.outputs.matrix) }} fail-fast: false @@ -64,4 +78,6 @@ jobs: export ENV_NAME="conda-env-${{ github.run_id }}" export TARGET_OS="macos-arm64" export TORCH_ONLY=${{ inputs.torchonly }} + export RELEASE_VERSION=${{ inputs.version }} + printf '%s\n' ${{ toJson(needs.generate-release-matrix.outputs.matrix) }} > release_matrix.json source ./.github/scripts/validate_binaries.sh diff --git a/.github/workflows/validate-macos-binaries.yml b/.github/workflows/validate-macos-binaries.yml index 0926dbe93..325fcf8a6 100644 --- a/.github/workflows/validate-macos-binaries.yml +++ b/.github/workflows/validate-macos-binaries.yml @@ -17,6 +17,11 @@ on: default: false required: false type: boolean + version: + description: 'Version to validate - optional' + default: "" + required: false + type: string workflow_dispatch: inputs: channel: @@ -38,6 +43,11 @@ on: default: false required: false type: boolean + version: + description: 'Version to validate - optional' + default: "" + required: false + type: string jobs: generate-macos-matrix: @@ -46,8 +56,12 @@ jobs: package-type: all os: macos channel: ${{ inputs.channel }} + generate-release-matrix: + uses: pytorch/test-infra/.github/workflows/generate_release_matrix.yml@main + with: + version: ${{ inputs.version }} macos: - needs: generate-macos-matrix + needs: [generate-macos-matrix, generate-release-matrix] strategy: matrix: ${{ fromJson(needs.generate-macos-matrix.outputs.matrix) }} fail-fast: false @@ -64,4 +78,6 @@ jobs: export ENV_NAME="conda-env-${{ github.run_id }}" export TARGET_OS="macos" export TORCH_ONLY=${{ inputs.torchonly }} + export RELEASE_VERSION=${{ inputs.version }} + printf '%s\n' ${{ toJson(needs.generate-release-matrix.outputs.matrix) }} > release_matrix.json source ./.github/scripts/validate_binaries.sh diff --git a/.github/workflows/validate-windows-binaries.yml b/.github/workflows/validate-windows-binaries.yml index 96d2b281e..4a7891c20 100644 --- a/.github/workflows/validate-windows-binaries.yml +++ b/.github/workflows/validate-windows-binaries.yml @@ -17,6 +17,11 @@ on: default: false required: false type: boolean + version: + description: 'Version to validate - optional' + default: "" + required: false + type: string workflow_dispatch: inputs: channel: @@ -38,6 +43,11 @@ on: default: false required: false type: boolean + version: + description: 'Version to validate - optional' + default: "" + required: false + type: string jobs: generate-windows-matrix: @@ -46,9 +56,12 @@ jobs: package-type: all os: windows channel: ${{ inputs.channel }} - + generate-release-matrix: + uses: pytorch/test-infra/.github/workflows/generate_release_matrix.yml@main + with: + version: ${{ inputs.version }} win: - needs: generate-windows-matrix + needs: [generate-windows-matrix, generate-release-matrix] strategy: matrix: ${{ fromJson(needs.generate-windows-matrix.outputs.matrix) }} fail-fast: false @@ -66,9 +79,10 @@ jobs: export ENV_NAME="conda-env-${{ github.run_id }}" export TARGET_OS="windows" export TORCH_ONLY=${{ inputs.torchonly }} + export RELEASE_VERSION=${{ inputs.version }} + printf '%s\n' ${{ toJson(needs.generate-release-matrix.outputs.matrix) }} > release_matrix.json source /c/Jenkins/Miniconda3/etc/profile.d/conda.sh if [[ ${MATRIX_GPU_ARCH_VERSION} == "12.1" ]]; then ./windows/internal/driver_update.bat fi - source ./.github/scripts/validate_binaries.sh diff --git a/test/smoke_test/smoke_test.py b/test/smoke_test/smoke_test.py index a14ad4316..c34208771 100644 --- a/test/smoke_test/smoke_test.py +++ b/test/smoke_test/smoke_test.py @@ -15,9 +15,11 @@ gpu_arch_type = os.getenv("MATRIX_GPU_ARCH_TYPE") channel = os.getenv("MATRIX_CHANNEL") stable_version = os.getenv("MATRIX_STABLE_VERSION") +release_version = os.getenv("RELEASE_VERSION") package_type = os.getenv("MATRIX_PACKAGE_TYPE") target_os = os.getenv("TARGET_OS") BASE_DIR = Path(__file__).parent.parent.parent +release_matrix = None is_cuda_system = gpu_arch_type == "cuda" NIGHTLY_ALLOWED_DELTA = 3 @@ -39,7 +41,6 @@ }, ] - class Net(nn.Module): def __init__(self): super().__init__() @@ -76,17 +77,17 @@ def check_version(package: str) -> None: raise RuntimeError( f"Torch version mismatch, expected {stable_version} for channel {channel}. But its {torch.__version__}" ) - release_version = read_release_matrix() - if package == "all": + + if release_version and package == "all": for module in MODULES: imported_module = importlib.import_module(module["name"]) module_version = imported_module.__version__ - if not module_version.startswith(release_version[module["name"]]): + if not module_version.startswith(release_matrix[module["name"]]): raise RuntimeError( - f"{module['name']} version mismatch, expected {release_version[module['name']]} for channel {channel}. But its {module_version}" + f"{module['name']} version mismatch, expected {release_matrix[module['name']]} for channel {channel}. But its {module_version}" ) else: - print(f"{module['name']} version actual: {module_version} expected: {release_version[module['name']]} for channel {channel}.") + print(f"{module['name']} version actual: {module_version} expected: {release_matrix[module['name']]} for channel {channel}.") else: print(f"Skip version check for channel {channel} as stable version is None") @@ -281,6 +282,12 @@ def main() -> None: ) options = parser.parse_args() print(f"torch: {torch.__version__}") + + # if release_version is specified, override stable_version coming binary matrix + if(release_version): + release_matrix = read_release_matrix() + stable_version = release_matrix["torch"] + check_version(options.package) smoke_test_conv2d() smoke_test_linalg()