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

Split clippy into separate build runner #1487

Merged
merged 5 commits into from Feb 1, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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