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`.
This commit is contained in:
Christian Duerr 2018-11-14 23:47:13 +00:00 committed by GitHub
parent 00830b3da8
commit 82d0c5ea44
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 23 additions and 12 deletions

View File

@ -18,6 +18,11 @@ rust:
matrix:
fast_finish: true
include:
- if: tag IS present
os: linux
rust: stable
env: ARCH=i386
allow_failures:
- rust: nightly
- os: windows

View File

@ -24,32 +24,36 @@ name="Alacritty-${TRAVIS_TAG}"
if [ "$TRAVIS_OS_NAME" == "osx" ]; then
make dmg
mv "./target/release/osx/Alacritty.dmg" "./target/deploy/${name}.dmg"
elif [ "$TRAVIS_OS_NAME" == "linux" ]; then
cargo install cargo-deb
elif [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$ARCH" != "i386" ]; then
docker pull undeadleech/alacritty-ubuntu
# x86_64
docker pull undeadleech/alacritty-ubuntu
docker run -v "$(pwd):/source" undeadleech/alacritty-ubuntu \
/root/.cargo/bin/cargo build --release --manifest-path /source/Cargo.toml
sudo chown -R $USER:$USER "./target"
tar -cvzf "./target/deploy/${name}-x86_64.tar.gz" -C "./target/release/" "alacritty"
# x86_64 deb
DEB=$(cargo deb --no-build)
mv "$DEB" "./target/deploy/${name}_amd64.deb"
docker run -v "$(pwd):/source" undeadleech/alacritty-ubuntu \
sh -c "cd /source && \
/root/.cargo/bin/cargo deb --no-build --output ./target/deploy/${name}_amd64.deb"
rm -rf "./target/release"
# Make sure all files can be uploaded without permission errors
sudo chown -R $USER:$USER "./target"
elif [ "$TRAVIS_OS_NAME" == "linux" ] && [ "$ARCH" == "i386" ]; then
docker pull undeadleech/alacritty-ubuntu-i386
# i386
docker pull undeadleech/alacritty-ubuntu-i386
docker run -v "$(pwd):/source" undeadleech/alacritty-ubuntu \
docker run -v "$(pwd):/source" undeadleech/alacritty-ubuntu-i386 \
/root/.cargo/bin/cargo build --release --manifest-path /source/Cargo.toml
sudo chown -R $USER:$USER "./target"
tar -cvzf "./target/deploy/${name}-i386.tar.gz" -C "./target/release/" "alacritty"
# i386 deb
DEB=$(cargo deb --no-build)
mv "$DEB" "./target/deploy/${name}_i386.deb"
docker run -v "$(pwd):/source" undeadleech/alacritty-ubuntu-i386 \
sh -c "cd /source && \
/root/.cargo/bin/cargo deb --no-build --output ./target/deploy/${name}_i386.deb"
# Make sure all files can be uploaded without permission errors
sudo chown -R $USER:$USER "./target"
elif [ "$TRAVIS_OS_NAME" == "windows" ]; then
mv "./target/release/alacritty.exe" "./target/deploy/${name}.exe"
mv "./target/release/winpty-agent.exe" "./target/deploy/winpty-agent.exe"

View File

@ -6,3 +6,4 @@ RUN apt-get update && apt-get install -y cmake libfreetype6-dev libfontconfig1-d
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y
RUN /root/.cargo/bin/rustup default stable-i686-unknown-linux-gnu
RUN /root/.cargo/bin/cargo install cargo-deb

View File

@ -5,3 +5,4 @@ ENV USER root
RUN apt-get update && apt-get install -y cmake libfreetype6-dev libfontconfig1-dev curl
RUN curl https://sh.rustup.rs -sSf | sh -s -- -y
RUN /root/.cargo/bin/cargo install cargo-deb