Jon Gjengset
3a68d5c5f9
Avoid double builds for tags
...
This is pretty sad, as I'd like for build status to also be visible for
release tags, but
https://github.com/travis-ci/travis-ci/issues/2456#issuecomment-441393704
and
https://github.com/travis-ci/travis-ci/issues/2200#issuecomment-441395545
make that unreasonable. So for the time being we'll settle with just
doing CI for PRs and pushes to master.
2018-11-24 16:06:39 -05:00
Jon Gjengset
30079d8b9b
Release 0.9.5
2018-11-24 15:22:53 -05:00
Jon Gjengset
7675efb230
Also test tagged releases
2018-11-24 15:22:53 -05:00
Jon Gjengset
86d4da84d7
Note that we support older stable versions
...
[skip ci]
2018-11-24 15:16:29 -05:00
Jon Gjengset
cb83d0d26c
Merge pull request #103 from jonhoo/tuned-ci
...
Refine Travis CI build and add rustfmt/clippy
2018-11-24 15:12:51 -05:00
Jon Gjengset
1e9ac02b69
Don't run CI on push except on master
...
This avoids double-testing PRs that are made from branches on
jonhoo/rust-imap.
2018-11-24 14:32:53 -05:00
Jon Gjengset
2d28884da7
Also test minimum supported Rust version
...
See https://travis-ci.org/jonhoo/rust-imap/builds/459198148 .
Since b6e9ea080b , the `crate` issue is
fixed, so >=1.26.2 will work.
2018-11-24 14:18:39 -05:00
Jon Gjengset
f25b9995eb
Let's see what Rust version we support
2018-11-24 14:17:30 -05:00
Jon Gjengset
a2b0773622
Remove AppVeyor now that Travis does Windows
...
[skip ci]
2018-11-24 14:17:30 -05:00
Jon Gjengset
cdbc330d77
Just test stable on non-linux
...
Let's not waste Travis' cycles unnecessarily
2018-11-24 14:17:30 -05:00
Jon Gjengset
64b968cd16
Don't worry that tarpaulin is already installed
2018-11-24 14:17:29 -05:00
Jon Gjengset
d5076883c5
Only require sudo for integration tests
2018-11-24 14:17:29 -05:00
Jon Gjengset
481ace22a6
Also test on Windows!
2018-11-24 14:17:29 -05:00
Jon Gjengset
1eab9c8375
Refine Travis CI build and add rustfmt/clippy
...
This patch modifies the Travis build pipeline to include multiple
[build stages](https://docs.travis-ci.com/user/build-stages/ ). CI now
progresses in the following steps:
- First, `cargo check` is run on `stable` only.
If it fails, the build is considered failed.
This is so that we can fail fast for obviously botched commits.
- Then, unit and doc tests are run for all targets.
If any non-nightly tests fail, the build fails.
- Then, integration tests with
[GreenMail](http://www.icegreen.com/greenmail/ ) are run on Linux for
all Rust targets. We can't run them on macOS because it doesn't
support the Docker service.
If any non-nightly tests fail, the build fails.
- Then, `rustfmt` and `clippy` are both run on *beta* and on nightly.
We use beta instead of stable to try to give ourselves some headroom
for changes coming down the pike. The lints are only run on Linux,
because the platform shouldn't matter.
If any beta lints fail, the build fails.
- And finally, we generate a coverage report on nightly on Linux.
This can only run on nightly because tarpaulin requires nightly.
It's only run on Linux, because we want to include integration tests.
Note that the coverage stage has its own cache
(`CACHE_NAME=coverage`) because the only thing it caches is cargo
tarpaulin (the rust/cargo cache is cleaned before exit).
Fixes #48 .
2018-11-24 14:17:29 -05:00
Jon Gjengset
b6e9ea080b
Make crate compile on Rust 1.26.2+
2018-11-24 14:17:15 -05:00
Jon Gjengset
a610283861
Fix nightly clippy warning
2018-11-24 12:45:07 -05:00
Jon Gjengset
cb9df750fd
Restart test server in case tests aren't reentrant
...
Specifically, if a test doesn't clean up nicely after itself, running it
a second time for checking coverage might make it fail! We restart the
docker server so that all the server state is erased, which should
mitigate that.
2018-11-24 00:57:07 -05:00
Jon Gjengset
e7e20c08e9
Merge branch 'integration-testing'
2018-11-23 13:55:57 -05:00
Jon Gjengset
6aa7c30167
Quick'n'dirty fix for missing lettre release
2018-11-23 13:55:36 -05:00
Jon Gjengset
c7a6a72ed7
Add is-it-maintained badges
...
[skip ci]
2018-11-22 22:02:21 -05:00
Jon Gjengset
26d8e8e333
Actually, now it's codecov.io
2018-11-22 20:57:18 -05:00
Jon Gjengset
328144b3f5
Add testing instructions to README
2018-11-22 20:56:42 -05:00
Jon Gjengset
74fc745618
Fix typo
2018-11-22 20:56:42 -05:00
Jon Gjengset
b75e30802a
No need to test --lib twice
2018-11-22 20:56:42 -05:00
Jon Gjengset
9be18cc574
No need to even install coverage on osx
2018-11-22 20:56:42 -05:00
Jon Gjengset
13a5638149
We're using coveralls.io 🤦
2018-11-22 20:56:41 -05:00
Jon Gjengset
9353493139
Make sure tests get run by coverage
2018-11-22 20:56:41 -05:00
Jon Gjengset
3e034585b3
Run Greenmail detched
2018-11-22 20:56:41 -05:00
Jon Gjengset
e52290e8dd
list test isn't done yet
2018-11-22 20:56:41 -05:00
Jon Gjengset
f4e1dc81b5
Only check coverage on stable
2018-11-22 20:56:41 -05:00
Jon Gjengset
b85e4cbe9a
No docker on osx
2018-11-22 20:56:41 -05:00
Jon Gjengset
4d9cd8c49a
Better code coverage maybe?
2018-11-22 20:56:41 -05:00
Jon Gjengset
06106fbc58
Don't run integration tests on appveyor
...
It is
[possible](https://stefanscherer.github.io/setup-windows-docker-ci-appveyor/ )
but I don't want to dig into it atm.
2018-11-22 20:56:41 -05:00
Jon Gjengset
c393fd7162
Add Travis integration testing
...
This uses [GreenMail's Docker
image](http://www.icegreen.com/greenmail/#deploy_docker_standalone ) to
spin up a real SMTP+IMAP server on Travis, and then runs a series of
integration tests against it by sending e-mails using
[`lettre`](https://crates.io/crates/lettre ) and checking that we can
receive them correctly.
A start on #101 .
2018-11-22 20:56:41 -05:00
Jon Gjengset
8299a6be9d
Bump version for repository move
2018-11-22 20:55:25 -05:00
Jon Gjengset
3fbf52ef54
Bump version for string changes and "" fix
2018-11-22 17:58:38 -05:00
Jon Gjengset
5dc51ac6b1
Show example of how to use store to delete
2018-11-22 17:57:56 -05:00
Jon Gjengset
357603b15f
Empty string != ""
2018-11-22 17:57:41 -05:00
Jon Gjengset
2b17bc0538
Make all public methods generic over str ref
2018-11-22 17:57:05 -05:00
Jon Gjengset
35acfeb108
Fix up README
2018-11-22 14:46:31 -05:00
Jon Gjengset
bce4831ccb
Clippy clean
2018-11-22 14:27:07 -05:00
Jon Gjengset
fc935bf884
Simplify fetch a little
2018-11-22 14:03:29 -05:00
Jon Gjengset
5dd9dfe469
Even more doc updates
2018-11-22 14:00:58 -05:00
Jon Gjengset
f83742dc3d
A significant documentation upgrade
...
Fixes #77 .
Touches on #74 .
Fixes #70 through documentation (I think?)
Fixes #62 .
2018-11-21 16:37:47 -05:00
Jon Gjengset
bddfab357f
Merge pull request #98 from kmkaplan/issue-95-authenticate-base64
...
[BUGFIX] Expect a space after the "+" in Client::authenticate.
2018-11-17 11:31:13 -05:00
Kim Minh Kaplan
de5a38366c
[BUGFIX] Expect a space after the "+" in Client::authenticate.
...
RFC 3501: A continue-req from the server starts with "+" SP.
2018-11-17 07:37:33 +00:00
Jon Gjengset
28e4201eb3
Merge pull request #97 from kmkaplan/issue-95-authenticate-base64
...
imap::client::Client::authenticate: Base64 encode the result of the A…
2018-11-10 16:56:44 -05:00
Kim Minh Kaplan
033c23ef11
Document that Authenticator does the Base64 encoding and decoding.
2018-11-10 09:15:23 +00:00
Kim Minh Kaplan
c2c7e2a3f7
In Authenticator::process change the challenge from a Vec<u8> to a &[u8]
2018-11-10 08:54:46 +00:00
Kim Minh Kaplan
9e0a5d7c8a
Escape '+' character in regexp.
2018-11-09 22:35:22 +00:00