aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Duerr <chrisduerr@users.noreply.github.com>2018-11-14 23:47:13 +0000
committerGitHub <noreply@github.com>2018-11-14 23:47:13 +0000
commit82d0c5ea44f0f8b487c4b9856d50914ed7262fff (patch)
treea64ec3438b32bd2aed2213fd45bf5e1018bb50af
parent00830b3da8d4f2cebcc8738f8069db91c1a2f779 (diff)
downloadalacritty-82d0c5ea44f0f8b487c4b9856d50914ed7262fff.tar.gz
alacritty-82d0c5ea44f0f8b487c4b9856d50914ed7262fff.zip
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`.
-rw-r--r--.travis.yml5
-rwxr-xr-xci/before_deploy.sh28
-rw-r--r--ci/i386/Dockerfile1
-rw-r--r--ci/x86_64/Dockerfile1
4 files changed, 23 insertions, 12 deletions
diff --git a/.travis.yml b/.travis.yml
index 53b754ec..ee28139a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -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
diff --git a/ci/before_deploy.sh b/ci/before_deploy.sh
index 04793032..5363204a 100755
--- a/ci/before_deploy.sh
+++ b/ci/before_deploy.sh
@@ -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"
diff --git a/ci/i386/Dockerfile b/ci/i386/Dockerfile
index c9d3fc15..cdec1ec5 100644
--- a/ci/i386/Dockerfile
+++ b/ci/i386/Dockerfile
@@ -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
diff --git a/ci/x86_64/Dockerfile b/ci/x86_64/Dockerfile
index 573de9a3..b94c07cc 100644
--- a/ci/x86_64/Dockerfile
+++ b/ci/x86_64/Dockerfile
@@ -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