Skip to content

Commit

Permalink
Introduce appimage recipe and release workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
xeco23 committed Nov 27, 2021
1 parent 41e04c0 commit 4c7c431
Show file tree
Hide file tree
Showing 3 changed files with 345 additions and 3 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/install.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
- name: Build
run: |
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr ..
make -j4
- name: Install
Expand Down
23 changes: 21 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@ jobs:
- name: Install Dependencies
run: |
sudo apt update && sudo apt upgrade
sudo apt -y install build-essential cmake pkg-config libgtkmm-3.0-dev libwebkit2gtk-4.0-dev libappindicator3-dev debhelper
sudo apt -y install build-essential cmake pkg-config libgtkmm-3.0-dev libwebkit2gtk-4.0-dev libappindicator3-dev debhelper zsync
- name: Build
run: |
mkdir -p build/release && cd build/release
cmake -DCMAKE_BUILD_TYPE=Release ../..
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr ../..
make -j4
- name: Set Version
Expand All @@ -37,6 +37,14 @@ jobs:
id: snapcraft
uses: snapcore/action-build@v1

- name: Build AppImage
id: appimage
uses: AppImageCrafters/build-appimage@master
with:
recipe: "./appimage/AppImageBuilder.yml"
env:
UPDATE_INFO: gh-releases-zsync|eneshecan|whatsapp-for-linux|latest|*x86_64.AppImage.zsync

- name: Push Tag
id: push-tag
uses: anothrNick/[email protected]
Expand Down Expand Up @@ -84,3 +92,14 @@ jobs:
asset_path: ${{ steps.snapcraft.outputs.snap }}
asset_name: ${{ steps.snapcraft.outputs.snap }}
asset_content_type: application/snap

- name: Upload AppImage Package
id: upload-appimage-package
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create-release.outputs.upload_url }}
asset_path: "whatsapp-for-linux-latest-x86_64.AppImage"
asset_name: "whatsapp-for-linux-latest-x86_64.AppImage"
asset_content_type: application/appimage
323 changes: 323 additions & 0 deletions appimage/AppImageBuilder.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,323 @@
version: 1
AppDir:
path: ./AppDir
app_info:
id: whatsapp-for-linux
name: whatsapp-for-linux
icon: whatsapp-for-linux
version: latest
exec: usr/bin/whatsapp-for-linux
exec_args: $@
apt:
arch:
- amd64
allow_unauthenticated: true
sources:
- sourceline: deb http://archive.ubuntu.com/ubuntu/ impish main restricted
- sourceline: deb http://archive.ubuntu.com/ubuntu/ impish-updates main restricted
- sourceline: deb http://archive.ubuntu.com/ubuntu/ impish universe
- sourceline: deb http://archive.ubuntu.com/ubuntu/ impish-updates universe
- sourceline: deb http://archive.ubuntu.com/ubuntu/ impish multiverse
- sourceline: deb http://archive.ubuntu.com/ubuntu/ impish-updates multiverse
- sourceline: deb http://archive.ubuntu.com/ubuntu/ impish-backports main restricted universe multiverse
- sourceline: deb http://archive.canonical.com/ubuntu impish partner
- sourceline: deb http://security.ubuntu.com/ubuntu impish-security main restricted
- sourceline: deb http://security.ubuntu.com/ubuntu impish-security universe
- sourceline: deb http://security.ubuntu.com/ubuntu impish-security multiverse
include:
- glib-networking:amd64
- gstreamer1.0-libav:amd64
- gstreamer1.0-plugins-bad:amd64
- gstreamer1.0-plugins-base:amd64
- gstreamer1.0-plugins-good:amd64
- gvfs:amd64
- language-pack-gnome-en-base
- libbz2-1.0:amd64
- libcom-err2:amd64
- libgpg-error0:amd64
- libkeyutils1:amd64
- liblzma5:amd64
- libnss-mdns:amd64
- libpcre3:amd64
- librsvg2-common:amd64
- libselinux1:amd64
- libtinfo6:amd64
- libtirpc3:amd64
- libwebkit2gtk-4.0-37:amd64
- publicsuffix
- tzdata
- xkb-data
files:
include:
- /lib/x86_64-linux-gnu/libEGL_mesa.so.0
- /lib/x86_64-linux-gnu/libFLAC.so.8
- /lib/x86_64-linux-gnu/libGLX.so.0
- /lib/x86_64-linux-gnu/libGLdispatch.so.0
- /lib/x86_64-linux-gnu/libLLVM-12.so.1
- /lib/x86_64-linux-gnu/libOpenCL.so.1
- /lib/x86_64-linux-gnu/libX11.so.6
- /lib/x86_64-linux-gnu/libXau.so.6
- /lib/x86_64-linux-gnu/libXcomposite.so.1
- /lib/x86_64-linux-gnu/libXcursor.so.1
- /lib/x86_64-linux-gnu/libXdamage.so.1
- /lib/x86_64-linux-gnu/libXdmcp.so.6
- /lib/x86_64-linux-gnu/libXext.so.6
- /lib/x86_64-linux-gnu/libXfixes.so.3
- /lib/x86_64-linux-gnu/libXi.so.6
- /lib/x86_64-linux-gnu/libXinerama.so.1
- /lib/x86_64-linux-gnu/libXrandr.so.2
- /lib/x86_64-linux-gnu/libXrender.so.1
- /lib/x86_64-linux-gnu/libaom.so.0
- /lib/x86_64-linux-gnu/libapparmor.so.1
- /lib/x86_64-linux-gnu/libappindicator3.so.1
- /lib/x86_64-linux-gnu/libasound.so.2
- /lib/x86_64-linux-gnu/libaspell.so.15
- /lib/x86_64-linux-gnu/libass.so.9
- /lib/x86_64-linux-gnu/libasyncns.so.0
- /lib/x86_64-linux-gnu/libatk-1.0.so.0
- /lib/x86_64-linux-gnu/libatk-bridge-2.0.so.0
- /lib/x86_64-linux-gnu/libatkmm-1.6.so.1
- /lib/x86_64-linux-gnu/libatspi.so.0
- /lib/x86_64-linux-gnu/libavcodec.so.58
- /lib/x86_64-linux-gnu/libavfilter.so.7
- /lib/x86_64-linux-gnu/libavformat.so.58
- /lib/x86_64-linux-gnu/libavutil.so.56
- /lib/x86_64-linux-gnu/libblas.so.3
- /lib/x86_64-linux-gnu/libblkid.so.1
- /lib/x86_64-linux-gnu/libbluray.so.2
- /lib/x86_64-linux-gnu/libbrotlicommon.so.1
- /lib/x86_64-linux-gnu/libbrotlidec.so.1
- /lib/x86_64-linux-gnu/libbs2b.so.0
- /lib/x86_64-linux-gnu/libbsd.so.0
- /lib/x86_64-linux-gnu/libcairo-gobject.so.2
- /lib/x86_64-linux-gnu/libcairo.so.2
- /lib/x86_64-linux-gnu/libcairomm-1.0.so.1
- /lib/x86_64-linux-gnu/libchromaprint.so.1
- /lib/x86_64-linux-gnu/libcodec2.so.0.9
- /lib/x86_64-linux-gnu/libcrypto.so.1.1
- /lib/x86_64-linux-gnu/libcurl-gnutls.so.4
- /lib/x86_64-linux-gnu/libdatrie.so.1
- /lib/x86_64-linux-gnu/libdav1d.so.4
- /lib/x86_64-linux-gnu/libdbusmenu-glib.so.4
- /lib/x86_64-linux-gnu/libdbusmenu-gtk3.so.4
- /lib/x86_64-linux-gnu/libdebuginfod.so.1
- /lib/x86_64-linux-gnu/libdw.so.1
- /lib/x86_64-linux-gnu/libedit.so.2
- /lib/x86_64-linux-gnu/libelf.so.1
- /lib/x86_64-linux-gnu/libenchant-2.so.2
- /lib/x86_64-linux-gnu/libepoxy.so.0
- /lib/x86_64-linux-gnu/libevdev.so.2
- /lib/x86_64-linux-gnu/libffi.so.8
- /lib/x86_64-linux-gnu/libfftw3.so.3
- /lib/x86_64-linux-gnu/libflite.so.1
- /lib/x86_64-linux-gnu/libflite_cmu_us_awb.so.1
- /lib/x86_64-linux-gnu/libflite_cmu_us_kal.so.1
- /lib/x86_64-linux-gnu/libflite_cmu_us_kal16.so.1
- /lib/x86_64-linux-gnu/libflite_cmu_us_rms.so.1
- /lib/x86_64-linux-gnu/libflite_cmu_us_slt.so.1
- /lib/x86_64-linux-gnu/libflite_cmulex.so.1
- /lib/x86_64-linux-gnu/libflite_usenglish.so.1
- /lib/x86_64-linux-gnu/libfontconfig.so.1
- /lib/x86_64-linux-gnu/libfreetype.so.6
- /lib/x86_64-linux-gnu/libfribidi.so.0
- /lib/x86_64-linux-gnu/libgbm.so.1
- /lib/x86_64-linux-gnu/libgcrypt.so.20
- /lib/x86_64-linux-gnu/libgdk-3.so.0
- /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
- /lib/x86_64-linux-gnu/libgdkmm-3.0.so.1
- /lib/x86_64-linux-gnu/libgfortran.so.5
- /lib/x86_64-linux-gnu/libgio-2.0.so.0
- /lib/x86_64-linux-gnu/libgiomm-2.4.so.1
- /lib/x86_64-linux-gnu/libglapi.so.0
- /lib/x86_64-linux-gnu/libglib-2.0.so.0
- /lib/x86_64-linux-gnu/libglibmm-2.4.so.1
- /lib/x86_64-linux-gnu/libgme.so.0
- /lib/x86_64-linux-gnu/libgmodule-2.0.so.0
- /lib/x86_64-linux-gnu/libgmp.so.10
- /lib/x86_64-linux-gnu/libgnutls.so.30
- /lib/x86_64-linux-gnu/libgobject-2.0.so.0
- /lib/x86_64-linux-gnu/libgomp.so.1
- /lib/x86_64-linux-gnu/libgraphite2.so.3
- /lib/x86_64-linux-gnu/libgsm.so.1
- /lib/x86_64-linux-gnu/libgssapi_krb5.so.2
- /lib/x86_64-linux-gnu/libgstallocators-1.0.so.0
- /lib/x86_64-linux-gnu/libgstapp-1.0.so.0
- /lib/x86_64-linux-gnu/libgstaudio-1.0.so.0
- /lib/x86_64-linux-gnu/libgstbase-1.0.so.0
- /lib/x86_64-linux-gnu/libgstfft-1.0.so.0
- /lib/x86_64-linux-gnu/libgstgl-1.0.so.0
- /lib/x86_64-linux-gnu/libgstnet-1.0.so.0
- /lib/x86_64-linux-gnu/libgstpbutils-1.0.so.0
- /lib/x86_64-linux-gnu/libgstreamer-1.0.so.0
- /lib/x86_64-linux-gnu/libgsttag-1.0.so.0
- /lib/x86_64-linux-gnu/libgstvideo-1.0.so.0
- /lib/x86_64-linux-gnu/libgtk-3.so.0
- /lib/x86_64-linux-gnu/libgtkmm-3.0.so.1
- /lib/x86_64-linux-gnu/libgudev-1.0.so.0
- /lib/x86_64-linux-gnu/libharfbuzz-icu.so.0
- /lib/x86_64-linux-gnu/libharfbuzz.so.0
- /lib/x86_64-linux-gnu/libhogweed.so.6
- /lib/x86_64-linux-gnu/libhunspell-1.7.so.0
- /lib/x86_64-linux-gnu/libhyphen.so.0
- /lib/x86_64-linux-gnu/libicudata.so.67
- /lib/x86_64-linux-gnu/libicui18n.so.67
- /lib/x86_64-linux-gnu/libicuuc.so.67
- /lib/x86_64-linux-gnu/libidn2.so.0
- /lib/x86_64-linux-gnu/libjavascriptcoregtk-4.0.so.18
- /lib/x86_64-linux-gnu/libjpeg.so.8
- /lib/x86_64-linux-gnu/libk5crypto.so.3
- /lib/x86_64-linux-gnu/libkrb5.so.3
- /lib/x86_64-linux-gnu/libkrb5support.so.0
- /lib/x86_64-linux-gnu/liblapack.so.3
- /lib/x86_64-linux-gnu/liblber-2.5.so.0
- /lib/x86_64-linux-gnu/liblcms2.so.2
- /lib/x86_64-linux-gnu/libldap-2.5.so.0
- /lib/x86_64-linux-gnu/liblilv-0.so.0
- /lib/x86_64-linux-gnu/liblz4.so.1
- /lib/x86_64-linux-gnu/libmanette-0.2.so.0
- /lib/x86_64-linux-gnu/libmd.so.0
- /lib/x86_64-linux-gnu/libmfx.so.1
- /lib/x86_64-linux-gnu/libmount.so.1
- /lib/x86_64-linux-gnu/libmp3lame.so.0
- /lib/x86_64-linux-gnu/libmpg123.so.0
- /lib/x86_64-linux-gnu/libmysofa.so.1
- /lib/x86_64-linux-gnu/libnettle.so.8
- /lib/x86_64-linux-gnu/libnghttp2.so.14
- /lib/x86_64-linux-gnu/libnorm.so.1
- /lib/x86_64-linux-gnu/libnotify.so.4
- /lib/x86_64-linux-gnu/libnsl.so.2
- /lib/x86_64-linux-gnu/libnuma.so.1
- /lib/x86_64-linux-gnu/libogg.so.0
- /lib/x86_64-linux-gnu/libopenjp2.so.7
- /lib/x86_64-linux-gnu/libopenmpt.so.0
- /lib/x86_64-linux-gnu/libopus.so.0
- /lib/x86_64-linux-gnu/liborc-0.4.so.0
- /lib/x86_64-linux-gnu/libp11-kit.so.0
- /lib/x86_64-linux-gnu/libpango-1.0.so.0
- /lib/x86_64-linux-gnu/libpangocairo-1.0.so.0
- /lib/x86_64-linux-gnu/libpangoft2-1.0.so.0
- /lib/x86_64-linux-gnu/libpangomm-1.4.so.1
- /lib/x86_64-linux-gnu/libpcre2-8.so.0
- /lib/x86_64-linux-gnu/libpgm-5.3.so.0
- /lib/x86_64-linux-gnu/libpixman-1.so.0
- /lib/x86_64-linux-gnu/libpng16.so.16
- /lib/x86_64-linux-gnu/libpocketsphinx.so.3
- /lib/x86_64-linux-gnu/libpostproc.so.55
- /lib/x86_64-linux-gnu/libproxy.so.1
- /lib/x86_64-linux-gnu/libpsl.so.5
- /lib/x86_64-linux-gnu/libpulse.so.0
- /lib/x86_64-linux-gnu/libquadmath.so.0
- /lib/x86_64-linux-gnu/librabbitmq.so.4
- /lib/x86_64-linux-gnu/librsvg-2.so.2
- /lib/x86_64-linux-gnu/librtmp.so.1
- /lib/x86_64-linux-gnu/librubberband.so.2
- /lib/x86_64-linux-gnu/libsamplerate.so.0
- /lib/x86_64-linux-gnu/libsasl2.so.2
- /lib/x86_64-linux-gnu/libseccomp.so.2
- /lib/x86_64-linux-gnu/libsecret-1.so.0
- /lib/x86_64-linux-gnu/libsensors.so.5
- /lib/x86_64-linux-gnu/libserd-0.so.0
- /lib/x86_64-linux-gnu/libshine.so.3
- /lib/x86_64-linux-gnu/libsigc-2.0.so.0
- /lib/x86_64-linux-gnu/libsnappy.so.1
- /lib/x86_64-linux-gnu/libsndfile.so.1
- /lib/x86_64-linux-gnu/libsodium.so.23
- /lib/x86_64-linux-gnu/libsord-0.so.0
- /lib/x86_64-linux-gnu/libsoup-2.4.so.1
- /lib/x86_64-linux-gnu/libsoxr.so.0
- /lib/x86_64-linux-gnu/libspeex.so.1
- /lib/x86_64-linux-gnu/libsphinxbase.so.3
- /lib/x86_64-linux-gnu/libsqlite3.so.0
- /lib/x86_64-linux-gnu/libsratom-0.so.0
- /lib/x86_64-linux-gnu/libsrt-gnutls.so.1.4
- /lib/x86_64-linux-gnu/libssh-gcrypt.so.4
- /lib/x86_64-linux-gnu/libssh.so.4
- /lib/x86_64-linux-gnu/libssl.so.1.1
- /lib/x86_64-linux-gnu/libstdc++.so.6
- /lib/x86_64-linux-gnu/libswresample.so.3
- /lib/x86_64-linux-gnu/libswscale.so.5
- /lib/x86_64-linux-gnu/libsystemd.so.0
- /lib/x86_64-linux-gnu/libtasn1.so.6
- /lib/x86_64-linux-gnu/libthai.so.0
- /lib/x86_64-linux-gnu/libtheoradec.so.1
- /lib/x86_64-linux-gnu/libtheoraenc.so.1
- /lib/x86_64-linux-gnu/libtwolame.so.0
- /lib/x86_64-linux-gnu/libudev.so.1
- /lib/x86_64-linux-gnu/libudfread.so.0
- /lib/x86_64-linux-gnu/libunistring.so.2
- /lib/x86_64-linux-gnu/libunwind.so.8
- /lib/x86_64-linux-gnu/libuuid.so.1
- /lib/x86_64-linux-gnu/libva-drm.so.2
- /lib/x86_64-linux-gnu/libva-x11.so.2
- /lib/x86_64-linux-gnu/libva.so.2
- /lib/x86_64-linux-gnu/libvdpau.so.1
- /lib/x86_64-linux-gnu/libvidstab.so.1.1
- /lib/x86_64-linux-gnu/libvorbis.so.0
- /lib/x86_64-linux-gnu/libvorbisenc.so.2
- /lib/x86_64-linux-gnu/libvorbisfile.so.3
- /lib/x86_64-linux-gnu/libvpx.so.6
- /lib/x86_64-linux-gnu/libvulkan.so.1
- /lib/x86_64-linux-gnu/libwayland-client.so.0
- /lib/x86_64-linux-gnu/libwayland-cursor.so.0
- /lib/x86_64-linux-gnu/libwayland-egl.so.1
- /lib/x86_64-linux-gnu/libwayland-server.so.0
- /lib/x86_64-linux-gnu/libwebkit2gtk-4.0.so.37
- /lib/x86_64-linux-gnu/libwebp.so.6
- /lib/x86_64-linux-gnu/libwebpdemux.so.2
- /lib/x86_64-linux-gnu/libwebpmux.so.3
- /lib/x86_64-linux-gnu/libwoff2common.so.1.0.2
- /lib/x86_64-linux-gnu/libwoff2dec.so.1.0.2
- /lib/x86_64-linux-gnu/libwrap.so.0
- /lib/x86_64-linux-gnu/libx264.so.160
- /lib/x86_64-linux-gnu/libx265.so.192
- /lib/x86_64-linux-gnu/libxcb-dri2.so.0
- /lib/x86_64-linux-gnu/libxcb-dri3.so.0
- /lib/x86_64-linux-gnu/libxcb-present.so.0
- /lib/x86_64-linux-gnu/libxcb-sync.so.1
- /lib/x86_64-linux-gnu/libxkbcommon.so.0
- /lib/x86_64-linux-gnu/libxml2.so.2
- /lib/x86_64-linux-gnu/libxshmfence.so.1
- /lib/x86_64-linux-gnu/libxslt.so.1
- /lib/x86_64-linux-gnu/libxvidcore.so.4
- /lib/x86_64-linux-gnu/libzimg.so.2
- /lib/x86_64-linux-gnu/libzmq.so.5
- /lib/x86_64-linux-gnu/libzstd.so.1
- /lib/x86_64-linux-gnu/libzvbi.so.0
- /usr/lib/locale/locale-archive
- /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules.cache
- /usr/share//mime//mime.cache
- /usr/share//mime/mime.cache
exclude:
- usr/share/man
- usr/share/doc/*/README.*
- usr/share/doc/*/changelog.*
- usr/share/doc/*/NEWS.*
- usr/share/doc/*/TODO.*
test:
fedora-30:
image: appimagecrafters/tests-env:fedora-30
command: ./AppRun
use_host_x: true
debian-stable:
image: appimagecrafters/tests-env:debian-stable
command: ./AppRun
use_host_x: true
archlinux-latest:
image: appimagecrafters/tests-env:archlinux-latest
command: ./AppRun
use_host_x: true
centos-7:
image: appimagecrafters/tests-env:centos-7
command: ./AppRun
use_host_x: true
ubuntu-xenial:
image: appimagecrafters/tests-env:ubuntu-xenial
command: ./AppRun
use_host_x: true
AppImage:
arch: x86_64
update-information: guess
script: |
rm -rf AppDir | true
cd build/release
make install DESTDIR=../../AppDir

0 comments on commit 4c7c431

Please sign in to comment.