# The Windows build, which the Macs this is developed on cannot compile: # the whole crate through clippy, the external CLI's tests, including the # named pipe between two processes, the updater's, and the local SFTP pane's # paths (std canonicalizes to `\\?\C:\…` there). # # A push runs it only when it touches code that differs on Windows (the # files with `cfg(windows)` and friends), the build script or the # dependencies. Windows code added to another file goes in this list too; # until then, run it by hand (Actions › windows › Run workflow). Tags never # run it: the release workflow builds Windows itself. name: windows on: push: branches: ["**"] paths: - "src/cli/**" - "src/update/**" - "src/app/paths.rs" - "src/app/window_hiding.rs" - "src/main.rs" - "src/bin/**" - "src/ssh/connection.rs" - "src/sftp/download.rs" - "src/sftp/model.rs" - "src/sftp/upload.rs" - "src/credential/credential_dialog.rs" - "src/settings/settings_panel.rs" - "tests/cli_bin.rs" - "build.rs" - "Cargo.toml" - "Cargo.lock" - "rust-toolchain.toml" workflow_dispatch: jobs: cli: runs-on: windows-latest timeout-minutes: 90 env: CARGO_TERM_COLOR: always steps: - uses: actions/checkout@v4 # rust-toolchain.toml picks the toolchain; this installs it with the # components it lists before the cache key is computed. - run: rustup toolchain install - uses: Swatinem/rust-cache@v2 # In case aws-lc-sys wants to assemble rather than use its prebuilt # objects. - uses: ilammy/setup-nasm@v1 - run: cargo clippy --all-targets -- -D warnings - run: "cargo test --lib cli::" - run: "cargo test --lib update::" - run: "cargo test --lib sftp::tests::local_listing" - run: cargo test --test cli_bin