# Copyright © 2018–2025 Trevor Spiteri # Copying and distribution of this file, with or without modification, # are permitted in any medium without royalty provided the copyright # notice and this notice are preserved. This file is offered as-is, # without any warranty. skip_tags: true branches: except: - www environment: MSRV: 1.83.0 matrix: - TARGET: x86_64-pc-windows-msvc - TARGET: x86_64-pc-windows-gnu - TARGET: i686-pc-windows-msvc cache: - '%USERPROFILE%\.cargo\registry\cache' install: - set PATH=C:\msys64\usr\bin;%USERPROFILE%\.cargo\bin;%PATH% - curl -sSf -o rustup-init.exe https://win.rustup.rs - rustup-init.exe -y --default-host %TARGET% --default-toolchain none --no-modify-path - rustup --version - rustup toolchain install --profile minimal beta-%TARGET% %MSRV%-%TARGET% - rustup component add --toolchain beta-%TARGET% clippy build: false before_test: - bash -c "if [ -d $USERPROFILE/.cargo/registry/src ]; then rm -r $USERPROFILE/.cargo/src; fi" - bash -c "if [ -d $USERPROFILE/.cargo/registry/cache ]; then cd $USERPROFILE/.cargo/registry; find cache -name \*.crate | sort; fi" test_script: - cargo +beta-%TARGET% clippy --all-targets --features "fail-on-warnings arbitrary borsh num-traits serde std" - cargo +beta-%TARGET% test --release --features "fail-on-warnings arbitrary borsh num-traits serde std" - cargo +%MSRV%-%TARGET% test --lib --features "fail-on-warnings num-traits std" after_test: # ugh, appveyor can't handle percentage signs, so we need to use $(sed 's/\.crate$//' <<< $s) - bash -c "if [ -d $USERPROFILE/.cargo/registry/cache ]; then cd $USERPROFILE/.cargo/registry; for c in cache/*/*.crate; do s=src/${c#cache/}; if [ ! -e $(sed 's/\.crate$//' <<< $s) ]; then rm -v $c; fi; done; find cache -name \*.crate | sort; fi"