mirror of
https://github.com/BurntSushi/ripgrep.git
synced 2024-12-12 19:18:24 +02:00
84f4b4ef68
[ignore] tests and new matched_path_or_any_parents method The test data (gitignore rules and expected result) is based on the test repo at <https://github.com/behnam/gitignore-test>. The new `matched_path_or_any_parents` method fixes a bug in gitignore matching where rules of form `<dir>/*` result in ignoring only first-level files, but no deep files. This is not correct, as `<dir>/*` matches the first-level directories under `<dir>`, resulting all to be ignored. The new method fixes it by trying to match all parents in the path against the gitignore rules. The new method is necessary because it necessarily entails a performance hit for trying to match all parents.
73 lines
2.2 KiB
YAML
73 lines
2.2 KiB
YAML
environment:
|
|
global:
|
|
PROJECT_NAME: ripgrep
|
|
RUST_BACKTRACE: full
|
|
matrix:
|
|
- TARGET: i686-pc-windows-gnu
|
|
CHANNEL: stable
|
|
- TARGET: i686-pc-windows-msvc
|
|
CHANNEL: stable
|
|
- TARGET: x86_64-pc-windows-gnu
|
|
CHANNEL: stable
|
|
- TARGET: x86_64-pc-windows-msvc
|
|
CHANNEL: stable
|
|
|
|
# Install Rust and Cargo
|
|
# (Based on from https://github.com/rust-lang/libc/blob/master/appveyor.yml)
|
|
install:
|
|
- curl -sSf -o rustup-init.exe https://win.rustup.rs/
|
|
- rustup-init.exe -y --default-host %TARGET%
|
|
- set PATH=%PATH%;C:\Users\appveyor\.cargo\bin
|
|
- if defined MSYS2_BITS set PATH=%PATH%;C:\msys64\mingw%MSYS2_BITS%\bin
|
|
- rustc -V
|
|
- cargo -V
|
|
|
|
# ???
|
|
build: false
|
|
|
|
# Equivalent to Travis' `script` phase
|
|
# TODO modify this phase as you see fit
|
|
test_script:
|
|
- cargo test --verbose
|
|
- cargo test --verbose --manifest-path grep/Cargo.toml
|
|
- cargo test --verbose --manifest-path globset/Cargo.toml
|
|
- cargo test --verbose --manifest-path ignore/Cargo.toml
|
|
- cargo test --verbose --manifest-path wincolor/Cargo.toml
|
|
- cargo test --verbose --manifest-path termcolor/Cargo.toml
|
|
|
|
before_deploy:
|
|
# Generate artifacts for release
|
|
# TODO(burntsushi): How can we enable SSSE3 on Windows?
|
|
- cargo build --release
|
|
- mkdir staging
|
|
- copy target\release\rg.exe staging
|
|
- ps: copy target\release\build\ripgrep-*\out\_rg.ps1 staging
|
|
- cd staging
|
|
# release zipfile will look like 'rust-everywhere-v1.2.3-x86_64-pc-windows-msvc'
|
|
- 7z a ../%PROJECT_NAME%-%APPVEYOR_REPO_TAG_NAME%-%TARGET%.zip *
|
|
- appveyor PushArtifact ../%PROJECT_NAME%-%APPVEYOR_REPO_TAG_NAME%-%TARGET%.zip
|
|
|
|
deploy:
|
|
description: 'Automatically deployed release'
|
|
# All the zipped artifacts will be deployed
|
|
artifact: /.*\.zip/
|
|
auth_token:
|
|
secure: vv4vBCEosGlyQjaEC1+kraP2P6O4CQSa+Tw50oHWFTGcmuXxaWS0/yEXbxsIRLpw
|
|
provider: GitHub
|
|
# deploy when a new tag is pushed and only on the stable channel
|
|
on:
|
|
# channel to use to produce the release artifacts
|
|
# NOTE make sure you only release *once* per target
|
|
# TODO you may want to pick a different channel
|
|
CHANNEL: stable
|
|
appveyor_repo_tag: true
|
|
|
|
branches:
|
|
only:
|
|
- /\d+\.\d+\.\d+/
|
|
- master
|
|
# - appveyor
|
|
# - /\d+\.\d+\.\d+/
|
|
# except:
|
|
# - master
|