Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollup of 7 pull requests #63408

Merged
merged 24 commits into from
Aug 9, 2019
Merged
Changes from 1 commit
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
8ae8bc2
Fix various issues with making items reachable through macros
matthewjasper Aug 5, 2019
7b41fd2
Make some items in core::unicode private
matthewjasper Aug 5, 2019
d9d9246
Remove gensym from format_args
matthewjasper Aug 5, 2019
642ee70
Add test for issue-43623
JohnTitor Aug 8, 2019
55f15d7
Add test for issue-44405
JohnTitor Aug 8, 2019
fd7ac6b
Deprecate `try!` macro
Jun 23, 2019
90fa790
Postpone deprecating try! until 1.39.0
tesuji Jul 15, 2019
6842316
Allow deprecated try macro in test crates
tesuji Jul 14, 2019
e9ee2cb
Improve test output for libcore/time
ohsayan Aug 9, 2019
623debf
Improve tests for libcore/slice
ohsayan Aug 9, 2019
33445ae
Improve tests for liballoc/btree/set
ohsayan Aug 9, 2019
fb3a013
Merge pull request #1 from rust-lang/master
ohsayan Aug 9, 2019
c5687e3
enable flt2dec tests in Miri
RalfJung Aug 9, 2019
c7e16c5
Check links on all platforms when running locally
mati865 Aug 6, 2019
29ca428
Miri is really slow
RalfJung Aug 9, 2019
73edef7
reduce some test sizes in Miri
RalfJung Aug 9, 2019
78caca0
explain Miri disabling
RalfJung Aug 9, 2019
03c524e
Rollup merge of #62672 - lzutao:deprecated-try-macro, r=Centril
Centril Aug 9, 2019
a038726
Rollup merge of #62950 - mati865:linkcheck, r=alexcrichton
Centril Aug 9, 2019
714c8ea
Rollup merge of #63114 - matthewjasper:hygienic-format-args, r=petroc…
Centril Aug 9, 2019
7a25162
Rollup merge of #63397 - JohnTitor:add-tests-for-ices, r=Centril
Centril Aug 9, 2019
171e845
Rollup merge of #63403 - sntdevco:master, r=Centril
Centril Aug 9, 2019
14ec32e
Rollup merge of #63404 - RalfJung:flt2dec, r=Centril
Centril Aug 9, 2019
4e3c209
Rollup merge of #63407 - RalfJung:miri-test-sizes, r=Centril
Centril Aug 9, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Check links on all platforms when running locally
mati865 committed Aug 9, 2019

Verified

This commit was signed with the committer’s verified signature.
targos Michaël Zasso
commit c7e16c5f47ac86877ab6c52db61709349e4cf276
26 changes: 23 additions & 3 deletions src/bootstrap/tool.rs
Original file line number Diff line number Diff line change
@@ -9,7 +9,7 @@ use build_helper::t;
use crate::Mode;
use crate::Compiler;
use crate::builder::{Step, RunConfig, ShouldRun, Builder};
use crate::util::{exe, add_lib_path};
use crate::util::{exe, add_lib_path, CiEnv};
use crate::compile;
use crate::channel::GitInfo;
use crate::channel;
@@ -279,11 +279,26 @@ pub fn prepare_tool_cargo(
cargo
}

fn rustbook_features() -> Vec<String> {
let mut features = Vec::new();

// Due to CI budged and risk of spurious failures we want to limit jobs running this check.
// At same time local builds should run it regardless of the platform.
// `CiEnv::None` means it's local build and `CHECK_LINKS` is defined in x86_64-gnu-tools to
// explicitly enable it on single job
if CiEnv::current() == CiEnv::None || env::var("CHECK_LINKS").is_ok() {
features.push("linkcheck".to_string());
}

features
}

macro_rules! bootstrap_tool {
($(
$name:ident, $path:expr, $tool_name:expr
$(,llvm_tools = $llvm:expr)*
$(,is_external_tool = $external:expr)*
$(,features = $features:expr)*
;
)+) => {
#[derive(Copy, PartialEq, Eq, Clone)]
@@ -350,7 +365,12 @@ macro_rules! bootstrap_tool {
} else {
SourceType::InTree
},
extra_features: Vec::new(),
extra_features: {
// FIXME(#60643): avoid this lint by using `_`
let mut _tmp = Vec::new();
$(_tmp.extend($features);)*
_tmp
},
}).expect("expected to build -- essential tool")
}
}
@@ -359,7 +379,7 @@ macro_rules! bootstrap_tool {
}

bootstrap_tool!(
Rustbook, "src/tools/rustbook", "rustbook";
Rustbook, "src/tools/rustbook", "rustbook", features = rustbook_features();
UnstableBookGen, "src/tools/unstable-book-gen", "unstable-book-gen";
Tidy, "src/tools/tidy", "tidy";
Linkchecker, "src/tools/linkchecker", "linkchecker";
3 changes: 3 additions & 0 deletions src/ci/docker/x86_64-gnu-tools/Dockerfile
Original file line number Diff line number Diff line change
@@ -21,6 +21,9 @@ COPY x86_64-gnu-tools/checkregression.py /tmp/
COPY x86_64-gnu-tools/checktools.sh /tmp/
COPY x86_64-gnu-tools/repo.sh /tmp/

# Run rustbook with `linkcheck` feature enabled
ENV CHECK_LINKS 1

ENV RUST_CONFIGURE_ARGS \
--build=x86_64-unknown-linux-gnu \
--save-toolstates=/tmp/toolstates.json
7 changes: 4 additions & 3 deletions src/tools/rustbook/Cargo.toml
Original file line number Diff line number Diff line change
@@ -5,14 +5,15 @@ version = "0.1.0"
license = "MIT OR Apache-2.0"
edition = "2018"

[features]
linkcheck = ["mdbook-linkcheck"]

[dependencies]
clap = "2.25.0"
failure = "0.1"
mdbook-linkcheck = { version = "0.3.0", optional = true }

[dependencies.mdbook]
version = "0.3.0"
default-features = false
features = ["search"]

[target.'cfg(all(target_arch = "x86_64", target_os = "linux"))'.dependencies]
mdbook-linkcheck = "0.3.0"
13 changes: 6 additions & 7 deletions src/tools/rustbook/src/main.rs
Original file line number Diff line number Diff line change
@@ -8,10 +8,9 @@ use clap::{App, ArgMatches, SubCommand, AppSettings};
use mdbook::MDBook;
use mdbook::errors::{Result as Result3};

#[cfg(all(target_arch = "x86_64", target_os = "linux"))]
#[cfg(feature = "linkcheck")]
use mdbook::renderer::RenderContext;

#[cfg(all(target_arch = "x86_64", target_os = "linux"))]
#[cfg(feature = "linkcheck")]
use mdbook_linkcheck::{self, errors::BrokenLinks};
use failure::Error;

@@ -52,7 +51,7 @@ fn main() {
if let Err(err) = linkcheck(sub_matches) {
eprintln!("Error: {}", err);

#[cfg(all(target_arch = "x86_64", target_os = "linux"))]
#[cfg(feature = "linkcheck")]
{
if let Ok(broken_links) = err.downcast::<BrokenLinks>() {
for cause in broken_links.links().iter() {
@@ -68,7 +67,7 @@ fn main() {
};
}

#[cfg(all(target_arch = "x86_64", target_os = "linux"))]
#[cfg(feature = "linkcheck")]
pub fn linkcheck(args: &ArgMatches<'_>) -> Result<(), Error> {
let book_dir = get_book_dir(args);
let book = MDBook::load(&book_dir).unwrap();
@@ -78,9 +77,9 @@ pub fn linkcheck(args: &ArgMatches<'_>) -> Result<(), Error> {
mdbook_linkcheck::check_links(&render_ctx)
}

#[cfg(not(all(target_arch = "x86_64", target_os = "linux")))]
#[cfg(not(feature = "linkcheck"))]
pub fn linkcheck(_args: &ArgMatches<'_>) -> Result<(), Error> {
println!("mdbook-linkcheck only works on x86_64 linux targets.");
println!("mdbook-linkcheck is disabled.");
Ok(())
}