mirror of
https://github.com/BurntSushi/ripgrep.git
synced 2024-12-12 19:18:24 +02:00
d79add341b
This PR introduces a new sub-crate, `ignore`, which primarily provides a fast recursive directory iterator that respects ignore files like gitignore and other configurable filtering rules based on globs or even file types. This results in a substantial source of complexity moved out of ripgrep's core and into a reusable component that others can now (hopefully) benefit from. While much of the ignore code carried over from ripgrep's core, a substantial portion of it was rewritten with the following goals in mind: 1. Reuse matchers built from gitignore files across directory iteration. 2. Design the matcher data structure to be amenable for parallelizing directory iteration. (Indeed, writing the parallel iterator is the next step.) Fixes #9, #44, #45
68 lines
2.0 KiB
YAML
68 lines
2.0 KiB
YAML
environment:
|
|
global:
|
|
PROJECT_NAME: ripgrep
|
|
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
|
|
|
|
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
|
|
- 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:
|
|
- master
|
|
# - appveyor
|
|
# - /\d+\.\d+\.\d+/
|
|
# except:
|
|
# - master
|