name: Build eismuliplexer for linux
run-name: Building eismuliplexer for linux
on: [push]

jobs:
  Build:
    runs-on: ubuntu-latest
    steps:
      - name: Install dependancies
        run: apt update; apt install -y libusb-1.0-0-dev cmake qt6-base-dev qt6-base-dev-tools qt6-tools-dev-tools libqt6widgets6 wget libglx-dev libgl1-mesa-dev qt6-qpa-plugins
      - name: Check out repository code
        uses: ischanx/checkout@8c80eac3058d03dc5301629e8f7d59ae255d6cc3
      - name: Checkout libeismultiplexer
        run: git clone http://192.168.178.27/git/Eismultiplexer/libeismultiplexer.git
      - name: Install Appimagetool
        run: |
            wget https://github.com/probonopd/go-appimage/releases/download/continuous/appimagetool-904-x86_64.AppImage
            chmod +x appimagetool-904-x86_64.AppImage
            mv appimagetool-904-x86_64.AppImage /usr/bin/appimagetool
      - name: libeismultiplexer version
        id: libeisversion
        run: |
            cd ${{ gitea.workspace }}/libeismultiplexer
            git fetch -a;
            echo "tag=$(git describe --tags `git rev-list --tags --max-count=1`)" >> $GITHUB_OUTPUT
      - name: Version
        id: version
        run: |
            cd ${{ gitea.workspace }}
            git fetch -a;
            echo "tag=$(git describe --tags `git rev-list --tags --max-count=1`)" >> $GITHUB_OUTPUT
      - name: Build and install libeismultiplexer
        run: |
            mkdir ${{ gitea.workspace }}/libeismultiplexer/build; cd ${{ gitea.workspace }}/libeismultiplexer/build
            cmake -DCMAKE_BUILD_TYPE=Release -DGIT_TAG=${{ steps.libeisversion.outputs.tag }} ..
            make -j $(nproc)
            make install
      - name: Build
        run: |
            mkdir ${{ gitea.workspace }}/build; cd ${{ gitea.workspace }}/build
            cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=./install/usr -DGIT_TAG=${{ steps.version.outputs.tag }} ..
            make -j $(nproc)
            make install
      - name: Create Appimage
        run: |
            cd ${{ gitea.workspace }}/build/
            appimagetool --appimage-extract-and-run -s deploy install/usr/share/applications/eismultiplexerqt.desktop
            appimagetool --appimage-extract-and-run -s install
      - name: Upload Appimage
        uses: actions/upload-artifact@v3
        with:
            name: eismultiplexer-qt-appimage
            path: ${{ gitea.workspace }}/build/*.AppImage
