diff options
author | Christian Duerr <chrisduerr@users.noreply.github.com> | 2018-11-14 23:47:13 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-11-14 23:47:13 +0000 |
commit | 82d0c5ea44f0f8b487c4b9856d50914ed7262fff (patch) | |
tree | a64ec3438b32bd2aed2213fd45bf5e1018bb50af /ci | |
parent | 00830b3da8d4f2cebcc8738f8069db91c1a2f779 (diff) |
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`.
Diffstat (limited to 'ci')
-rwxr-xr-x | ci/before_deploy.sh | 28 | ||||
-rw-r--r-- | ci/i386/Dockerfile | 1 | ||||
-rw-r--r-- | ci/x86_64/Dockerfile | 1 |
3 files changed, 18 insertions, 12 deletions
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 |