diff options
| author | kennytm <kennytm@gmail.com> | 2017-05-18 00:33:20 +0800 |
|---|---|---|
| committer | kennytm <kennytm@gmail.com> | 2017-06-02 01:14:26 +0800 |
| commit | e6e5dc0e9c1d5f9058e61c1abcfa3c5eae5f4191 (patch) | |
| tree | 6640bf4adcdbcd66c95f1e283805b888bdbdc2ed /src/bootstrap/lib.rs | |
| parent | 1a1ea253f2b92179333e0042d63dcfca45a947f0 (diff) | |
| download | rust-e6e5dc0e9c1d5f9058e61c1abcfa3c5eae5f4191.tar.gz rust-e6e5dc0e9c1d5f9058e61c1abcfa3c5eae5f4191.zip | |
ci: Improve log output (mainly Travis).
* Bring back colors on Travis, which was disabled since #39036. Append --color=always to cargo when running in CI environment. * Removed `set -x` in the shell scripts. The `retry` function already prints which command it is running, add `-x` just add noise to the output. * Support travis_fold/travis_time. Matching pairs of these allow Travis CI to collapse the output in between. This greatly cut down the unnecessary "successful" output one need to scroll through before finding the failed statement.
Diffstat (limited to 'src/bootstrap/lib.rs')
| -rw-r--r-- | src/bootstrap/lib.rs | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs index 665b9ee49c0..01235fe30bd 100644 --- a/src/bootstrap/lib.rs +++ b/src/bootstrap/lib.rs @@ -90,7 +90,7 @@ use std::process::Command; use build_helper::{run_silent, run_suppressed, output, mtime}; -use util::{exe, libdir, add_lib_path}; +use util::{exe, libdir, add_lib_path, OutputFolder, CiEnv}; mod cc; mod channel; @@ -179,6 +179,7 @@ pub struct Build { crates: HashMap<String, Crate>, is_sudo: bool, src_is_git: bool, + ci_env: CiEnv, } #[derive(Debug)] @@ -272,6 +273,7 @@ impl Build { lldb_python_dir: None, is_sudo: is_sudo, src_is_git: src_is_git, + ci_env: CiEnv::current(), } } @@ -507,6 +509,9 @@ impl Build { if self.config.vendor || self.is_sudo { cargo.arg("--frozen"); } + + self.ci_env.force_coloring_in_ci(&mut cargo); + return cargo } @@ -1011,6 +1016,19 @@ impl Build { "nightly" | _ => true, } } + + /// Fold the output of the commands after this method into a group. The fold + /// ends when the returned object is dropped. Folding can only be used in + /// the Travis CI environment. + pub fn fold_output<D, F>(&self, name: F) -> Option<OutputFolder> + where D: Into<String>, F: FnOnce() -> D + { + if self.ci_env == CiEnv::Travis { + Some(OutputFolder::new(name().into())) + } else { + None + } + } } impl<'a> Compiler<'a> { |
