Skip to content

Commit

Permalink
Split clippy into separate build runner (#1487)
Browse files Browse the repository at this point in the history
  • Loading branch information
kennykerr committed Feb 1, 2022
1 parent aa21d43 commit cd0d294
Show file tree
Hide file tree
Showing 3 changed files with 172 additions and 86 deletions.
86 changes: 85 additions & 1 deletion .github/workflows/build.yml
Expand Up @@ -10,7 +10,7 @@ env:
RUSTFLAGS: -Dwarnings

jobs:

cargo_fmt:
name: Check cargo formatting
runs-on: windows-latest
Expand Down Expand Up @@ -57,3 +57,87 @@ jobs:
run: rustup update --no-self-update ${{ matrix.rust }} && rustup default ${{ matrix.rust }}
- name: Run cargo check
run: cargo check -p windows-sys --all-features

cargo_clippy:
name: Check clippy
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Update toolchain
run: rustup update --no-self-update nightly && rustup default nightly
- name: Install clippy
run: rustup component add clippy
- name: Run cargo clippy
run: |
cargo clippy -p windows-bindgen &&
cargo clippy -p windows-implement &&
cargo clippy -p windows-metadata &&
cargo clippy -p windows-sys &&
cargo clippy -p windows-tokens &&
cargo clippy -p windows &&
cargo clippy -p sample_com_uri &&
cargo clippy -p sample_core_app &&
cargo clippy -p sample_create_window &&
cargo clippy -p sample_create_window_sys &&
cargo clippy -p sample_direct2d &&
cargo clippy -p sample_direct3d12 &&
cargo clippy -p sample_enum_windows &&
cargo clippy -p sample_enum_windows_sys &&
cargo clippy -p sample_kernel_event &&
cargo clippy -p sample_memory_buffer &&
cargo clippy -p sample_message_box &&
cargo clippy -p sample_ocr &&
cargo clippy -p sample_overlapped &&
cargo clippy -p sample_rss &&
cargo clippy -p sample_simple &&
cargo clippy -p sample_spellchecker &&
cargo clippy -p sample_uiautomation &&
cargo clippy -p sample_xaml_app &&
cargo clippy -p sample_xml &&
cargo clippy -p windows_aarch64_msvc &&
cargo clippy -p windows_i686_gnu &&
cargo clippy -p windows_i686_msvc &&
cargo clippy -p windows_x86_64_gnu &&
cargo clippy -p windows_x86_64_msvc &&
cargo clippy -p test_agile &&
cargo clippy -p test_alternate_success_code &&
cargo clippy -p test_arch &&
cargo clippy -p test_arch_feature &&
cargo clippy -p test_bstr &&
cargo clippy -p test_const_fields &&
cargo clippy -p test_core &&
cargo clippy -p test_debug &&
cargo clippy -p test_deprecated &&
cargo clippy -p test_does_not_return &&
cargo clippy -p test_enums &&
cargo clippy -p test_handles &&
cargo clippy -p test_helpers &&
cargo clippy -p test_implement &&
cargo clippy -p test_implement_class_factory &&
cargo clippy -p test_implement_data_object &&
cargo clippy -p test_implement_identity &&
cargo clippy -p test_implement_map &&
cargo clippy -p test_implement_no_use &&
cargo clippy -p test_implement_null_result &&
cargo clippy -p test_implement_properties &&
cargo clippy -p test_implement_winrt &&
cargo clippy -p test_interop &&
cargo clippy -p test_lib &&
cargo clippy -p test_matrix3x2 &&
cargo clippy -p test_mshtml &&
cargo clippy -p test_ntstatus &&
cargo clippy -p test_pwstr &&
cargo clippy -p test_return_struct &&
cargo clippy -p test_structs &&
cargo clippy -p test_sys &&
cargo clippy -p test_unions &&
cargo clippy -p test_weak &&
cargo clippy -p test_win32 &&
cargo clippy -p test_win32_arrays &&
cargo clippy -p tool_bindings &&
cargo clippy -p tool_gnu &&
cargo clippy -p tool_msvc &&
cargo clippy -p tool_sys &&
cargo clippy -p tool_windows &&
cargo clippy -p tool_yml
76 changes: 1 addition & 75 deletions .github/workflows/test.yml
Expand Up @@ -135,78 +135,4 @@ jobs:
cargo test --target ${{ matrix.target }} -p test_implement_properties &&
cargo test --target ${{ matrix.target }} -p test_implement_winrt
if: matrix.version == 'nightly'

- name: Test clippy
run: |
cargo clippy -p windows-bindgen &&
cargo clippy -p windows-implement &&
cargo clippy -p windows-metadata &&
cargo clippy -p windows-sys &&
cargo clippy -p windows-tokens &&
cargo clippy -p windows &&
cargo clippy -p sample_com_uri &&
cargo clippy -p sample_core_app &&
cargo clippy -p sample_create_window &&
cargo clippy -p sample_create_window_sys &&
cargo clippy -p sample_direct2d &&
cargo clippy -p sample_direct3d12 &&
cargo clippy -p sample_enum_windows &&
cargo clippy -p sample_enum_windows_sys &&
cargo clippy -p sample_kernel_event &&
cargo clippy -p sample_memory_buffer &&
cargo clippy -p sample_message_box &&
cargo clippy -p sample_ocr &&
cargo clippy -p sample_overlapped &&
cargo clippy -p sample_rss &&
cargo clippy -p sample_simple &&
cargo clippy -p sample_spellchecker &&
cargo clippy -p sample_uiautomation &&
cargo clippy -p sample_xaml_app &&
cargo clippy -p sample_xml &&
cargo clippy -p windows_aarch64_msvc &&
cargo clippy -p windows_i686_gnu &&
cargo clippy -p windows_i686_msvc &&
cargo clippy -p windows_x86_64_gnu &&
cargo clippy -p windows_x86_64_msvc &&
cargo clippy -p test_agile &&
cargo clippy -p test_alternate_success_code &&
cargo clippy -p test_arch &&
cargo clippy -p test_arch_feature &&
cargo clippy -p test_bstr &&
cargo clippy -p test_const_fields &&
cargo clippy -p test_core &&
cargo clippy -p test_debug &&
cargo clippy -p test_deprecated &&
cargo clippy -p test_does_not_return &&
cargo clippy -p test_enums &&
cargo clippy -p test_handles &&
cargo clippy -p test_helpers &&
cargo clippy -p test_implement &&
cargo clippy -p test_implement_class_factory &&
cargo clippy -p test_implement_data_object &&
cargo clippy -p test_implement_identity &&
cargo clippy -p test_implement_map &&
cargo clippy -p test_implement_no_use &&
cargo clippy -p test_implement_null_result &&
cargo clippy -p test_implement_properties &&
cargo clippy -p test_implement_winrt &&
cargo clippy -p test_interop &&
cargo clippy -p test_lib &&
cargo clippy -p test_matrix3x2 &&
cargo clippy -p test_mshtml &&
cargo clippy -p test_ntstatus &&
cargo clippy -p test_pwstr &&
cargo clippy -p test_return_struct &&
cargo clippy -p test_structs &&
cargo clippy -p test_sys &&
cargo clippy -p test_unions &&
cargo clippy -p test_weak &&
cargo clippy -p test_win32 &&
cargo clippy -p test_win32_arrays &&
cargo clippy -p tool_bindings &&
cargo clippy -p tool_gnu &&
cargo clippy -p tool_msvc &&
cargo clippy -p tool_sys &&
cargo clippy -p tool_windows &&
cargo clippy -p tool_yml
if: matrix.version == 'nightly' && matrix.target == 'x86_64-pc-windows-gnu'

96 changes: 86 additions & 10 deletions crates/tools/yml/src/main.rs
@@ -1,4 +1,9 @@
fn main() {
test_yml();
build_yml();
}

fn test_yml() {
let root = std::path::PathBuf::from(metadata::workspace_dir());
let mut yml = r#"name: Test
Expand Down Expand Up @@ -90,24 +95,95 @@ jobs:
yml.push_str(
r#"
if: matrix.version == 'nightly'
- name: Test clippy
run: |"#,
"#,
);

std::fs::write(root.join(".github/workflows/test.yml"), yml.as_bytes()).unwrap();
}

fn build_yml() {
let root = std::path::PathBuf::from(metadata::workspace_dir());
let mut yml = r#"name: Build
on:
pull_request:
push:
branches:
- master
env:
RUSTFLAGS: -Dwarnings
jobs:
cargo_fmt:
name: Check cargo formatting
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Run cargo fmt
run: cargo fmt --all -- --check
cargo_doc:
name: Check cargo docs
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Run cargo doc
run: cargo doc --no-deps -p windows
generation:
name: Check generation of `tool_${{ matrix.generator }}`
runs-on: windows-latest
strategy:
matrix:
generator: [bindings, windows, sys, yml]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Run tool_${{ matrix.generator }}
run: cargo run -p tool_${{ matrix.generator }}
- name: Compare
shell: bash
run: git diff --exit-code || (echo '::error::Generated `tool_${{ matrix.generator }}` are out-of-date. Please run `cargo run -p tool_${{ matrix.generator }}`'; exit 1)
cargo_sys:
name: Check windows-sys
runs-on: windows-latest
strategy:
matrix:
rust: [1.46.0, stable, nightly]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Update toolchain
run: rustup update --no-self-update ${{ matrix.rust }} && rustup default ${{ matrix.rust }}
- name: Run cargo check
run: cargo check -p windows-sys --all-features
cargo_clippy:
name: Check clippy
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Update toolchain
run: rustup update --no-self-update nightly && rustup default nightly
- name: Install clippy
run: rustup component add clippy
- name: Run cargo clippy
run: |"#
.to_string();

for name in crates(&root) {
yml.push_str(&format!("\n cargo clippy -p {} &&", name));
}

yml.truncate(yml.len() - 2);

yml.push_str(
r#"
if: matrix.version == 'nightly' && matrix.target == 'x86_64-pc-windows-gnu'
"#,
);

std::fs::write(root.join(".github/workflows/test.yml"), yml.as_bytes()).unwrap();
std::fs::write(root.join(".github/workflows/build.yml"), yml.as_bytes()).unwrap();
}

fn crates(root: &std::path::Path) -> Vec<String> {
Expand Down

0 comments on commit cd0d294

Please sign in to comment.