1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-23 21:32:13 +03:00
wezterm/ci/deploy.sh
Wez Furlong d33647dd97 ci: move source archive to run only for appimage build
The nightly builds seem to often trip over each other when
uploading the source tarball from ubuntu20.

Restrict it to being built only on the appimage build (ubuntu16).
2020-10-10 17:14:06 -07:00

141 lines
5.0 KiB
Bash
Executable File

#!/bin/bash
set -x
set -e
TARGET_DIR=${1:-target}
TAG_NAME=${TAG_NAME:-$(git describe --tags)}
TAG_NAME=${TAG_NAME:-$(date +'%Y%m%d-%H%M%S')-$(git log --format=%h -1)}
HERE=$(pwd)
case $OSTYPE in
darwin*)
zipdir=WezTerm-macos-$TAG_NAME
if [[ "$BUILD_REASON" == "Schedule" ]] ; then
zipname=WezTerm-macos-nightly.zip
else
zipname=$zipdir.zip
fi
rm -rf $zipdir $zipname
mkdir $zipdir
cp -r assets/macos/WezTerm.app $zipdir/
cp $TARGET_DIR/release/wezterm $zipdir/WezTerm.app
cp $TARGET_DIR/release/wezterm-mux-server $zipdir/WezTerm.app
cp $TARGET_DIR/release/strip-ansi-escapes $zipdir/WezTerm.app
zip -r $zipname $zipdir
SHA256=$(shasum -a 256 $zipname | cut -d' ' -f1)
sed -e "s/@TAG@/$TAG_NAME/g" -e "s/@SHA256@/$SHA256/g" < ci/wezterm-homebrew-macos.rb.template > wezterm.rb
cat wezterm.rb
;;
msys)
zipdir=WezTerm-windows-$TAG_NAME
if [[ "$BUILD_REASON" == "Schedule" ]] ; then
zipname=WezTerm-windows-nightly.zip
instname=WezTerm-nightly-setup
else
zipname=$zipdir.zip
instname=WezTerm-${TAG_NAME}-setup
fi
rm -rf $zipdir $zipname
mkdir $zipdir
cp $TARGET_DIR/release/wezterm.exe \
$TARGET_DIR/release/wezterm-mux-server.exe \
$TARGET_DIR/release/strip-ansi-escapes.exe \
$TARGET_DIR/release/wezterm.pdb \
assets/windows/conhost/conpty.dll \
assets/windows/conhost/OpenConsole.exe \
$zipdir
mkdir $zipdir/mesa
cp $TARGET_DIR/release/mesa/opengl32.dll \
$zipdir/mesa
7z a -tzip $zipname $zipdir
iscc.exe -DMyAppVersion=${TAG_NAME#nightly} -F${instname} ci/windows-installer.iss
;;
linux-gnu)
distro=$(lsb_release -is)
distver=$(lsb_release -rs)
case "$distro" in
*Fedora*|*CentOS*)
WEZTERM_RPM_VERSION=$(echo ${TAG_NAME#nightly-} | tr - _)
cat > wezterm.spec <<EOF
Name: wezterm
Version: ${WEZTERM_RPM_VERSION}
Release: 1%{?dist}
Packager: Wez Furlong <wez@wezfurlong.org>
License: MIT
URL: https://wezfurlong.org/wezterm/
Summary: Wez's Terminal Emulator.
Requires: dbus, fontconfig, openssl, libxcb, libxkbcommon, libxkbcommon-x11, libwayland-client, libwayland-egl, libwayland-cursor, mesa-libEGL, xcb-util-keysyms, xcb-util-wm
%description
wezterm is a terminal emulator with support for modern features
such as fonts with ligatures, hyperlinks, tabs and multiple
windows.
%build
echo "Doing the build bit here"
%install
set -x
cd ${HERE}
mkdir -p %{buildroot}/usr/bin
install -Dsm755 target/release/wezterm -t %{buildroot}/usr/bin
install -Dsm755 target/release/wezterm-mux-server -t %{buildroot}/usr/bin
install -Dsm755 target/release/strip-ansi-escapes -t %{buildroot}/usr/bin
install -Dm644 assets/icon/terminal.png %{buildroot}/usr/share/icons/hicolor/128x128/apps/org.wezfurlong.wezterm.png
install -Dm644 assets/wezterm.desktop %{buildroot}/usr/share/applications/org.wezfurlong.wezterm.desktop
install -Dm644 assets/wezterm.appdata.xml %{buildroot}/usr/share/metainfo/org.wezfurlong.wezterm.appdata.xml
%files
/usr/bin/wezterm
/usr/bin/wezterm-mux-server
/usr/bin/strip-ansi-escapes
/usr/share/icons/hicolor/128x128/apps/org.wezfurlong.wezterm.png
/usr/share/applications/org.wezfurlong.wezterm.desktop
/usr/share/metainfo/org.wezfurlong.wezterm.appdata.xml
EOF
/usr/bin/rpmbuild -bb --rmspec wezterm.spec --verbose
;;
Ubuntu*|Debian*)
rm -rf pkg
mkdir -p pkg/debian/usr/bin pkg/debian/DEBIAN pkg/debian/usr/share/{applications,wezterm}
cat > pkg/debian/DEBIAN/control <<EOF
Package: wezterm
Version: ${TAG_NAME#nightly-}
Architecture: amd64
Maintainer: Wez Furlong <wez@wezfurlong.org>
Section: utils
Priority: optional
Homepage: https://wezfurlong.org/wezterm/
Description: Wez's Terminal Emulator.
wezterm is a terminal emulator with support for modern features
such as fonts with ligatures, hyperlinks, tabs and multiple
windows.
Depends: libc6, libegl-mesa0, libxcb-icccm4, libxcb-ewmh2, libxcb-keysyms1, libxcb-xkb1, libxkbcommon0, libxkbcommon-x11-0, libfontconfig1, xdg-utils, libxcb-render0, libxcb-shape0, libx11-6, libegl1
EOF
install -Dsm755 -t pkg/debian/usr/bin target/release/wezterm-mux-server
install -Dsm755 -t pkg/debian/usr/bin target/release/wezterm
install -Dsm755 -t pkg/debian/usr/bin target/release/strip-ansi-escapes
install -Dm644 assets/icon/terminal.png pkg/debian/usr/share/icons/hicolor/128x128/apps/org.wezfurlong.wezterm.png
install -Dm644 assets/wezterm.desktop pkg/debian/usr/share/applications/org.wezfurlong.wezterm.desktop
install -Dm644 assets/wezterm.appdata.xml pkg/debian/usr/share/metainfo/org.wezfurlong.wezterm.appdata.xml
if [[ "$BUILD_REASON" == "Schedule" ]] ; then
debname=wezterm-nightly.$distro$distver
else
debname=wezterm-$TAG_NAME.$distro$distver
fi
fakeroot dpkg-deb --build pkg/debian $debname.deb
tar cJf $debname.tar.xz -C pkg/debian/usr/bin wezterm
rm -rf pkg
;;
esac
;;
*)
;;
esac