Add more context to quit_if_file_exists
in configure.py
Currently, having a dirty `obj/` directory is sufficient to abort CI tests. This results in errors like the following: ``` ... == end clock drift check == sccache: Starting the server... configure: error: Existing 'config.toml' detected. == clock drift check == ... ``` This is subtle and doesn't give a good idea as to what causes the issue. With this patch, the error becomes more prominent and a resolution is suggested: ``` == end clock drift check == sccache: Starting the server... configure: ERROR: Existing 'config.toml' detected. Exiting Is objdir '/home/tmgross/projects/rust/obj' clean? == clock drift check == ```
This commit is contained in:
parent
7a5d2d0138
commit
8a2022b108
@ -180,7 +180,7 @@ def p(msg):
|
|||||||
|
|
||||||
|
|
||||||
def err(msg):
|
def err(msg):
|
||||||
print("configure: error: " + msg)
|
print("\nconfigure: ERROR: " + msg + "\n")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
def is_value_list(key):
|
def is_value_list(key):
|
||||||
@ -544,7 +544,14 @@ def write_config_toml(writer, section_order, targets, sections):
|
|||||||
|
|
||||||
def quit_if_file_exists(file):
|
def quit_if_file_exists(file):
|
||||||
if os.path.isfile(file):
|
if os.path.isfile(file):
|
||||||
err("Existing '" + file + "' detected.")
|
msg = "Existing '{}' detected. Exiting".format(file)
|
||||||
|
|
||||||
|
# If the output object directory isn't empty, we can get these errors
|
||||||
|
host_objdir = os.environ.get("OBJDIR_ON_HOST")
|
||||||
|
if host_objdir is not None:
|
||||||
|
msg += "\nIs objdir '{}' clean?".format(host_objdir)
|
||||||
|
|
||||||
|
err(msg)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
# If 'config.toml' already exists, exit the script at this point
|
# If 'config.toml' already exists, exit the script at this point
|
||||||
|
@ -14,7 +14,8 @@ for example:
|
|||||||
./src/ci/docker/run.sh x86_64-gnu
|
./src/ci/docker/run.sh x86_64-gnu
|
||||||
```
|
```
|
||||||
|
|
||||||
Images will output artifacts in an `obj` dir at the root of a repository.
|
Images will output artifacts in an `obj` dir at the root of a repository. Note
|
||||||
|
that the script will overwrite the contents of this directory.
|
||||||
|
|
||||||
To match conditions in rusts CI, also set the environment variable `DEPLOY=1`, e.g.:
|
To match conditions in rusts CI, also set the environment variable `DEPLOY=1`, e.g.:
|
||||||
```
|
```
|
||||||
|
@ -266,6 +266,7 @@ docker \
|
|||||||
--env BASE_COMMIT="$BASE_COMMIT" \
|
--env BASE_COMMIT="$BASE_COMMIT" \
|
||||||
--env DIST_TRY_BUILD \
|
--env DIST_TRY_BUILD \
|
||||||
--env PR_CI_JOB \
|
--env PR_CI_JOB \
|
||||||
|
--env OBJDIR_ON_HOST="$objdir" \
|
||||||
--init \
|
--init \
|
||||||
--rm \
|
--rm \
|
||||||
rust-ci \
|
rust-ci \
|
||||||
|
@ -171,6 +171,9 @@ trap datecheck EXIT
|
|||||||
# sccache server at the start of the build, but no need to worry if this fails.
|
# sccache server at the start of the build, but no need to worry if this fails.
|
||||||
SCCACHE_IDLE_TIMEOUT=10800 sccache --start-server || true
|
SCCACHE_IDLE_TIMEOUT=10800 sccache --start-server || true
|
||||||
|
|
||||||
|
# Our build may overwrite config.toml, so we remove it here
|
||||||
|
rm -f config.toml
|
||||||
|
|
||||||
$SRC/configure $RUST_CONFIGURE_ARGS
|
$SRC/configure $RUST_CONFIGURE_ARGS
|
||||||
|
|
||||||
retry make prepare
|
retry make prepare
|
||||||
|
Loading…
Reference in New Issue
Block a user