Commit Graph

27 Commits

Author SHA1 Message Date
Christian Duerr 56fea343ff
Set maximum Rust version to 1.31.0
By setting the minimum Rust version and enforcing it with CI, Alacritty
should hopefully make it possible for maintainers to package the
application even on distributions which are not rolling release.

The 1.31.0 target has been chosen here because it's the first version of
the Rust 2018 release. Bumping this version in the future should be
considered to be a breaking change and should only be done with caution
and in consideration of the supported Rust versions of the major
distributions available.

This fixes #2277.
2019-04-09 19:29:46 +00:00
Christian Duerr cfd025b528
Add rustfmt style guide 2019-03-30 16:48:36 +00:00
Christian Duerr 8681e2e8a0
Remove deployment script from clippy builds 2019-02-10 23:15:00 +00:00
Christian Duerr 430b89c159
Move clippy tests to stable
The clippy tests had to be run on nightly previously since it wasn't
available with the stable compiler yet, however this had the potential
to fail a lot since not all nightly builds offer clippy.

Since clippy is now available for stable rust, moving clippy to a stable
build should make sure that the failure rate of the CI job is cut down
to a minimum.

This fixes https://github.com/jwilm/alacritty/issues/2007.
2019-01-23 22:04:45 +00:00
Christian Duerr 5096426f9e
Remove Appveyor CI builds
This completely removes all Appveyor CI build jobs to move Alacritty to
a singular CI provider for all platforms.

To ensure that Windows is still properly tested, the allowed failure for
the stable Windows build job on travis has been removed.

This fixes #1679.
2019-01-19 22:41:24 +00:00
Muhammad Talal Anwar f57bd6e12f Remove sudo keyword from travis
The `sudo` keyword has been deprecated.

See: https://blog.travis-ci.com/2018-11-19-required-linux-infrastructure-migration
2018-12-06 14:17:54 +00:00
Christian Duerr 82d0c5ea44
Fix i386 CI releases
The i386 CI releases were still using x86_64 platforms for building the
output binaries, as a result the produced binaries did not work properly
on i386 systems.

The maximum time of 50 minutes was exceeded when Alacritty tries to build
for all Linux platforms, this was because it was effectively compiling
Alacritty from scratch four times.

By making use of the previous build artifacts, it's possible to cut this
down to two compiles using the `--no-build` option of `cargo-deb`.
2018-11-14 23:47:13 +00:00
Micha Gorelick 77816797e8 Publish Github releases from Travis
This release introduces some config to automatically build deploy a
binaries on the github release page using travis. The build only happens
when a commit is tagged and it uses the stable version of rust.

The main travis sections (install/script/before_deploy) have been
moved out of the .travis.yml to make it easier to read, maintain and
extend the different steps of the CI process.

Since checking for the Rust version in CI is enough to know if clippy
should be used or not, the environment variable `CLIPPY` has also been
removed, which further allowed simplifying the CI process.

Besides the executables, some auxillary files are now also published as
part of a release when they have changed since the last tagged Alacritty
release. This should make it clear for returning users when a new
version of a specific auxillary file is required.

Instead of using the 14.04 image which travis provides by default, an
18.04 docker image is used to build the output binaries for Linux.
This affects both the .deb and the .tar.gz binary.

The advantage of this is that while binaries compiled on 14.04, do not
work on 18.04, it does work the other way around. The generated .tar.gz
binary has been tested on 18.04, Debian, Fedora and Archlinux and all
systems were able to run it without any warnings or errors.
2018-11-03 15:08:30 +00:00
Zac Pullar-Strecker 58127f4687 Add cargo workspace, add winpty tests to CI 2018-10-29 20:52:14 +13:00
Zac Pullar-Strecker 15e0deae2b Add support for Windows (#1374)
Initial support for Windows is implemented using the winpty translation
layer. Clipboard support for Windows is provided through the `clipboard`
crate, and font rasterization is provided by RustType.

The tty.rs file has been split into OS-specific files to separate
standard pty handling from the winpty implementation.

Several binary components are fetched via build script on windows
including libclang and winpty. These could be integrated more directly
in the future either by building those dependencies as part of the
Alacritty build process or by leveraging git lfs to store the artifacts.

Fixes #28.
2018-10-16 10:02:52 -07:00
Matthias Krüger ddb9a55817 Fix clippy lints and run font tests on travis
This fixes some existing clippy issues and runs the `font` tests through travis.

Testing of copypasta crate was omitted due to problens when running on headless travis-ci environment (x11 clipboard would fail).
2018-07-25 19:46:45 +00:00
Christian Duerr ea512cb0f3
Switch to rustup clippy component 2018-07-22 00:44:14 +00:00
Matthias Krüger 985ba306c7 Remove unnecessary clippy lint annotations
We moved to "cargo clippy" in 5ba34d4f97 and
removing the clippy lint annotations in `src/lib.rs` does not cause any additional warnings.

This also changes `cargo clippy` to use the flags required for checking integration tests.
2018-07-01 20:20:29 +00:00
Christian Duerr 5ba34d4f97
Move to cargo clippy
Using clippy as a library has been deprecated, instead the `cargo
clippy` command should be used instead. To comply with this change
clippy has been removed from the `Cargo.toml` and is now installed with
cargo when building in CI.

This has also lead to a few new clippy issues to show up, this includes
everything in the `font` subdirectory. This has been fixed and `font`
should now be covered by clippy CI too.

This also upgrades all dependencies, as a result this fixes #1341 and
this fixes #1344.
2018-06-17 09:19:30 +00:00
Christian Duerr 2920cbe710
Add clippy check to travis
This commit adds clippy as a required step of the build process. To make
this possible, all existing clippy issues have been resolved.
2018-01-06 01:42:55 +00:00
Joe Wilm 8e7dd009a4 Update to latest Glutin/winit (#671)
* Update to latest Glutin/winit

This *finally* gets us off the fork of Glutin we've been on for so long
and will unblock a number of other items. Functionality should be the
same as before.

The update forced our hand on a compiler update. It's no longer
feasible to pin on an old version. From now on, we require latest
stable.
2017-07-20 10:50:50 -07:00
Aaron Hill 3c8514ba10 Make Travis test alacritty on nightly Rust, but allow failures
This allows us to notice and report any regressions that have occured on
nightly, without requiring tests to pass on nightly for the entire build
to succeed.

The `fast_finish` flag will cause Travis to mark the build as successful
if the only builds still running are allowed to fail (e.g. `nightly`).
This allows us to manually inspect builds (or implement some form of
notifications) to see if any nightly regressions have occured, without
slowing down the overall build time.
2017-06-14 11:33:44 -07:00
Niklas Claesson 84fc7c0bf9 CI with the oldest known working version of rust 2017-06-04 09:46:42 -07:00
Joe Wilm f2f750f9f3 Alacritty now compiles on stable Rust 🎉 2017-02-03 08:11:19 -08:00
Joe Wilm 8cab0aa623 Use latest nightly on travis
Pinning should no longer be necessary.
2017-01-18 22:28:46 -08:00
Joe Wilm 79e02b0b2f Update nightly pin on travis 2016-12-11 20:26:33 -08:00
Joe Wilm 0dfba30181 Add a number of simple ref-tests
Also adds a feature `err-println` for enabling `err_println!` printing.
2016-11-19 21:34:22 -08:00
Joe Wilm 8b4b1f8df1 Pin nightly compiler on travis
This will prevent builds from being constantly broken... arbitrary
nightlies are not yet supported.
2016-08-14 20:13:20 -07:00
Joe Wilm 4ecc4a15f1
Cache cargo dependencies on travis
This should improve build times.
2016-06-14 07:55:00 -07:00
Joe Wilm 432922d624
Add macOS to CI matrix 2016-06-14 07:53:45 -07:00
Joe Wilm e301843686 Add test font for travis 2016-02-21 19:56:31 -08:00
Joe Wilm 2a7dc1deb8 Add function for listing font names on linux
This function isn't exactly useful, but it's working ffi with the
fontconfig library. Woo! Next step will be returning some objects with
more information (like font path so we can start rendering glyphs!).
2016-02-21 15:20:03 -08:00