diff --git a/.github/actions/fix-environment/action.yml b/.github/actions/fix-environment/action.yml index 68d2f48c0d..45ae2d4735 100644 --- a/.github/actions/fix-environment/action.yml +++ b/.github/actions/fix-environment/action.yml @@ -29,27 +29,27 @@ runs: } "i686*" { - "${env:ProgramFiles(x86)}\Windows Kits\10\bin\10.0.22000.0\x86" >> $env:GITHUB_PATH + "${env:ProgramFiles(x86)}\Windows Kits\10\bin\10.0.26100.0\x86" >> $env:GITHUB_PATH ((Resolve-Path "$vs_root\VC\Tools\MSVC\*\bin\Hostx86\x86") | Sort-Object -Descending | Select -First 1).ToString() >> $env:GITHUB_PATH } "x86_64*" { - "${env:ProgramFiles(x86)}\Windows Kits\10\bin\10.0.22000.0\x64" >> $env:GITHUB_PATH + "${env:ProgramFiles(x86)}\Windows Kits\10\bin\10.0.26100.0\x64" >> $env:GITHUB_PATH ((Resolve-Path "$vs_root\VC\Tools\MSVC\*\bin\Hostx64\x64") | Sort-Object -Descending | Select -First 1).ToString() >> $env:GITHUB_PATH } "aarch64*" { - "${env:ProgramFiles(x86)}\Windows Kits\10\bin\10.0.22000.0\x64" >> $env:GITHUB_PATH - ((Resolve-Path "$vs_root\VC\Tools\MSVC\*\bin\Hostx64\x64") + "${env:ProgramFiles(x86)}\Windows Kits\10\bin\10.0.26100.0\arm64" >> $env:GITHUB_PATH + ((Resolve-Path "$vs_root\VC\Tools\MSVC\*\bin\Hostx64\arm64") | Sort-Object -Descending | Select -First 1).ToString() >> $env:GITHUB_PATH } "*" { (Join-Path $env:GITHUB_WORKSPACE "target\debug\deps").ToString() >> $env:GITHUB_PATH (Join-Path $env:GITHUB_WORKSPACE "target\test\debug\deps").ToString() >> $env:GITHUB_PATH - "INCLUDE=${env:ProgramFiles(x86)}\Windows Kits\10\include\10.0.22000.0\winrt;${env:ProgramFiles(x86)}\Windows Kits\10\include\10.0.22000.0\cppwinrt" ` + "INCLUDE=${env:ProgramFiles(x86)}\Windows Kits\10\include\10.0.26100.0\winrt;${env:ProgramFiles(x86)}\Windows Kits\10\include\10.0.26100.0\cppwinrt" ` >> $env:GITHUB_ENV } } @@ -64,3 +64,4 @@ runs: C:\msys64\usr\bin\pacman.exe --sync --refresh --noconfirm mingw-w64-x86_64-llvm C:\msys64\usr\bin\pacman.exe --sync --refresh --noconfirm mingw-w64-i686-gcc C:\msys64\usr\bin\pacman.exe --sync --refresh --noconfirm mingw-w64-x86_64-gcc + if: ${{ !contains(matrix.runner, 'windows-11-arm') }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1f34d171f7..a79a8f599d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,391 +14,395 @@ on: jobs: check: - runs-on: windows-2022 - strategy: matrix: include: - version: stable host: x86_64-pc-windows-msvc target: x86_64-pc-windows-msvc - etc: + runner: windows-2022 - version: nightly host: x86_64-pc-windows-msvc target: i686-pc-windows-msvc - etc: + runner: windows-2022 - version: nightly host: x86_64-pc-windows-gnu target: x86_64-pc-windows-gnu - etc: + runner: windows-2022 - version: stable host: x86_64-pc-windows-gnu target: i686-pc-windows-gnu - etc: + runner: windows-2022 - version: stable - host: x86_64-pc-windows-msvc + host: aarch64-pc-windows-msvc target: aarch64-pc-windows-msvc - etc: --no-run - - version: nightly - host: x86_64-pc-windows-msvc - target: aarch64-pc-windows-msvc - etc: --no-run + runner: windows-11-arm + + runs-on: ${{ matrix.runner }} steps: - name: Checkout uses: actions/checkout@v4 + - name: Install Rustup + shell: pwsh + run: | + Invoke-WebRequest -Uri "https://win.rustup.rs/aarch64" -OutFile "$env:TEMP\rustup-init.exe" + & "$env:TEMP\rustup-init.exe" --default-toolchain none --profile=minimal -y + "$env:USERPROFILE\.cargo\bin" | Out-File -Append -Encoding ascii $env:GITHUB_PATH + "CARGO_HOME=$env:USERPROFILE\.cargo" | Out-File -Append -Encoding ascii $env:GITHUB_ENV + if: ${{ matrix.runner == 'windows-11-arm' }} - name: Update toolchain run: rustup update --no-self-update ${{ matrix.version }} && rustup default ${{ matrix.version }}-${{ matrix.host }} - name: Add toolchain target run: rustup target add ${{ matrix.target }} - - name: Install fmt - run: rustup component add rustfmt + - name: Install fmt, clippy + run: rustup component add clippy rustfmt - name: Fix environment uses: ./.github/actions/fix-environment - name: Clean run: cargo clean - name: Test cppwinrt - run: cargo test -p cppwinrt --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p cppwinrt --target ${{ matrix.target }} - name: Test helpers - run: cargo test -p helpers --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p helpers --target ${{ matrix.target }} - name: Test sample_bits - run: cargo test -p sample_bits --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_bits --target ${{ matrix.target }} - name: Test sample_com_uri - run: cargo test -p sample_com_uri --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_com_uri --target ${{ matrix.target }} - name: Test sample_consent - run: cargo test -p sample_consent --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_consent --target ${{ matrix.target }} - name: Test sample_core_app - run: cargo test -p sample_core_app --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_core_app --target ${{ matrix.target }} - name: Test sample_counter - run: cargo test -p sample_counter --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_counter --target ${{ matrix.target }} - name: Test sample_counter_sys - run: cargo test -p sample_counter_sys --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_counter_sys --target ${{ matrix.target }} - name: Test sample_create_window - run: cargo test -p sample_create_window --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_create_window --target ${{ matrix.target }} - name: Test sample_create_window_sys - run: cargo test -p sample_create_window_sys --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_create_window_sys --target ${{ matrix.target }} - name: Test sample_credentials - run: cargo test -p sample_credentials --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_credentials --target ${{ matrix.target }} - name: Test sample_data_protection - run: cargo test -p sample_data_protection --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_data_protection --target ${{ matrix.target }} - name: Test sample_dcomp - run: cargo test -p sample_dcomp --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_dcomp --target ${{ matrix.target }} - name: Test sample_delay_load - run: cargo test -p sample_delay_load --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_delay_load --target ${{ matrix.target }} - name: Test sample_delay_load_sys - run: cargo test -p sample_delay_load_sys --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_delay_load_sys --target ${{ matrix.target }} - name: Test sample_device_watcher - run: cargo test -p sample_device_watcher --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_device_watcher --target ${{ matrix.target }} - name: Test sample_direct2d - run: cargo test -p sample_direct2d --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_direct2d --target ${{ matrix.target }} - name: Test sample_direct3d12 - run: cargo test -p sample_direct3d12 --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_direct3d12 --target ${{ matrix.target }} - name: Test sample_enum_windows - run: cargo test -p sample_enum_windows --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_enum_windows --target ${{ matrix.target }} - name: Test sample_enum_windows_sys - run: cargo test -p sample_enum_windows_sys --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_enum_windows_sys --target ${{ matrix.target }} - name: Test sample_file_dialogs - run: cargo test -p sample_file_dialogs --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_file_dialogs --target ${{ matrix.target }} - name: Test sample_json_validator - run: cargo test -p sample_json_validator --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_json_validator --target ${{ matrix.target }} - name: Test sample_json_validator_client - run: cargo test -p sample_json_validator_client --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_json_validator_client --target ${{ matrix.target }} - name: Test sample_json_validator_winrt - run: cargo test -p sample_json_validator_winrt --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_json_validator_winrt --target ${{ matrix.target }} - name: Test sample_json_validator_winrt_client - run: cargo test -p sample_json_validator_winrt_client --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_json_validator_winrt_client --target ${{ matrix.target }} - name: Test sample_json_validator_winrt_client_cpp - run: cargo test -p sample_json_validator_winrt_client_cpp --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_json_validator_winrt_client_cpp --target ${{ matrix.target }} - name: Test sample_kernel_event - run: cargo test -p sample_kernel_event --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_kernel_event --target ${{ matrix.target }} - name: Test sample_memory_buffer - run: cargo test -p sample_memory_buffer --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_memory_buffer --target ${{ matrix.target }} - name: Test sample_message_box - run: cargo test -p sample_message_box --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_message_box --target ${{ matrix.target }} - name: Test sample_message_box_sys - run: cargo test -p sample_message_box_sys --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_message_box_sys --target ${{ matrix.target }} - name: Test sample_ocr - run: cargo test -p sample_ocr --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_ocr --target ${{ matrix.target }} - name: Test sample_overlapped - run: cargo test -p sample_overlapped --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_overlapped --target ${{ matrix.target }} - name: Test sample_privileges - run: cargo test -p sample_privileges --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_privileges --target ${{ matrix.target }} - name: Test sample_privileges_sys - run: cargo test -p sample_privileges_sys --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_privileges_sys --target ${{ matrix.target }} - name: Test sample_rss - run: cargo test -p sample_rss --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_rss --target ${{ matrix.target }} - name: Test sample_shell - run: cargo test -p sample_shell --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_shell --target ${{ matrix.target }} - name: Test sample_simple - run: cargo test -p sample_simple --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_simple --target ${{ matrix.target }} - name: Test sample_spellchecker - run: cargo test -p sample_spellchecker --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_spellchecker --target ${{ matrix.target }} - name: Test sample_task_dialog - run: cargo test -p sample_task_dialog --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_task_dialog --target ${{ matrix.target }} - name: Test sample_task_dialog_sys - run: cargo test -p sample_task_dialog_sys --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_task_dialog_sys --target ${{ matrix.target }} - name: Test sample_thread_pool_work - run: cargo test -p sample_thread_pool_work --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_thread_pool_work --target ${{ matrix.target }} - name: Test sample_thread_pool_work_sys - run: cargo test -p sample_thread_pool_work_sys --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_thread_pool_work_sys --target ${{ matrix.target }} - name: Test sample_uiautomation - run: cargo test -p sample_uiautomation --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_uiautomation --target ${{ matrix.target }} - name: Test sample_wmi - run: cargo test -p sample_wmi --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_wmi --target ${{ matrix.target }} - name: Test sample_xml - run: cargo test -p sample_xml --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p sample_xml --target ${{ matrix.target }} - name: Test test_agile - run: cargo test -p test_agile --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_agile --target ${{ matrix.target }} - name: Test test_agile_reference - run: cargo test -p test_agile_reference --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_agile_reference --target ${{ matrix.target }} - name: Test test_alternate_success_code - run: cargo test -p test_alternate_success_code --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_alternate_success_code --target ${{ matrix.target }} - name: Test test_arch - run: cargo test -p test_arch --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_arch --target ${{ matrix.target }} - name: Test test_arch_feature - run: cargo test -p test_arch_feature --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_arch_feature --target ${{ matrix.target }} - name: Clean run: cargo clean - name: Test test_array - run: cargo test -p test_array --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_array --target ${{ matrix.target }} - name: Test test_bcrypt - run: cargo test -p test_bcrypt --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_bcrypt --target ${{ matrix.target }} - name: Test test_bindgen - run: cargo test -p test_bindgen --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_bindgen --target ${{ matrix.target }} - name: Test test_calling_convention - run: cargo test -p test_calling_convention --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_calling_convention --target ${{ matrix.target }} - name: Test test_cfg_generic - run: cargo test -p test_cfg_generic --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_cfg_generic --target ${{ matrix.target }} - name: Test test_class_hierarchy - run: cargo test -p test_class_hierarchy --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_class_hierarchy --target ${{ matrix.target }} - name: Test test_collection_interop - run: cargo test -p test_collection_interop --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_collection_interop --target ${{ matrix.target }} - name: Test test_collections - run: cargo test -p test_collections --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_collections --target ${{ matrix.target }} - name: Test test_component - run: cargo test -p test_component --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_component --target ${{ matrix.target }} - name: Test test_component_client - run: cargo test -p test_component_client --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_component_client --target ${{ matrix.target }} - name: Test test_composable - run: cargo test -p test_composable --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_composable --target ${{ matrix.target }} - name: Test test_composable_client - run: cargo test -p test_composable_client --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_composable_client --target ${{ matrix.target }} - name: Test test_const_fields - run: cargo test -p test_const_fields --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_const_fields --target ${{ matrix.target }} - name: Test test_const_params - run: cargo test -p test_const_params --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_const_params --target ${{ matrix.target }} - name: Test test_const_ptrs - run: cargo test -p test_const_ptrs --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_const_ptrs --target ${{ matrix.target }} - name: Test test_constructors - run: cargo test -p test_constructors --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_constructors --target ${{ matrix.target }} - name: Test test_constructors_client - run: cargo test -p test_constructors_client --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_constructors_client --target ${{ matrix.target }} - name: Test test_core - run: cargo test -p test_core --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_core --target ${{ matrix.target }} - name: Test test_debug - run: cargo test -p test_debug --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_debug --target ${{ matrix.target }} - name: Test test_debugger_visualizer - run: cargo test -p test_debugger_visualizer --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_debugger_visualizer --target ${{ matrix.target }} - name: Test test_deprecated - run: cargo test -p test_deprecated --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_deprecated --target ${{ matrix.target }} - name: Test test_dispatch - run: cargo test -p test_dispatch --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_dispatch --target ${{ matrix.target }} - name: Test test_does_not_return - run: cargo test -p test_does_not_return --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_does_not_return --target ${{ matrix.target }} - name: Test test_ecma335 - run: cargo test -p test_ecma335 --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_ecma335 --target ${{ matrix.target }} - name: Test test_enums - run: cargo test -p test_enums --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_enums --target ${{ matrix.target }} - name: Test test_error - run: cargo test -p test_error --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_error --target ${{ matrix.target }} - name: Test test_event_core - run: cargo test -p test_event_core --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_event_core --target ${{ matrix.target }} - name: Test test_events - run: cargo test -p test_events --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_events --target ${{ matrix.target }} - name: Test test_events_client - run: cargo test -p test_events_client --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_events_client --target ${{ matrix.target }} - name: Test test_extensions - run: cargo test -p test_extensions --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_extensions --target ${{ matrix.target }} - name: Test test_future - run: cargo test -p test_future --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_future --target ${{ matrix.target }} - name: Test test_handles - run: cargo test -p test_handles --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_handles --target ${{ matrix.target }} - name: Test test_implement - run: cargo test -p test_implement --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_implement --target ${{ matrix.target }} - name: Test test_implement_core - run: cargo test -p test_implement_core --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_implement_core --target ${{ matrix.target }} - name: Test test_interface - run: cargo test -p test_interface --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_interface --target ${{ matrix.target }} - name: Test test_interface_core - run: cargo test -p test_interface_core --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_interface_core --target ${{ matrix.target }} - name: Test test_interop - run: cargo test -p test_interop --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_interop --target ${{ matrix.target }} - name: Test test_lib - run: cargo test -p test_lib --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_lib --target ${{ matrix.target }} - name: Test test_link - run: cargo test -p test_link --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_link --target ${{ matrix.target }} - name: Test test_linux - run: cargo test -p test_linux --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_linux --target ${{ matrix.target }} - name: Test test_literals - run: cargo test -p test_literals --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_literals --target ${{ matrix.target }} - name: Test test_marshal - run: cargo test -p test_marshal --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_marshal --target ${{ matrix.target }} - name: Test test_match - run: cargo test -p test_match --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_match --target ${{ matrix.target }} - name: Test test_metadata - run: cargo test -p test_metadata --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_metadata --target ${{ matrix.target }} - name: Test test_msrv - run: cargo test -p test_msrv --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_msrv --target ${{ matrix.target }} - name: Test test_no_std - run: cargo test -p test_no_std --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_no_std --target ${{ matrix.target }} - name: Test test_no_use - run: cargo test -p test_no_use --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_no_use --target ${{ matrix.target }} - name: Test test_noexcept - run: cargo test -p test_noexcept --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_noexcept --target ${{ matrix.target }} - name: Test test_not_dll - run: cargo test -p test_not_dll --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_not_dll --target ${{ matrix.target }} - name: Test test_numerics - run: cargo test -p test_numerics --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_numerics --target ${{ matrix.target }} - name: Clean run: cargo clean - name: Test test_overloads - run: cargo test -p test_overloads --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_overloads --target ${{ matrix.target }} - name: Test test_overloads_client - run: cargo test -p test_overloads_client --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_overloads_client --target ${{ matrix.target }} - name: Test test_query_signature - run: cargo test -p test_query_signature --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_query_signature --target ${{ matrix.target }} - name: Test test_readme - run: cargo test -p test_readme --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_readme --target ${{ matrix.target }} - name: Test test_ref_params - run: cargo test -p test_ref_params --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_ref_params --target ${{ matrix.target }} - name: Test test_reference - run: cargo test -p test_reference --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_reference --target ${{ matrix.target }} - name: Test test_reference_client - run: cargo test -p test_reference_client --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_reference_client --target ${{ matrix.target }} - name: Test test_reference_custom - run: cargo test -p test_reference_custom --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_reference_custom --target ${{ matrix.target }} - name: Test test_reference_float - run: cargo test -p test_reference_float --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_reference_float --target ${{ matrix.target }} - name: Test test_reference_no_deps - run: cargo test -p test_reference_no_deps --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_reference_no_deps --target ${{ matrix.target }} - name: Test test_reference_no_windows - run: cargo test -p test_reference_no_windows --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_reference_no_windows --target ${{ matrix.target }} - name: Test test_reference_windows - run: cargo test -p test_reference_windows --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_reference_windows --target ${{ matrix.target }} - name: Test test_registry - run: cargo test -p test_registry --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_registry --target ${{ matrix.target }} - name: Test test_registry_default - run: cargo test -p test_registry_default --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_registry_default --target ${{ matrix.target }} - name: Test test_reserved - run: cargo test -p test_reserved --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_reserved --target ${{ matrix.target }} - name: Test test_resources - run: cargo test -p test_resources --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_resources --target ${{ matrix.target }} - name: Test test_result - run: cargo test -p test_result --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_result --target ${{ matrix.target }} - name: Test test_return_handle - run: cargo test -p test_return_handle --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_return_handle --target ${{ matrix.target }} - name: Test test_return_struct - run: cargo test -p test_return_struct --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_return_struct --target ${{ matrix.target }} - name: Test test_standalone - run: cargo test -p test_standalone --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_standalone --target ${{ matrix.target }} - name: Test test_string_param - run: cargo test -p test_string_param --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_string_param --target ${{ matrix.target }} - name: Test test_strings - run: cargo test -p test_strings --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_strings --target ${{ matrix.target }} - name: Test test_structs - run: cargo test -p test_structs --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_structs --target ${{ matrix.target }} - name: Test test_sys - run: cargo test -p test_sys --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_sys --target ${{ matrix.target }} - name: Test test_targets - run: cargo test -p test_targets --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_targets --target ${{ matrix.target }} - name: Test test_unions - run: cargo test -p test_unions --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_unions --target ${{ matrix.target }} - name: Test test_variant - run: cargo test -p test_variant --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_variant --target ${{ matrix.target }} - name: Test test_wdk - run: cargo test -p test_wdk --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_wdk --target ${{ matrix.target }} - name: Test test_weak - run: cargo test -p test_weak --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_weak --target ${{ matrix.target }} - name: Test test_weak_ref - run: cargo test -p test_weak_ref --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_weak_ref --target ${{ matrix.target }} - name: Test test_win32 - run: cargo test -p test_win32 --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_win32 --target ${{ matrix.target }} - name: Test test_win32_arrays - run: cargo test -p test_win32_arrays --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_win32_arrays --target ${{ matrix.target }} - name: Test test_window_long - run: cargo test -p test_window_long --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_window_long --target ${{ matrix.target }} - name: Test test_winrt - run: cargo test -p test_winrt --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p test_winrt --target ${{ matrix.target }} - name: Test tool_bindgen - run: cargo test -p tool_bindgen --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p tool_bindgen --target ${{ matrix.target }} - name: Test tool_bindings - run: cargo test -p tool_bindings --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p tool_bindings --target ${{ matrix.target }} - name: Test tool_gnu - run: cargo test -p tool_gnu --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p tool_gnu --target ${{ matrix.target }} - name: Test tool_license - run: cargo test -p tool_license --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p tool_license --target ${{ matrix.target }} - name: Test tool_merge - run: cargo test -p tool_merge --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p tool_merge --target ${{ matrix.target }} - name: Test tool_msvc - run: cargo test -p tool_msvc --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p tool_msvc --target ${{ matrix.target }} - name: Test tool_standalone - run: cargo test -p tool_standalone --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p tool_standalone --target ${{ matrix.target }} - name: Test tool_test_all - run: cargo test -p tool_test_all --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p tool_test_all --target ${{ matrix.target }} - name: Test tool_workspace - run: cargo test -p tool_workspace --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p tool_workspace --target ${{ matrix.target }} - name: Test tool_yml - run: cargo test -p tool_yml --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p tool_yml --target ${{ matrix.target }} - name: Test windows - run: cargo test -p windows --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p windows --target ${{ matrix.target }} - name: Test windows-bindgen - run: cargo test -p windows-bindgen --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p windows-bindgen --target ${{ matrix.target }} - name: Test windows-collections - run: cargo test -p windows-collections --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p windows-collections --target ${{ matrix.target }} - name: Test windows-core - run: cargo test -p windows-core --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p windows-core --target ${{ matrix.target }} - name: Test windows-ecma335 - run: cargo test -p windows-ecma335 --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p windows-ecma335 --target ${{ matrix.target }} - name: Test windows-future - run: cargo test -p windows-future --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p windows-future --target ${{ matrix.target }} - name: Clean run: cargo clean - name: Test windows-implement - run: cargo test -p windows-implement --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p windows-implement --target ${{ matrix.target }} - name: Test windows-interface - run: cargo test -p windows-interface --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p windows-interface --target ${{ matrix.target }} - name: Test windows-link - run: cargo test -p windows-link --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p windows-link --target ${{ matrix.target }} - name: Test windows-numerics - run: cargo test -p windows-numerics --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p windows-numerics --target ${{ matrix.target }} - name: Test windows-registry - run: cargo test -p windows-registry --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p windows-registry --target ${{ matrix.target }} - name: Test windows-result - run: cargo test -p windows-result --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p windows-result --target ${{ matrix.target }} - name: Test windows-strings - run: cargo test -p windows-strings --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p windows-strings --target ${{ matrix.target }} - name: Test windows-sys - run: cargo test -p windows-sys --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p windows-sys --target ${{ matrix.target }} - name: Test windows-targets - run: cargo test -p windows-targets --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p windows-targets --target ${{ matrix.target }} - name: Test windows-version - run: cargo test -p windows-version --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p windows-version --target ${{ matrix.target }} - name: Test windows_aarch64_gnullvm - run: cargo test -p windows_aarch64_gnullvm --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p windows_aarch64_gnullvm --target ${{ matrix.target }} - name: Test windows_aarch64_msvc - run: cargo test -p windows_aarch64_msvc --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p windows_aarch64_msvc --target ${{ matrix.target }} - name: Test windows_i686_gnu - run: cargo test -p windows_i686_gnu --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p windows_i686_gnu --target ${{ matrix.target }} - name: Test windows_i686_gnullvm - run: cargo test -p windows_i686_gnullvm --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p windows_i686_gnullvm --target ${{ matrix.target }} - name: Test windows_i686_msvc - run: cargo test -p windows_i686_msvc --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p windows_i686_msvc --target ${{ matrix.target }} - name: Test windows_x86_64_gnu - run: cargo test -p windows_x86_64_gnu --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p windows_x86_64_gnu --target ${{ matrix.target }} - name: Test windows_x86_64_gnullvm - run: cargo test -p windows_x86_64_gnullvm --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p windows_x86_64_gnullvm --target ${{ matrix.target }} - name: Test windows_x86_64_msvc - run: cargo test -p windows_x86_64_msvc --target ${{ matrix.target }} ${{ matrix.etc }} + run: cargo test -p windows_x86_64_msvc --target ${{ matrix.target }} - name: Check diff shell: bash run: | diff --git a/crates/tools/yml/src/test.rs b/crates/tools/yml/src/test.rs index d980ef7d74..aa975a3bbf 100644 --- a/crates/tools/yml/src/test.rs +++ b/crates/tools/yml/src/test.rs @@ -2,7 +2,7 @@ use super::*; pub fn yml() { let mut yml = - r"name: test + r#"name: test on: pull_request: @@ -18,47 +18,51 @@ on: jobs: check: - runs-on: windows-2022 - strategy: matrix: include: - version: stable host: x86_64-pc-windows-msvc target: x86_64-pc-windows-msvc - etc: + runner: windows-2022 - version: nightly host: x86_64-pc-windows-msvc target: i686-pc-windows-msvc - etc: + runner: windows-2022 - version: nightly host: x86_64-pc-windows-gnu target: x86_64-pc-windows-gnu - etc: + runner: windows-2022 - version: stable host: x86_64-pc-windows-gnu target: i686-pc-windows-gnu - etc: + runner: windows-2022 - version: stable - host: x86_64-pc-windows-msvc + host: aarch64-pc-windows-msvc target: aarch64-pc-windows-msvc - etc: --no-run - - version: nightly - host: x86_64-pc-windows-msvc - target: aarch64-pc-windows-msvc - etc: --no-run + runner: windows-11-arm + + runs-on: ${{ matrix.runner }} steps: - name: Checkout uses: actions/checkout@v4 + - name: Install Rustup + shell: pwsh + run: | + Invoke-WebRequest -Uri "https://win.rustup.rs/aarch64" -OutFile "$env:TEMP\rustup-init.exe" + & "$env:TEMP\rustup-init.exe" --default-toolchain none --profile=minimal -y + "$env:USERPROFILE\.cargo\bin" | Out-File -Append -Encoding ascii $env:GITHUB_PATH + "CARGO_HOME=$env:USERPROFILE\.cargo" | Out-File -Append -Encoding ascii $env:GITHUB_ENV + if: ${{ matrix.runner == 'windows-11-arm' }} - name: Update toolchain run: rustup update --no-self-update ${{ matrix.version }} && rustup default ${{ matrix.version }}-${{ matrix.host }} - name: Add toolchain target run: rustup target add ${{ matrix.target }} - - name: Install fmt - run: rustup component add rustfmt + - name: Install fmt, clippy + run: rustup component add clippy rustfmt - name: Fix environment - uses: ./.github/actions/fix-environment" + uses: ./.github/actions/fix-environment"# .to_string(); // This unrolling is required since "cargo test --all" consumes too much memory for the GitHub hosted runners @@ -80,7 +84,7 @@ jobs: &mut yml, r" - name: Test {name} - run: cargo test -p {name} --target ${{{{ matrix.target }}}} ${{{{ matrix.etc }}}}" + run: cargo test -p {name} --target ${{{{ matrix.target }}}}" ) .unwrap(); }