name: Linux on: [push, pull_request] env: QT_VERSION: 5.15.2 jobs: linux_build: name: Build MeshLab (Linux) runs-on: ubuntu-18.04 #in order to deploy, need to use oldest supported version strategy: matrix: precision: [single_precision, double_precision] steps: - uses: actions/checkout@v3 with: submodules: recursive - name: Install Qt uses: jurplel/install-qt-action@v3 with: cache: true version: ${{ env.QT_VERSION }} - name: Install dependencies run: | bash scripts/${{ runner.os }}/0_setup_env_ubuntu.sh --dont_install_qt --dont_install_cgal_and_boost #needed by qt 5.15 on linux sudo apt-get install libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-render-util0-dev libxcb-xinerama0-dev - name: Setup env variables id: envs shell: bash run: | if [ "${{matrix.precision}}" == "double_precision" ]; then echo "artifact_suffix=_double" >> $GITHUB_OUTPUT else echo "artifact_suffix=" >> $GITHUB_OUTPUT fi - name: Cache external libraries sources id: cache-ext-libs uses: actions/cache@v3 with: path: src/external/downloads/* key: ${{ runner.os }}-external-libraries - name: Ccache uses: hendrikmuhs/ccache-action@v1.2 with: key: ${{ runner.os }}-${{ github.ref }}-${{ matrix.precision }} - name: Configure and Build shell: bash run: | bash scripts/${{ runner.os }}/1_build.sh --${{ matrix.precision }} --nightly --ccache - name: Deploy and AppImage shell: bash run: | bash scripts/${{ runner.os }}/2_deploy_and_appimage.sh #todo: try deb when ubuntu16.04 won't be required anymore by linuxdeployqt... #- name: Build deb package # uses: jiro4989/build-deb-action@v2 # with: # package: MeshLab # package_root: install # maintainer: cnr-isti-vclab # version: ${{steps.envs.outputs.version}} # refs/tags/v*.*.* # arch: 'amd64' # desc: 'MeshLab ${{steps.envs.outputs.version}} deb package.' - name: Upload MeshLab Portable uses: actions/upload-artifact@v3 with: name: meshlab_linux_portable${{steps.envs.outputs.artifact_suffix}} path: install/ - name: Upload MeshLab AppImage uses: actions/upload-artifact@v3 with: name: meshlab_linux_appimage${{steps.envs.outputs.artifact_suffix}} path: MeshLab*-linux.AppImage #- name: Upload MeshLab deb # uses: actions/upload-artifact@v3 # with: # name: meshlab_linux_deb${{steps.envs.outputs.artifact_suffix}} # path: MeshLab_${{steps.envs.outputs.version}}_amd64.deb