Skip to content
This repository has been archived by the owner on Nov 17, 2023. It is now read-only.

Commit

Permalink
Update CMake on CI
Browse files Browse the repository at this point in the history
  • Loading branch information
leezu committed Dec 12, 2019
1 parent 679ca4c commit 3797418
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 2 deletions.
5 changes: 5 additions & 0 deletions ci/build_windows.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import platform
import shutil
import sys
import tempfile
import time
from distutils.dir_util import copy_tree
from enum import Enum
Expand Down Expand Up @@ -143,6 +144,10 @@ def windows_build(args):
mxnet_root = get_mxnet_root()
logging.info("Found MXNet root: {}".format(mxnet_root))

with tempfile.TemporaryDirectory() as tmpdir:
cmake_file_path = download_file('https://cmake.org/files/v3.15/cmake-3.15.5-win64-x64.msi', tmpdir)
run_command("msiexec /i {} /quiet /norestart ADD_CMAKE_TO_PATH=System".format(cmake_file_path))

with remember_cwd():
os.chdir(path)
cmd = "\"{}\" && cmake -G \"NMake Makefiles JOM\" {} {}".format(args.vcvars,
Expand Down
9 changes: 9 additions & 0 deletions ci/docker/install/ubuntu_arm.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,12 @@ set -ex
apt update || true
apt install -y \
unzip

# CMake 3.13.2+ is required
mkdir /opt/cmake && cd /opt/cmake
wget -nv https://cmake.org/files/v3.13/cmake-3.13.5-Linux-x86_64.sh
sh cmake-3.13.5-Linux-x86_64.sh --prefix=/opt/cmake --skip-license
rm /usr/local/bin/cmake # dockcross comes with cmake at /usr/local/bin/cmake
ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake
rm cmake-3.13.5-Linux-x86_64.sh
cmake --version
2 changes: 1 addition & 1 deletion ci/docker/install/ubuntu_core.sh
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ apt-get install -y \
ln -s /usr/lib/x86_64-linux-gnu/libturbojpeg.so.0.1.0 /usr/lib/x86_64-linux-gnu/libturbojpeg.so


# CMake 3.13.3+ is required for Cuda builds
# CMake 3.13.2+ is required
mkdir /opt/cmake && cd /opt/cmake
wget -nv https://cmake.org/files/v3.13/cmake-3.13.5-Linux-x86_64.sh
sh cmake-3.13.5-Linux-x86_64.sh --prefix=/opt/cmake --skip-license
Expand Down
33 changes: 32 additions & 1 deletion ci/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,15 @@
# specific language governing permissions and limitations
# under the License.

import os
import contextlib
import logging
import logging.config
import os
import subprocess
import sys

import requests


def get_mxnet_root() -> str:
curpath = os.path.abspath(os.path.dirname(__file__))
Expand Down Expand Up @@ -130,3 +133,31 @@ def config_logging():
# or sensitive information
logging.getLogger("botocore").setLevel(logging.WARNING)
logging.getLogger("requests").setLevel(logging.WARNING)


# Takes url and downloads it to the dest_path directory on Windows.
def download_file(url, dest_path):
file_name = url.split('/')[-1]
full_path = "{}\\{}".format(dest_path, file_name)
logging.info("Downloading: {}".format(full_path))
r = requests.get(url, stream=True)
if r.status_code == 404:
return r.status_code
elif r.status_code != 200:
logging.error("{} returned status code {}".format(url, r.status_code))
with open(full_path, 'wb') as f:
for chunk in r.iter_content(chunk_size=1024):
if chunk: # filter out keep-alive new chunks
f.write(chunk)
return full_path


# Takes arguments and runs command on host. Shell is disabled by default.
def run_command(args, shell=False):
try:
logging.info("Issuing command: {}".format(args))
res = subprocess.check_output(args, shell=shell, timeout=1800).decode("utf-8").replace("\r\n", "")
logging.info("Output: {}".format(res))
except subprocess.CalledProcessError as e:
raise RuntimeError("command '{}' return with error (code {}): {}".format(e.cmd, e.returncode, e.output))
return res

0 comments on commit 3797418

Please sign in to comment.