From 7a4441f2c65188af5d630fb01f797b0398bd7c52 Mon Sep 17 00:00:00 2001 From: RadRussianRus Date: Sat, 25 Apr 2020 03:17:15 +0300 Subject: [PATCH] Delete appimage-release.yml Since this file is part of https://github.com/kotatogram/kotatogram-desktop-appimages, there is no point in doubling it. --- .github/workflows/appimage-release.yml | 696 ------------------------- 1 file changed, 696 deletions(-) delete mode 100644 .github/workflows/appimage-release.yml diff --git a/.github/workflows/appimage-release.yml b/.github/workflows/appimage-release.yml deleted file mode 100644 index 92769706d..000000000 --- a/.github/workflows/appimage-release.yml +++ /dev/null @@ -1,696 +0,0 @@ -name: Release AppImage - -on: - release: - types: [created] - -jobs: - - linux: - name: Ubuntu 14.04 - runs-on: ubuntu-latest - container: - image: ubuntu:trusty - options: --privileged --device /dev/fuse - - env: - GIT: "https://github.com" - QT: "5_12_8" - OPENSSL_VER: "1_1_1" - CMAKE_VER: "3.17.0" - ONLY_CACHE: "false" - MANUAL_CACHING: "1" - DOC_PATH: "docs/building-cmake.md" - AUTO_CACHING: "1" - CXX: "g++ -static-libstdc++" - - steps: - - name: Get repository name. - run: echo ::set-env name=REPO_NAME::${GITHUB_REPOSITORY##*/} - - - name: Disable man for further package installs. - run: | - cfgFile="/etc/dpkg/dpkg.cfg.d/no_man" - sudo touch $cfgFile - p() { - sudo echo "path-exclude=/usr/share/$1/*" >> $cfgFile - } - - p man - p locale - p doc - - - name: Apt install. - shell: bash - run: | - sudo apt-get update - sudo apt-get install software-properties-common -y && \ - sudo add-apt-repository ppa:git-core/ppa -y && \ - sudo apt-get update && \ - sudo apt-get install libice-dev libsm-dev libicu-dev liblzma-dev zlib1g-dev \ - git wget autoconf automake build-essential libtool pkg-config bison \ - libopus-dev libasound2-dev libpulse-dev portaudio19-dev libdrm-dev libfuse2 \ - libgtk-3-dev libgtk2.0-dev libatspi2.0-dev libgl1-mesa-dev libegl1-mesa-dev \ - libffi-dev libxcb1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-xfixes0-dev \ - libxcb-keysyms1-dev libxcb-icccm4-dev libxcb-render-util0-dev libxcb-util0-dev \ - libxcb-xkb-dev libxcb-sync0-dev libxcb-randr0-dev libx11-xcb-dev libxrender-dev \ - xutils-dev libva-dev libvdpau-dev libhangul-dev libxklavier-dev libappindicator3-dev \ - libxtst-dev librsvg2-bin unzip -y --force-yes && \ - sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y && \ - sudo apt-get update && \ - sudo apt-get install gcc-8 g++-8 -y && \ - sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 60 && \ - sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 60 && \ - sudo update-alternatives --config gcc && \ - sudo add-apt-repository --remove ppa:ubuntu-toolchain-r/test -y - - - name: Clone. - uses: actions/checkout@v2 - with: - submodules: recursive - path: ${{ env.REPO_NAME }} - - - name: First set up. - shell: bash - run: | - wget -c -nv "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage" - chmod a+x linuxdeployqt-continuous-x86_64.AppImage - - ./linuxdeployqt-continuous-x86_64.AppImage -version - gcc --version - - gcc --version > CACHE_KEY.txt - echo $MANUAL_CACHING >> CACHE_KEY.txt - if [ "$AUTO_CACHING" == "1" ]; then - thisFile=$REPO_NAME/.github/workflows/appimage-release.yml - echo `md5sum $thisFile | cut -c -32` >> CACHE_KEY.txt - fi - md5cache=$(md5sum CACHE_KEY.txt | cut -c -32) - echo ::set-env name=CACHE_KEY::$md5cache - - mkdir -p Libraries - cd Libraries - echo ::set-env name=LibrariesPath::`pwd` - - - name: OpenSSL cache. - id: cache-openssl - uses: actions/cache@v1 - with: - path: ${{ env.LibrariesPath }}/openssl-cache - key: ${{ runner.OS }}-${{ env.OPENSSL_VER }}-${{ env.CACHE_KEY }} - - name: OpenSSL build. - if: steps.cache-openssl.outputs.cache-hit != 'true' - run: | - cd $LibrariesPath - - opensslDir=openssl_${OPENSSL_VER} - git clone -b OpenSSL_${OPENSSL_VER}-stable --depth=1 \ - $GIT/openssl/openssl $opensslDir - cd $opensslDir - ./config - make -j$(nproc) - sudo make DESTDIR="$LibrariesPath/openssl-cache" install_sw - cd .. - rm -rf $opensslDir - - name: OpenSSL install. - run: | - cd $LibrariesPath - sudo cp -R openssl-cache/. / - sudo ldconfig - - - name: Python 3.8 cache. - id: cache-python - uses: actions/cache@v1 - with: - path: ${{ env.LibrariesPath }}/python-cache - key: ${{ runner.OS }}-python-${{ env.CACHE_KEY }} - - name: Python 3.8 build. - if: steps.cache-python.outputs.cache-hit != 'true' - run: | - cd $LibrariesPath - - git clone -b v3.8.2 --depth=1 $GIT/python/cpython.git - cd cpython - ./configure --enable-optimizations - make -j$(nproc) - sudo make DESTDIR="$LibrariesPath/python-cache" install - cd .. - rm -rf cpython - - name: Python 3.8 install. - run: | - cd $LibrariesPath - sudo cp -R python-cache/. / - - - name: CMake. - run: | - cd $LibrariesPath - - file=cmake-$CMAKE_VER-Linux-x86_64.sh - wget $GIT/Kitware/CMake/releases/download/v$CMAKE_VER/$file - sudo mkdir /opt/cmake - sudo sh $file --prefix=/opt/cmake --skip-license - sudo ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake - rm $file - - cmake --version - - - name: Extra CMake Modules. - run: | - cd $LibrariesPath - - git clone -b v5.69.0 --depth=1 $GIT/KDE/extra-cmake-modules.git - cd extra-cmake-modules - cmake . -DCMAKE_BUILD_TYPE=Release - cmake --build . -- -j$(nproc) - sudo cmake --install . - cd .. - rm -rf extra-cmake-modules - - - name: Meson. - run: | - sudo python3 -m pip install meson==0.54.0 - meson --version - - - name: Ninja. - run: | - cd $LibrariesPath - - wget https://github.com/ninja-build/ninja/releases/download/v1.10.0/ninja-linux.zip - unzip ninja-linux.zip - chmod +x ninja - mv ninja /usr/local/bin - - ninja --version - - - name: NASM. - run: | - cd $LibrariesPath - - git clone -b nasm-2.14.02 --depth=1 https://repo.or.cz/nasm.git - cd nasm - ./autogen.sh - ./configure - make -j$(nproc) - sudo install nasm /usr/local/bin/nasm - sudo install ndisasm /usr/local/bin/ndisasm - cd .. - rm -rf nasm - - - name: Range-v3. - run: | - echo "Find necessary branch from doc." - cloneRange=$(grep -A 1 "range-v3" $REPO_NAME/$DOC_PATH | sed -n 1p) - cd $LibrariesPath - echo $cloneRange - eval $cloneRange - cd range-v3 - - cmake . \ - -DCMAKE_BUILD_TYPE=Release \ - -DRANGE_V3_TESTS=OFF \ - -DRANGE_V3_EXAMPLES=OFF \ - -DRANGE_V3_DOCS=OFF - - cmake --build . -- -j$(nproc) - sudo cmake --install . - - cd .. - rm -rf range-v3 - - - name: MiniZip. - run: | - cd $LibrariesPath - - git clone -b v1.2.11 --depth=1 $GIT/madler/zlib.git - cd zlib/contrib/minizip - autoreconf -i - ./configure - make -j$(nproc) - sudo make install - cd ../../.. - rm -rf zlib - - - name: LZ4. - run: | - cd $LibrariesPath - - git clone -b v1.9.2 --depth=1 $GIT/lz4/lz4.git - cd lz4 - make -j$(nproc) - sudo make install - sudo ldconfig - cd .. - rm -rf lz4 - - - name: xxHash. - run: | - cd $LibrariesPath - - git clone -b v0.7.2 --depth=1 $GIT/Cyan4973/xxHash.git - cd xxHash - make -j$(nproc) - sudo make install - sudo ldconfig - cd .. - rm -rf xxHash - - - name: Dav1d. - run: | - cd $LibrariesPath - - git clone -b 0.6.0 --depth=1 $GIT/videolan/dav1d.git - cd dav1d - mkdir build && cd build - meson .. \ - --libdir=/usr/local/lib \ - -Denable_tools=false \ - -Denable_tests=false - ninja - sudo ninja install - sudo ldconfig - cd ../.. - rm -rf dav1d - - - name: FFmpeg cache. - id: cache-ffmpeg - uses: actions/cache@v1 - with: - path: ${{ env.LibrariesPath }}/ffmpeg-cache - key: ${{ runner.OS }}-ffmpeg-${{ env.CACHE_KEY }} - - name: FFmpeg build. - if: steps.cache-ffmpeg.outputs.cache-hit != 'true' - run: | - cd $LibrariesPath - - git clone --branch release/4.2 $GIT/FFmpeg/FFmpeg ffmpeg - cd ffmpeg - ./configure \ - --disable-static \ - --disable-debug \ - --disable-programs \ - --disable-doc \ - --disable-network \ - --disable-autodetect \ - --disable-everything \ - --disable-neon \ - --disable-iconv \ - --enable-shared \ - --enable-libdav1d \ - --enable-libopus \ - --enable-vaapi \ - --enable-vdpau \ - --enable-protocol=file \ - --enable-hwaccel=h264_vaapi \ - --enable-hwaccel=h264_vdpau \ - --enable-hwaccel=mpeg4_vaapi \ - --enable-hwaccel=mpeg4_vdpau \ - --enable-decoder=aac \ - --enable-decoder=aac_fixed \ - --enable-decoder=aac_latm \ - --enable-decoder=aasc \ - --enable-decoder=alac \ - --enable-decoder=flac \ - --enable-decoder=gif \ - --enable-decoder=h264 \ - --enable-decoder=hevc \ - --enable-decoder=libdav1d \ - --enable-decoder=mp1 \ - --enable-decoder=mp1float \ - --enable-decoder=mp2 \ - --enable-decoder=mp2float \ - --enable-decoder=mp3 \ - --enable-decoder=mp3adu \ - --enable-decoder=mp3adufloat \ - --enable-decoder=mp3float \ - --enable-decoder=mp3on4 \ - --enable-decoder=mp3on4float \ - --enable-decoder=mpeg4 \ - --enable-decoder=msmpeg4v2 \ - --enable-decoder=msmpeg4v3 \ - --enable-decoder=opus \ - --enable-decoder=pcm_alaw \ - --enable-decoder=pcm_f32be \ - --enable-decoder=pcm_f32le \ - --enable-decoder=pcm_f64be \ - --enable-decoder=pcm_f64le \ - --enable-decoder=pcm_lxf \ - --enable-decoder=pcm_mulaw \ - --enable-decoder=pcm_s16be \ - --enable-decoder=pcm_s16be_planar \ - --enable-decoder=pcm_s16le \ - --enable-decoder=pcm_s16le_planar \ - --enable-decoder=pcm_s24be \ - --enable-decoder=pcm_s24daud \ - --enable-decoder=pcm_s24le \ - --enable-decoder=pcm_s24le_planar \ - --enable-decoder=pcm_s32be \ - --enable-decoder=pcm_s32le \ - --enable-decoder=pcm_s32le_planar \ - --enable-decoder=pcm_s64be \ - --enable-decoder=pcm_s64le \ - --enable-decoder=pcm_s8 \ - --enable-decoder=pcm_s8_planar \ - --enable-decoder=pcm_u16be \ - --enable-decoder=pcm_u16le \ - --enable-decoder=pcm_u24be \ - --enable-decoder=pcm_u24le \ - --enable-decoder=pcm_u32be \ - --enable-decoder=pcm_u32le \ - --enable-decoder=pcm_u8 \ - --enable-decoder=pcm_zork \ - --enable-decoder=vorbis \ - --enable-decoder=wavpack \ - --enable-decoder=wmalossless \ - --enable-decoder=wmapro \ - --enable-decoder=wmav1 \ - --enable-decoder=wmav2 \ - --enable-decoder=wmavoice \ - --enable-encoder=libopus \ - --enable-parser=aac \ - --enable-parser=aac_latm \ - --enable-parser=flac \ - --enable-parser=h264 \ - --enable-parser=hevc \ - --enable-parser=mpeg4video \ - --enable-parser=mpegaudio \ - --enable-parser=opus \ - --enable-parser=vorbis \ - --enable-demuxer=aac \ - --enable-demuxer=flac \ - --enable-demuxer=gif \ - --enable-demuxer=h264 \ - --enable-demuxer=hevc \ - --enable-demuxer=m4v \ - --enable-demuxer=mov \ - --enable-demuxer=mp3 \ - --enable-demuxer=ogg \ - --enable-demuxer=wav \ - --enable-muxer=ogg \ - --enable-muxer=opus - - make -j$(nproc) - sudo make DESTDIR="$LibrariesPath/ffmpeg-cache" install - cd .. - rm -rf ffmpeg - - name: FFmpeg install. - run: | - cd $LibrariesPath - sudo cp -R ffmpeg-cache/. / - sudo ldconfig - - - name: OpenAL Soft. - run: | - cd $LibrariesPath - - git clone -b openal-soft-1.20.1 --depth=1 $GIT/kcat/openal-soft.git - cd openal-soft/build - cmake .. \ - -DCMAKE_BUILD_TYPE=Release \ - -DALSOFT_EXAMPLES=OFF \ - -DALSOFT_TESTS=OFF \ - -DALSOFT_UTILS=OFF \ - -DALSOFT_CONFIG=OFF - - cmake --build . -- -j$(nproc) - sudo cmake --install . - sudo ldconfig - - cd - - rm -rf openal-soft - - - name: Hunspell. - run: | - cd $LibrariesPath - - git clone -b v1.7.0 --depth=1 $GIT/hunspell/hunspell.git - cd hunspell - autoreconf -vfi - # unable to link libstdc++ statically, thanks to autoconf - ./configure --disable-shared - make -j$(nproc) - sudo make install - sudo ldconfig - cd .. - rm -rf hunspell - - - name: Libxkbcommon. - run: | - cd $LibrariesPath - - git clone -b xkbcommon-0.8.4 --depth=1 $GIT/xkbcommon/libxkbcommon.git - cd libxkbcommon - ./autogen.sh - make -j$(nproc) - sudo make install - sudo ldconfig - cd .. - rm -rf libxkbcommon - - - name: Libwayland. - run: | - cd $LibrariesPath - - git clone -b 1.16 https://gitlab.freedesktop.org/wayland/wayland - cd wayland - ./autogen.sh --disable-documentation --disable-dtd-validation - make -j$(nproc) - sudo make install - sudo ldconfig - cd .. - rm -rf wayland - - - name: Libwayland Protocols. - run: | - cd $LibrariesPath - - git clone -b 1.16 https://gitlab.freedesktop.org/wayland/wayland-protocols - cd wayland-protocols - ./autogen.sh - make -j$(nproc) - sudo make install - sudo ldconfig - cd .. - rm -rf wayland-protocols - - - name: Qt 5.12.8 cache. - id: cache-qt - uses: actions/cache@v1 - with: - path: ${{ env.LibrariesPath }}/qt-cache - key: ${{ runner.OS }}-qt-${{ env.CACHE_KEY }}-${{ hashFiles('**/qtbase_5_12_8_appimage.diff') }}-${{ hashFiles('**/qtwayland_5_12_8.diff') }} - - name: Qt 5.12.8 build. - if: steps.cache-qt.outputs.cache-hit != 'true' - run: | - cd $LibrariesPath - - git clone -b v5.12.8 --depth=1 git://code.qt.io/qt/qt5.git qt_${QT} - cd qt_${QT} - perl init-repository --module-subset=qtbase,qtwayland,qtimageformats,qtsvg - git submodule update qtbase qtwayland qtimageformats qtsvg - cd qtbase - git apply ../../../$REPO_NAME/Telegram/Patches/qtbase_${QT}_appimage.diff - cd .. - cd qtwayland - git apply ../../../$REPO_NAME/Telegram/Patches/qtwayland_${QT}.diff - cd .. - - ./configure -prefix /usr/local \ - -release \ - -opensource \ - -confirm-license \ - -qt-zlib \ - -qt-libpng \ - -qt-libjpeg \ - -qt-harfbuzz \ - -qt-pcre \ - -qt-xcb \ - -openssl-linked \ - OPENSSL_LIBS="-L/usr/local/lib -lssl -lcrypto" \ - QMAKE_CXX="$CXX" \ - QMAKE_LINK="$CXX" \ - -nomake examples \ - -nomake tests - - make -j$(nproc) - sudo make INSTALL_ROOT="$LibrariesPath/qt-cache" install - cd .. - rm -rf qt_${QT} - - name: Qt 5.12.8 install. - run: | - cd $LibrariesPath - sudo cp -R qt-cache/. / - sudo ldconfig - - - name: Qt Style Plugins. - run: | - cd $LibrariesPath - - git clone --depth=1 git://code.qt.io/qt/qtstyleplugins.git - cd qtstyleplugins - git apply ../../$REPO_NAME/Telegram/Patches/qtstyleplugins.diff - qmake - make -j$(nproc) - sudo make install - cd .. - rm -rf qtstyleplugins - - - name: Fcitx Qt5. - run: | - cd $LibrariesPath - - git clone -b 1.2.4 --depth=1 $GIT/fcitx/fcitx-qt5.git - cd fcitx-qt5 - cmake . \ - -DCMAKE_BUILD_TYPE=Release \ - -DENABLE_LIBRARY=OFF - cmake --build . -- -j$(nproc) - sudo install -D platforminputcontext/libfcitxplatforminputcontextplugin.so /usr/local/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so - cd .. - rm -rf fcitx-qt5 - - - name: Hime. - run: | - cd $LibrariesPath - - git clone $GIT/hime-ime/hime.git - cd hime - git checkout 7525645 - # disable all but xim - ./configure \ - --disable-nls \ - --disable-system-tray \ - --disable-tsin \ - --disable-gtk2-im-module \ - --disable-gtk3-im-module \ - --disable-qt4-immodule \ - --disable-anthy \ - --disable-chewing \ - --disable-appindicator \ - --disable-lib64 \ - --qt5-im-module-path=/usr/local/plugins/platforminputcontexts - make -j$(nproc) - sudo make install - cd .. - rm -rf hime - - - name: Nimf. - run: | - cd $LibrariesPath - - git clone $GIT/hamonikr/nimf.git - cd nimf - git checkout 01ae33c - git apply ../../$REPO_NAME/Telegram/Patches/nimf.diff - meson build . \ - -Denable_gtk_doc=false \ - -Dwith_nimf_anthy=false \ - -Dwith_nimf_rime=false \ - -Dwith_nimf_m17n=false \ - -Dwith_nimf_qt4=false - ninja -C build modules/clients/qt5/libqt5im_nimf.so - sudo install -D build/modules/clients/qt5/libqt5im_nimf.so /usr/local/plugins/platforminputcontexts/libqt5im_nimf.so - cd .. - rm -rf nimf - - - name: LibDBusMenu Qt. - if: env.ONLY_CACHE == 'false' - run: | - cd $LibrariesPath - - git clone -b 0.9.3+16.04.20160218-0ubuntu1 --depth=1 $GIT/unity8-team/libdbusmenu-qt.git - cd libdbusmenu-qt - cmake . \ - -DCMAKE_BUILD_TYPE=Release \ - -DWITH_DOC=OFF - cmake --build . -- -j$(nproc) - sudo cmake --install . - sudo ldconfig - cd .. - rm -rf libdbusmenu-qt - - - name: Kotatogram Desktop build. - if: env.ONLY_CACHE == 'false' - env: - API_ID: ${{ secrets.API_ID }} - API_HASH: ${{ secrets.API_HASH }} - run: | - cd $REPO_NAME/Telegram - - ./configure.sh \ - -DCMAKE_INSTALL_PREFIX=/usr \ - -DTDESKTOP_API_ID=${API_ID} \ - -DTDESKTOP_API_HASH=${API_HASH} \ - -DDESKTOP_APP_DISABLE_AUTOUPDATE=OFF \ - -DDESKTOP_APP_USE_PACKAGED_FONTS=OFF \ - -DDESKTOP_APP_USE_PACKAGED_GSL=OFF \ - -DDESKTOP_APP_USE_PACKAGED_EXPECTED=OFF \ - -DDESKTOP_APP_USE_PACKAGED_VARIANT=OFF \ - -DDESKTOP_APP_USE_PACKAGED_RLOTTIE=OFF \ - -DTDESKTOP_USE_PACKAGED_TGVOIP=OFF - - cd ../out/Release - cmake --build . -- -j$(nproc) - DESTDIR=../../AppDir cmake --install . - - - name: AppImageKit-checkrt build. - if: env.ONLY_CACHE == 'false' - run: | - cd $LibrariesPath - - git clone $GIT/darealshinji/AppImageKit-checkrt.git - cd AppImageKit-checkrt - git checkout a2866fd - git apply ../../$REPO_NAME/Telegram/Patches/AppImageKit-checkrt.diff - make -j$(nproc) - - - name: AppImage build. - if: env.ONLY_CACHE == 'false' - run: | - # Let appimagetool determine the repository - cd $REPO_NAME - - # Workaround to increase compatibility with older systems; see https://github.com/darealshinji/AppImageKit-checkrt for details - install -D $LibrariesPath/AppImageKit-checkrt/exec.so AppDir/usr/optional/exec.so - install -D $LibrariesPath/AppImageKit-checkrt/AppRun_patched AppDir/AppRun - - ../linuxdeployqt-continuous-x86_64.AppImage \ - AppDir/usr/share/applications/*.desktop \ - -appimage \ - -exclude-libs=libatk-1.0.so.0,libatk-bridge-2.0.so.0,libatspi.so.0,libcairo-gobject.so.2,libcairo.so.2,libgdk-3.so.0,libgdk-x11-2.0.so.0,libgmodule-2.0.so.0,libgtk-3.so.0,libgtk-x11-2.0.so.0,libpixman-1.so.0,libpng12.so.0 \ - -extra-plugins=bearer,iconengines,imageformats,platforminputcontexts,platforms/libqwayland-egl.so,platforms/libqwayland-generic.so,platformthemes/libqgtk3.so,platformthemes/libqxdgdesktopportal.so,wayland-decoration-client,wayland-graphics-integration-client,wayland-shell-integration - - - name: Get artifact name. - if: env.ONLY_CACHE == 'false' - run: | - cd $REPO_NAME - - tag_name=${GITHUB_REF##*/} - version=${tag_name#k} - appimage_name=$(echo Kotatogram_Desktop*.AppImage) - artifact_name=KtgAppImage.$version.tar.xz - echo ::set-env name=APPIMAGE_NAME::$appimage_name - echo ::set-env name=ARTIFACT_NAME::$artifact_name - - - name: Move artifact. - if: env.ONLY_CACHE == 'false' - run: | - cd $REPO_NAME - - mkdir -p artifact/Kotatogram - mv $APPIMAGE_NAME artifact/Kotatogram/Kotatogram.AppImage - mv out/Release/bin/Updater artifact/Kotatogram - - cd artifact - tar -caf $ARTIFACT_NAME Kotatogram - - - name: Upload release asset. - id: upload-release-asset - if: env.ONLY_CACHE == 'false' - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }} - with: - upload_url: ${{ github.event.release.upload_url }} - asset_path: ./${{ env.REPO_NAME }}/artifact/${{ env.ARTIFACT_NAME }} - asset_name: ${{ env.ARTIFACT_NAME }} - asset_content_type: application/octet-stream