@@ -31,55 +31,52 @@ phases:
31
31
32
32
build :
33
33
commands :
34
- - tox -e flake8,twine
34
+ - tox -e flake8
35
35
36
36
# install
37
- - pip3 install -U -e .
38
37
- pip3 install -U -e .[test]
39
38
40
- # run unit tests
41
- - pytest test/unit
42
-
43
- # create tar in dist/
44
- - python3 setup.py sdist
45
- - tar_name=$(ls dist/sagemaker_pytorch_inference-*.tar.gz)
46
- - cp $tar_name sagemaker_pytorch_inference.tar.gz
47
-
48
39
- cpu_dockerfile="Dockerfile.cpu"
49
40
- gpu_dockerfile="Dockerfile.gpu"
50
41
- eia_dockerfile="Dockerfile.eia"
51
42
52
43
# build py2 images
53
44
- build_dir="docker/$FRAMEWORK_VERSION/py$CPU_PY2_VERSION"
54
- - cp sagemaker_pytorch_inference.tar.gz $build_dir/
55
45
- cp -r docker/build_artifacts/* $build_dir/
56
46
- CPU_PY2_TAG="$FRAMEWORK_VERSION-cpu-py2-$BUILD_ID"
57
47
- GPU_PY2_TAG="$FRAMEWORK_VERSION-gpu-py2-$BUILD_ID"
58
- - docker build -f "$build_dir/$cpu_dockerfile" -t $PREPROD_IMAGE:$CPU_PY2_TAG $build_dir
59
- - docker build -f "$build_dir/$gpu_dockerfile" -t $PREPROD_IMAGE:$GPU_PY2_TAG $build_dir
48
+ - build_cmd="docker build -f "$build_dir/$cpu_dockerfile" -t $PREPROD_IMAGE:$CPU_PY2_TAG $build_dir"
49
+ - execute-command-if-has-matching-changes "$build_cmd" "test/" "docker/*" "buildspec.yml"
50
+ - build_cmd="docker build -f "$build_dir/$gpu_dockerfile" -t $PREPROD_IMAGE:$GPU_PY2_TAG $build_dir"
51
+ - execute-command-if-has-matching-changes "$build_cmd" "test/" "docker/*" "buildspec.yml"
60
52
61
53
# build py3 image
62
54
- build_dir="docker/$FRAMEWORK_VERSION/py$GPU_PY3_VERSION"
63
- - cp sagemaker_pytorch_inference.tar.gz $build_dir/
64
55
- cp -r docker/build_artifacts/* $build_dir/
65
56
- CPU_PY3_TAG="$FRAMEWORK_VERSION-cpu-py3-$BUILD_ID"
66
57
- GPU_PY3_TAG="$FRAMEWORK_VERSION-gpu-py3-$BUILD_ID"
67
58
- EIA_PY3_TAG="$EIA_FRAMEWORK_VERSION-eia-py3-$BUILD_ID"
68
- - docker build -f "$build_dir/$cpu_dockerfile" -t $PREPROD_IMAGE:$CPU_PY3_TAG $build_dir
69
- - docker build -f "$build_dir/$gpu_dockerfile" -t $PREPROD_IMAGE:$GPU_PY3_TAG $build_dir
59
+ - build_cmd="docker build -f "$build_dir/$cpu_dockerfile" -t $PREPROD_IMAGE:$CPU_PY3_TAG $build_dir"
60
+ - execute-command-if-has-matching-changes "$build_cmd" "test/" "docker/*" "buildspec.yml"
61
+ - build_cmd="docker build -f "$build_dir/$gpu_dockerfile" -t $PREPROD_IMAGE:$GPU_PY3_TAG $build_dir"
62
+ - execute-command-if-has-matching-changes "$build_cmd" "test/" "docker/*" "buildspec.yml"
70
63
# PY2 not offered for EIA PyTorch
71
64
- eia_build_dir="docker/$EIA_FRAMEWORK_VERSION/py$EIA_PY3_VERSION"
72
- - cp sagemaker_pytorch_inference.tar.gz $eia_build_dir/
73
65
- cp -r docker/build_artifacts/* $eia_build_dir/
74
66
- docker build -f "$eia_build_dir/$eia_dockerfile" -t $PREPROD_IMAGE:$EIA_PY3_TAG $eia_build_dir
75
67
76
68
# push images to ecr
77
69
- $(aws ecr get-login --registry-ids $ACCOUNT --no-include-email --region $AWS_DEFAULT_REGION)
78
- - docker push $PREPROD_IMAGE:$CPU_PY2_TAG
79
- - docker push $PREPROD_IMAGE:$CPU_PY3_TAG
80
- - docker push $PREPROD_IMAGE:$GPU_PY2_TAG
81
- - docker push $PREPROD_IMAGE:$GPU_PY3_TAG
82
- - docker push $PREPROD_IMAGE:$EIA_PY3_TAG
70
+ - push_cmd="docker push $PREPROD_IMAGE:$CPU_PY2_TAG"
71
+ - execute-command-if-has-matching-changes "$push_cmd" "test/" "docker/*" "buildspec.yml"
72
+ - push_cmd="docker push $PREPROD_IMAGE:$CPU_PY3_TAG"
73
+ - execute-command-if-has-matching-changes "$push_cmd" "test/" "docker/*" "buildspec.yml"
74
+ - push_cmd="docker push $PREPROD_IMAGE:$GPU_PY2_TAG"
75
+ - execute-command-if-has-matching-changes "$push_cmd" "test/" "docker/*" "buildspec.yml"
76
+ - push_cmd="docker push $PREPROD_IMAGE:$GPU_PY3_TAG"
77
+ - execute-command-if-has-matching-changes "$push_cmd" "test/" "docker/*" "buildspec.yml"
78
+ - push_cmd="docker push $PREPROD_IMAGE:$EIA_PY3_TAG"
79
+ - execute-command-if-has-matching-changes "$push_cmd" "test/" "docker/*" "buildspec.yml"
83
80
84
81
# launch remote gpu instance
85
82
- prefix='ml.'
@@ -90,34 +87,34 @@ phases:
90
87
# run cpu integration tests
91
88
- py3_cmd="pytest test/integration/local --region $AWS_DEFAULT_REGION --docker-base-name $PREPROD_IMAGE --framework-version $FRAMEWORK_VERSION --py-version $CPU_PY3_VERSION --processor cpu --tag $CPU_PY3_TAG"
92
89
- py2_cmd="pytest test/integration/local --region $AWS_DEFAULT_REGION --docker-base-name $PREPROD_IMAGE --framework-version $FRAMEWORK_VERSION --py-version $CPU_PY2_VERSION --processor cpu --tag $CPU_PY2_TAG"
93
- - execute-command-if-has-matching-changes "$py3_cmd" "test/" "src/*.py" "setup.py" "setup.cfg" " docker/*" "buildspec.yml"
94
- - execute-command-if-has-matching-changes "$py2_cmd" "test/" "src/*.py" "setup.py" "setup.cfg" " docker/*" "buildspec.yml"
90
+ - execute-command-if-has-matching-changes "$py3_cmd" "test/" "docker/*" "buildspec.yml"
91
+ - execute-command-if-has-matching-changes "$py2_cmd" "test/" "docker/*" "buildspec.yml"
95
92
96
93
# run gpu integration tests
97
94
- printf "$SETUP_CMDS" > $SETUP_FILE
98
95
- py3_pytest_cmd="pytest test/integration/local --region $AWS_DEFAULT_REGION --docker-base-name $PREPROD_IMAGE --framework-version $FRAMEWORK_VERSION --py-version $GPU_PY3_VERSION --processor gpu --tag $GPU_PY3_TAG"
99
96
- py3_cmd="remote-test --github-repo $GITHUB_REPO --test-cmd \"$py3_pytest_cmd\" --setup-file $SETUP_FILE --pr-number \"$PR_NUM\""
100
- - execute-command-if-has-matching-changes "$py3_cmd" "test/" "src/*.py" "setup.py" "setup.cfg" " docker/*" "buildspec.yml"
97
+ - execute-command-if-has-matching-changes "$py3_cmd" "test/" "docker/*" "buildspec.yml"
101
98
102
99
- py2_pytest_cmd="pytest test/integration/local --region $AWS_DEFAULT_REGION --docker-base-name $PREPROD_IMAGE --framework-version $FRAMEWORK_VERSION --py-version $GPU_PY2_VERSION --processor gpu --tag $GPU_PY2_TAG"
103
100
- py2_cmd="remote-test --github-repo $GITHUB_REPO --test-cmd \"$py2_pytest_cmd\" --setup-file $SETUP_FILE --pr-number \"$PR_NUM\" --skip-setup"
104
- - execute-command-if-has-matching-changes "$py2_cmd" "test/" "src/*.py" "setup.py" "setup.cfg" " docker/*" "buildspec.yml"
101
+ - execute-command-if-has-matching-changes "$py2_cmd" "test/" "docker/*" "buildspec.yml"
105
102
106
103
# run cpu sagemaker tests
107
104
- py3_cmd="pytest test/integration/sagemaker --region $AWS_DEFAULT_REGION --docker-base-name $ECR_REPO --aws-id $ACCOUNT --framework-version $FRAMEWORK_VERSION --py-version $CPU_PY3_VERSION --processor cpu --instance-type $CPU_INSTANCE_TYPE --tag $CPU_PY3_TAG"
108
105
- py2_cmd="pytest test/integration/sagemaker --region $AWS_DEFAULT_REGION --docker-base-name $ECR_REPO --aws-id $ACCOUNT --framework-version $FRAMEWORK_VERSION --py-version $CPU_PY2_VERSION --processor cpu --instance-type $CPU_INSTANCE_TYPE --tag $CPU_PY2_TAG"
109
- - execute-command-if-has-matching-changes "$py3_cmd" "test/" "src/*.py" "setup.py" "setup.cfg" " docker/*" "buildspec.yml"
110
- - execute-command-if-has-matching-changes "$py2_cmd" "test/" "src/*.py" "setup.py" "setup.cfg" " docker/*" "buildspec.yml"
106
+ - execute-command-if-has-matching-changes "$py3_cmd" "test/" "docker/*" "buildspec.yml"
107
+ - execute-command-if-has-matching-changes "$py2_cmd" "test/" "docker/*" "buildspec.yml"
111
108
112
109
# run gpu sagemaker tests
113
110
- py3_cmd="pytest test/integration/sagemaker --region $AWS_DEFAULT_REGION --docker-base-name $ECR_REPO --aws-id $ACCOUNT --framework-version $FRAMEWORK_VERSION --py-version $GPU_PY3_VERSION --processor gpu --instance-type $GPU_INSTANCE_TYPE --tag $GPU_PY3_TAG"
114
111
- py2_cmd="pytest test/integration/sagemaker --region $AWS_DEFAULT_REGION --docker-base-name $ECR_REPO --aws-id $ACCOUNT --framework-version $FRAMEWORK_VERSION --py-version $GPU_PY2_VERSION --processor gpu --instance-type $GPU_INSTANCE_TYPE --tag $GPU_PY2_TAG"
115
- - execute-command-if-has-matching-changes "$py3_cmd" "test/" "src/*.py" "setup.py" "setup.cfg" " docker/*" "buildspec.yml"
116
- - execute-command-if-has-matching-changes "$py2_cmd" "test/" "src/*.py" "setup.py" "setup.cfg" " docker/*" "buildspec.yml"
112
+ - execute-command-if-has-matching-changes "$py3_cmd" "test/" "docker/*" "buildspec.yml"
113
+ - execute-command-if-has-matching-changes "$py2_cmd" "test/" "docker/*" "buildspec.yml"
117
114
118
115
# run eia sagemaker tests
119
116
- py3_cmd="pytest test/integration/sagemaker --region $AWS_DEFAULT_REGION --docker-base-name $ECR_REPO --aws-id $ACCOUNT --framework-version $EIA_FRAMEWORK_VERSION --py-version $EIA_PY3_VERSION --processor cpu --instance-type $CPU_INSTANCE_TYPE --accelerator-type $EIA_ACCELERATOR_TYPE --tag $EIA_PY3_TAG"
120
- - execute-command-if-has-matching-changes "$py3_cmd" "test/" "src/*.py" "setup.py" "setup.cfg" " docker/*" "buildspec.yml"
117
+ - execute-command-if-has-matching-changes "$py3_cmd" "test/" "docker/*" "buildspec.yml"
121
118
122
119
finally :
123
120
# shut down remote gpu instance
0 commit comments