1
0
Fork 0
mirror of https://github.com/alacritty/alacritty.git synced 2024-11-18 13:55:23 -05:00
alacritty/ci/before_deploy.sh
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

72 lines
2.6 KiB
Bash
Executable file

#!/bin/bash
# All files which should be added only if they changed
aux_files=("alacritty-completions.bash"
"alacritty-completions.fish"
"alacritty-completions.zsh"
"alacritty.desktop"
"alacritty.info"
"alacritty.yml"
"alacritty_macos.yml"
"alacritty_windows.yml")
# Get previous tag to check for changes
git fetch --tags
git fetch --unshallow
prev_tag=$(git describe --tags --abbrev=0 $TRAVIS_TAG^)
# Everything in this directory will be offered as download for the release
mkdir "./target/deploy"
# Output binary name
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" ] && [ "$ARCH" != "i386" ]; then
docker pull undeadleech/alacritty-ubuntu
# x86_64
docker run -v "$(pwd):/source" undeadleech/alacritty-ubuntu \
/root/.cargo/bin/cargo build --release --manifest-path /source/Cargo.toml
tar -cvzf "./target/deploy/${name}-x86_64.tar.gz" -C "./target/release/" "alacritty"
# x86_64 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"
# 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 run -v "$(pwd):/source" undeadleech/alacritty-ubuntu-i386 \
/root/.cargo/bin/cargo build --release --manifest-path /source/Cargo.toml
tar -cvzf "./target/deploy/${name}-i386.tar.gz" -C "./target/release/" "alacritty"
# 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"
fi
# Convert and add manpage if it changed
if [ -n "$(git diff $prev_tag HEAD alacritty.man)" ]; then
gzip -c "./alacritty.man" > "./target/deploy/alacritty.1.gz"
fi
# Offer extra files if they changed
for file in "${aux_files[@]}"; do
if [ -n "$(git diff $prev_tag HEAD $file)" ]; then
cp $file "./target/deploy/"
fi
done