Auto merge of #16562 - Veykril:problem-matcher, r=Veykril
internal: Add a clippy and rustfmt problem matcher to CI
This commit is contained in:
commit
000ce5d29c
33
.github/rust.json
vendored
Normal file
33
.github/rust.json
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
{
|
||||
"problemMatcher": [
|
||||
{
|
||||
"owner": "rustfmt",
|
||||
"severity": "warning",
|
||||
"pattern": [
|
||||
{
|
||||
"regexp": "^(Diff in (.+)) at line (\\d+):$",
|
||||
"message": 1,
|
||||
"file": 2,
|
||||
"line": 3
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"owner": "clippy",
|
||||
"pattern": [
|
||||
{
|
||||
"regexp": "^(?:\\x1b\\[[\\d;]+m)*(warning|warn|error)(?:\\x1b\\[[\\d;]+m)*(\\[(.*)\\])?(?:\\x1b\\[[\\d;]+m)*:(?:\\x1b\\[[\\d;]+m)* ([^\\x1b]*)(?:\\x1b\\[[\\d;]+m)*$",
|
||||
"severity": 1,
|
||||
"message": 4,
|
||||
"code": 3
|
||||
},
|
||||
{
|
||||
"regexp": "^(?:\\x1b\\[[\\d;]+m)*\\s*(?:\\x1b\\[[\\d;]+m)*\\s*--> (?:\\x1b\\[[\\d;]+m)*(.*):(\\d*):(\\d*)(?:\\x1b\\[[\\d;]+m)*$",
|
||||
"file": 1,
|
||||
"line": 2,
|
||||
"column": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
8
.github/workflows/ci.yaml
vendored
8
.github/workflows/ci.yaml
vendored
@ -65,6 +65,10 @@ jobs:
|
||||
rustup update --no-self-update ${{ env.RUST_CHANNEL }}
|
||||
rustup component add --toolchain ${{ env.RUST_CHANNEL }} rustfmt rust-src
|
||||
rustup default ${{ env.RUST_CHANNEL }}
|
||||
# https://github.com/actions-rust-lang/setup-rust-toolchain/blob/main/rust.json
|
||||
- name: Install Rust Problem Matcher
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
run: echo "::add-matcher::.github/rust.json"
|
||||
|
||||
- name: Cache Dependencies
|
||||
uses: Swatinem/rust-cache@988c164c3d0e93c4dbab36aaf5bbeb77425b2894
|
||||
@ -107,6 +111,10 @@ jobs:
|
||||
if: matrix.os == 'windows-latest'
|
||||
run: cargo clippy --all-targets -- -D clippy::disallowed_macros -D clippy::dbg_macro -D clippy::todo -D clippy::print_stdout -D clippy::print_stderr
|
||||
|
||||
- name: rustfmt
|
||||
if: matrix.os == 'ubuntu-latest'
|
||||
run: cargo fmt -- --check
|
||||
|
||||
# Weird targets to catch non-portable code
|
||||
rust-cross:
|
||||
if: github.repository == 'rust-lang/rust-analyzer'
|
||||
|
@ -9,27 +9,6 @@ use xshell::Shell;
|
||||
#[cfg(not(feature = "in-rust-tree"))]
|
||||
use xshell::cmd;
|
||||
|
||||
#[cfg(not(feature = "in-rust-tree"))]
|
||||
#[test]
|
||||
fn check_code_formatting() {
|
||||
let sh = &Shell::new().unwrap();
|
||||
sh.change_dir(sourcegen::project_root());
|
||||
|
||||
let out = cmd!(sh, "rustup run stable rustfmt --version").read().unwrap();
|
||||
if !out.contains("stable") {
|
||||
panic!(
|
||||
"Failed to run rustfmt from toolchain 'stable'. \
|
||||
Please run `rustup component add rustfmt --toolchain stable` to install it.",
|
||||
)
|
||||
}
|
||||
|
||||
let res = cmd!(sh, "rustup run stable cargo fmt -- --check").run();
|
||||
if res.is_err() {
|
||||
let _ = cmd!(sh, "rustup run stable cargo fmt").run();
|
||||
}
|
||||
res.unwrap()
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn check_lsp_extensions_docs() {
|
||||
let sh = &Shell::new().unwrap();
|
||||
|
Loading…
x
Reference in New Issue
Block a user