name: "ci" on: push: tags: "**" workflow_dispatch: permissions: contents: write defaults: run: shell: bash jobs: appimage: runs-on: ubuntu-18.04 steps: - name: Checkout repository uses: actions/checkout@v2 with: submodules: true - name: Install dependencies run: | sudo add-apt-repository -y ppa:beineri/opt-qt-5.15.2-bionic sudo apt-get update -qq sudo apt-get install -y \ build-essential make wget libgl1-mesa-dev \ qt515declarative qt515graphicaleffects \ qt515quickcontrols qt515quickcontrols2 - name: Download QT appimage builder run: | wget -c -O linuxdeployqt.AppImage \ https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage chmod a+x linuxdeployqt.AppImage - name: Build project run: | source /opt/qt*/bin/qt*-env.sh && \ qmake -v && \ qmake CONFIG+=release PREFIX=/usr && \ make -j$(nproc) - name: Install to appdir run: | source /opt/qt*/bin/qt*-env.sh && \ make INSTALL_ROOT=appdir -j$(nproc) install - name: Extract version number run: | # Extract version for linuxdeployqt to name the file. Use the tag as # release name but remove prefix. echo "VERSION=$(echo '${{ github.ref }}' | sed 's;.*/;;')" >> $GITHUB_ENV - name: Build appimage directory run: | mkdir -p \ appdir/usr/bin \ appdir/usr/lib \ appdir/usr/share/applications \ appdir/usr/share/metainfo \ appdir/usr/share/icons/hicolor/128x128/apps cp cool-retro-term appdir/usr/bin/ cp cool-retro-term.desktop appdir/usr/share/applications/ cp packaging/appdata/cool-retro-term.appdata.xml appdir/usr/share/metainfo/ cp app/icons/128x128/cool-retro-term.png appdir/usr/share/icons/hicolor/128x128/apps/ cp -r ./app/qml appdir/usr/ # Workaround for https://github.com/probonopd/linuxdeployqt/issues/78 cp -r ./qmltermwidget/QMLTermWidget appdir/usr/qml/ find appdir | sort - name: Build appimage run: | source /opt/qt*/bin/qt*-env.sh && \ ./linuxdeployqt.AppImage appdir/usr/share/applications/cool-retro-term.desktop \ -verbose=1 -appimage \ -qmldir=./app/qml/ \ -qmldir=./qmltermwidget/ env: # Unset environment variables QTDIR: QT_PLUGIN_PATH: LD_LIBRARY_PATH: - name: Upload release uses: softprops/action-gh-release@v1 with: body: appimage release files: ./**/Cool_Retro_Term-*-x86_64.AppImage - name: Clean up if: always() run: | find appdir -executable -type f -exec ldd {} \; | grep " => /usr" | cut -d " " -f 2-3 | sort | uniq make clean rm -rf appdir