|
35 | 35 | import re |
36 | 36 | import stat |
37 | 37 | import tempfile |
| 38 | +from contextlib import contextmanager |
38 | 39 | from itertools import chain |
39 | 40 |
|
40 | 41 | import easybuild.tools.environment as env |
@@ -451,6 +452,18 @@ def setup_build_dirs(self): |
451 | 452 | self.wrapper_dir = os.path.join(parent_dir, 'wrapper_bin') |
452 | 453 | mkdir(self.wrapper_dir) |
453 | 454 |
|
| 455 | + @contextmanager |
| 456 | + def set_tmp_dir(self): |
| 457 | + # TF uses the temporary folder, which becomes quite large (~2 GB) so use the build folder explicitely. |
| 458 | + old_tmpdir = os.environ['TMPDIR'] |
| 459 | + tmpdir = os.path.join(self.builddir, 'tmpdir') |
| 460 | + mkdir(tmpdir) |
| 461 | + os.environ['TMPDIR'] = tmpdir |
| 462 | + try: |
| 463 | + yield tmpdir |
| 464 | + finally: |
| 465 | + os.environ['TMPDIR'] = old_tmpdir |
| 466 | + |
454 | 467 | def configure_step(self): |
455 | 468 | """Custom configuration procedure for TensorFlow.""" |
456 | 469 |
|
@@ -940,11 +953,12 @@ def build_step(self): |
940 | 953 | + ['//tensorflow/tools/pip_package:build_pip_package'] |
941 | 954 | ) |
942 | 955 |
|
943 | | - run_cmd(' '.join(cmd), log_all=True, simple=True, log_ok=True) |
| 956 | + with self.set_tmp_dir(): |
| 957 | + run_cmd(' '.join(cmd), log_all=True, simple=True, log_ok=True) |
944 | 958 |
|
945 | | - # run generated 'build_pip_package' script to build the .whl |
946 | | - cmd = "bazel-bin/tensorflow/tools/pip_package/build_pip_package %s" % self.builddir |
947 | | - run_cmd(cmd, log_all=True, simple=True, log_ok=True) |
| 959 | + # run generated 'build_pip_package' script to build the .whl |
| 960 | + cmd = "bazel-bin/tensorflow/tools/pip_package/build_pip_package %s" % self.builddir |
| 961 | + run_cmd(cmd, log_all=True, simple=True, log_ok=True) |
948 | 962 |
|
949 | 963 | def test_step(self): |
950 | 964 | """Run TensorFlow unit tests""" |
@@ -1067,7 +1081,8 @@ def test_step(self): |
1067 | 1081 | + test_targets |
1068 | 1082 | ) |
1069 | 1083 |
|
1070 | | - stdouterr, ec = run_cmd(cmd, log_ok=False, simple=False) |
| 1084 | + with self.set_tmp_dir(): |
| 1085 | + stdouterr, ec = run_cmd(cmd, log_ok=False, simple=False) |
1071 | 1086 | if ec: |
1072 | 1087 | fail_msg = 'Tests on %s (cmd: %s) failed with exit code %s and output:\n%s' % ( |
1073 | 1088 | device, cmd, ec, stdouterr) |
@@ -1104,7 +1119,7 @@ def test_step(self): |
1104 | 1119 | def install_step(self): |
1105 | 1120 | """Custom install procedure for TensorFlow.""" |
1106 | 1121 | # find .whl file that was built, and install it using 'pip install' |
1107 | | - if ("-rc" in self.version): |
| 1122 | + if "-rc" in self.version: |
1108 | 1123 | whl_version = self.version.replace("-rc", "rc") |
1109 | 1124 | else: |
1110 | 1125 | whl_version = self.version |
|
0 commit comments