summaryrefslogtreecommitdiffstats
path: root/ci
AgeCommit message (Collapse)Author
2021-06-12ci: use musl to build debian artifactAndrew Gallant
Previously, I was trying to be a good citizen and let ripgrep use the system libc. But it turns out that building ripgrep on Arch with a newer version of glibc than what is in Ubuntu results in the whole thing breaking. Arguably, I should build the Debian artifact on an Ubuntu or Debian machine of an appropriate version, but that's too much work. If people really want that, then they can install some ancient version of ripgrep from their Ubuntu/Debian repo. Since we were already statically linking PCRE2, we go the whole nine yards and statically link the entire thing. Fixes #1890
2021-05-31cli: add -. as short option for --hiddenJoão Marcos
This is somewhat non-standard, but it seems nice on the surface: short flag names are in short supply, --hidden is probably somewhat common and -. has an obvious connection with how hidden files are named on Unix. Closes #1680
2021-03-20ci: fix deb build script in clean checkoutAllen Wild
If ripgrep hasn't been built yet (i.e. target/debug/ doesn't exist), then cargo-out-dir can't find OUT_DIR and the copy commands fail. Fix by running cargo build before finding OUT_DIR. Also add a check to fail early with a sensible error message when asciidoctor isn't installed, rather than failing because of a missing rg.1 file after the build. PR #1831
2020-11-09ci: install cross from crates.ioTaiki Endo
A new release of cross has been put out, so we no longer need to install it from git. PR #1728
2020-05-08doc: use asciidoctor instead of a2xChayoung You
AsciiDoc development is continued under asciidoctor. See https://github.com/asciidoc/asciidoc. We do however fallback to a2x if asciidoctor is not present. This is to ease migration, but at some point, it's likely that support for a2x will be dropped. Originally reported downstream: https://github.com/Homebrew/linuxbrew-core/issues/19885 Closes #1544
2020-03-15ci: fix deb build scriptAndrew Gallant
2020-03-15ci: make script names consistentAndrew Gallant
2020-03-15ci: remove Travis and appveyor specific stuffAndrew Gallant
2020-02-20ci: switch build to GitHub ActionsAndrew Gallant
2020-02-20ci: soft-disable Travis and AppVeyorAndrew Gallant
2020-02-17ci: check rustfmt in TravisAndrew Gallant
2020-02-17cli: add --no-require-git flagAndrew Gallant
This flag prevents ripgrep from requiring one to search a git repository in order to respect git-related ignore rules (global, .gitignore and local excludes). This actually corresponds to behavior ripgrep had long ago, but #934 changed that. It turns out that users were relying on this buggy behavior. In most cases, fixing it as simple as converting one's rules to .ignore or .rgignore files. Unfortunately, there are other use cases---like Perforce automatically respecting .gitignore files---that make a strong case for ripgrep to at least support this. The UX of a flag like this is absolutely atrocious. It's so obscure that it's really not worth explicitly calling it out anywhere. Moreover, the error cases that occur when this flag isn't used (but its behavior is desirable) will not be intuitive, do not seem easily detectable and will not guide users to this flag. Nevertheless, the motivation for this is just barely strong enough for me to begrudgingly accept this. Fixes #1414, Closes #1416
2020-01-10ci: fix musl docker buildAndrew Gallant
Looks like the old japaric images are bunk. We update our docker image to be based on the new rustembedded images and configure cross to use it. Turns out that this wasn't due to a stale docker image, but rather, a bug in cross: https://github.com/rust-embedded/cross/issues/357 We work around that bug by installing the master branch of cross. Sigh.
2019-08-01ci: fix musl deployment11.0.2Andrew Gallant
The docker image that the Linux binary is now built in does not have ASCII doc installed, so setup Cross to point to my own image with those tools installed.
2019-04-25ci: use cross for musl x86_64 buildsAndrew Gallant
This is necessary because jemalloc + musl + Ubuntu 16.04 is apparently broken. Moreover, jemalloc doesn't support i686, so we accept the performance regression there. See also: https://github.com/gnzlbg/jemallocator/issues/124
2018-09-07ci: always force PCRE2 static builds for releasesAndrew Gallant
2018-09-07deb: add completionsAndrew Gallant
This commit adds Bash, zsh and fish completions to the Debian binary package. Fixes #1032
2018-08-21release: better support for binary Debian packageAndrew Gallant
This commit beefs up the package metadata used by the 'cargo deb' tool to produce a binary dpkg. In particular, we now include ripgrep's man page. This commit includes a new script, 'ci/build_deb.sh', which will handle the build process for a dpkg, which has become a bit more nuanced than just running 'cargo deb'. We don't (yet) run this script in CI. Fixes #842
2018-08-20test_complete: match certain long options in description bodiesdana
2018-08-20ripgrep: migrate to libripgrepAndrew Gallant
This commit does the work to delete the old `grep` crate and effectively rewrite most of ripgrep core to use the new libripgrep crates. The new `grep` crate is now a facade that collects the various crates that make up libripgrep. The most complex part of ripgrep core is now arguably the translation between command line parameters and the library options, which is ultimately where we want to be.
2018-07-17deps: get rid of unstable featureAndrew Gallant
This was introduced as a temporary measure for dealing with the regex crate's unstable feature, but it was never included in a release of ripgrep. Thus, we remove it. The regex crate will now automatically enable SIMD optimizations when available.
2018-07-06ci: minor improvements to test_complete.shdana
2018-03-12deps: update regex crateAndrew Gallant
This update brings with it a new feature of the regex crate which will now use SIMD optimizations automatically at runtime with no necessary compile time flags. All that's needed is to enable the `unstable` feature. Other crates, such as bytecount and encoding_rs, are still using the old-style SIMD support, so we leave the simd-accel and avx-accel features. However, the binaries we distribute on Github no longer have those features enabled, which makes them truly portable. Fixes #135
2018-02-20ci: fix man page generation on macOSAndrew Gallant
2018-02-20ci: build man page on ARM cross-compileAndrew Gallant
This fixes a bug where ripgrep's man page wasn't generated in the ARM cross-compile build. Mostly, this should just require installing asciidoc and making sure we test that it actually works. Fixes #791
2018-02-10ci: remove `cargo clean`Andrew Gallant
We aren't using Travis' Cargo cache any more (because it actually seems to slow down builds), so there's no reason to clean out old build outputs. Also, even if we were using the Cargo cache, our approach to finding the correct Cargo OUT_DIR has become more robust, so we still wouldn't need to remove the old build outputs.
2018-02-10ci: update deployment for doc rearrangementAndrew Gallant
This fixes CI to handle the new documentation files. We also continue to do more cleanup. In particular, we devise a nicer way of detecting the most recent Cargo OUT_DIR by writing a dummy file, and looking for the most recently modified version of that file.
2018-02-06ci: test build outputsAndrew Gallant
This modifies CI to check that we generate completion files and a man page. We also enable tests on arm.
2018-02-06doc: generate man pageAndrew Gallant
This commit uses the recent refactoring for defining flags to automatically generate a man page. This finally allows us to define the documentation for each flag in a single place. The man page is generated on every build, if and only if `asciidoc` is installed. When generated, it is placed in Cargo's `OUT_DIR` directory, which is the same place that shell completions live.
2018-02-06ci: cleanupAndrew Gallant
This cleans up our CI scripts but doesn't significantly change anything. Mostly this is removing dead code and wrong comments, and making the style a bit more consistent.
2017-12-19Speeding CI buildsLilian A. Moraru
2017-12-18Add armhf build to Travis CILilian A. Moraru
Fixes #676
2017-08-23ci: strip ripgrep binary on UnixAndrew Gallant
This commit strips the ripgrep binary release artifact produced by CI for Unix. Fixes #413
2017-07-26Update test_complete to source completion function for more reliable options ↵dana
parsing
2017-07-18Update test_complete.sh to avoid false positives related to shell syntaxdana
2017-07-06Add test_complete.sh to CI tasksdana
2017-07-06Add test_complete script to compare `rg --help` output to zsh completion ↵dana
function
2017-05-29Add Zsh completion fileFangrui Song
2017-03-28remove uninstall stepAndrew Gallant
2016-12-07fix ci0.3.2Andrew Gallant
2016-12-07Fix completion build.rsAndrew Gallant
2016-11-20bsd doesn't have --recursive0.3.0Andrew Gallant
2016-11-20another attempt to fix deployAndrew Gallant
2016-11-20fix deployAndrew Gallant
2016-11-20Fix completion script deployment bundle.Andrew Gallant
2016-11-20Completely re-work colored output and tty handling.Andrew Gallant
This commit completely guts all of the color handling code and replaces most of it with two new crates: wincolor and termcolor. wincolor provides a simple API to coloring using the Windows console and termcolor provides a platform independent coloring API tuned for multithreaded command line programs. This required a lot more flexibility than what the `term` crate provided, so it was dropped. We instead switch to writing ANSI escape sequences directly and ignore the TERMINFO database. In addition to fixing several bugs, this commit also permits end users to customize colors to a certain extent. For example, this command will set the match color to magenta and the line number background to yellow: rg --colors 'match:fg:magenta' --colors 'line:bg:yellow' foo For tty handling, we've adopted a hack from `git` to do tty detection in MSYS/mintty terminals. As a result, ripgrep should get both color detection and piping correct on Windows regardless of which terminal you use. Finally, switch to line buffering. Performance doesn't seem to be impacted and it's an otherwise more user friendly option. Fixes #37, Fixes #51, Fixes #94, Fixes #117, Fixes #182, Fixes #231
2016-11-17Switch from Docopt to Clap.Andrew Gallant
There were two important reasons for the switch: 1. Performance. Docopt does poorly when the argv becomes large, which is a reasonable common use case for search tools. (e.g., use with xargs) 2. Better failure modes. Clap knows a lot more about how a particular argv might be invalid, and can therefore provide much clearer error messages. While both were important, (1) made it urgent. Note that since Clap requires at least Rust 1.11, this will in turn increase the minimum Rust version supported by ripgrep from Rust 1.9 to Rust 1.11. It is therefore a breaking change, so the soonest release of ripgrep with Clap will have to be 0.3. There is also at least one subtle breaking change in real usage. Previous to this commit, this used to work: rg -e -foo Where this would cause ripgrep to search for the string `-foo`. Clap currently has problems supporting this use case (see: https://github.com/kbknapp/clap-rs/issues/742), but it can be worked around by using this instead: rg -e [-]foo or even rg [-]foo and this still works: rg -- -foo This commit also adds Bash, Fish and PowerShell completion files to the release, fixes a bug that prevented ripgrep from working on file paths containing invalid UTF-8 and shows short descriptions in the output of `-h` but longer descriptions in the output of `--help`. Fixes #136, Fixes #189, Fixes #210, Fixes #230
2016-10-29Move all gitignore matching to separate crate.Andrew Gallant
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
2016-10-10Finish overhaul of glob matching.Andrew Gallant
This commit completes the initial move of glob matching to an external crate, including fixing up cross platform support, polishing the external crate for others to use and fixing a number of bugs in the process. Fixes #87, #127, #131
2016-09-24Add --files-with-matches flag.Andrew Schwartzmeyer
Closes #26. Acts like --count but emits only the paths of files with matches, suitable for piping to xargs. Both mmap and no-mmap searches terminate after the first match is found. Documentation updated and tests added.