meshlab/.github/workflows/BuildUbuntu.yml
2020-06-04 10:13:18 +02:00

116 lines
3.7 KiB
YAML

name: BuildUbuntu
on:
[push, pull_request]
jobs:
ubuntu_build_appimage:
name: Build MeshLab (Ubuntu - AppImage)
runs-on: ubuntu-16.04 #in order to deploy, need to use oldest supported version
steps:
- uses: actions/checkout@v2
- name: Checkout submodules
shell: bash
run: |
auth_header="$(git config --local --get http.https://github.com/.extraheader)"
git submodule sync --recursive
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
- name: Install Qt
uses: jurplel/install-qt-action@v2
with:
modules: xmlpatterns
- name: Install dependencies
run: |
sudo apt-get install -y mesa-common-dev libglu1-mesa-dev libglew-dev libeigen3-dev libgmp-dev
sudo apt-get install -y libxkbcommon-x11-0 chrpath
- name: Setup env variables
id: envs
run: |
echo ::set-output name=date::"$(cat ML_VERSION)"
- name: Build MeshLab
run: |
sh install/linux/linux_build.sh
- name: Deploy MeshLab and MeshLabServer
run : |
sh install/linux/linux_appimages.sh
- name: Upload Meshlab Portable
uses: actions/upload-artifact@v1
with:
name: meshlab_linux_portable
path: distrib/
- name: Upload MeshlabServer AppImage
uses: actions/upload-artifact@v1
with:
name: meshlabserver_linux_appimage
path: MeshLabServer${{steps.envs.outputs.date}}-linux.AppImage
- name: Upload Meshlab AppImage
uses: actions/upload-artifact@v1
with:
name: meshlab_linux_appimage
path: MeshLab${{steps.envs.outputs.date}}-linux.AppImage
ubuntu_build_snap:
name: Build MeshLab (Ubuntu - Snap)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Checkout submodules
shell: bash
run: |
auth_header="$(git config --local --get http.https://github.com/.extraheader)"
git submodule sync --recursive
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
- name: Install dependencies
run: |
#needed for some reason...
curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -
sudo apt update
sudo apt-get install -y snapcraft
- name: Setup env variables
id: envs
run: |
echo ::set-output name=date::"$(cat ML_VERSION)"
- name: Build MeshLab Snap
run: |
snapcraft
- name: Rename Snap
run: |
mv ./meshlab*.snap ./MeshLab${{steps.envs.outputs.date}}-linux.snap
- name: Upload Meshlab Snap
uses: actions/upload-artifact@v1
with:
name: meshlab_linux_snap
path: MeshLab${{steps.envs.outputs.date}}-linux.snap
ubuntu_build_cmake:
name: Build MeshLab (Ubuntu - CMake)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Checkout submodules
shell: bash
run: |
auth_header="$(git config --local --get http.https://github.com/.extraheader)"
git submodule sync --recursive
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
- name: Install dependencies
run: |
sh install/linux/linux_setup_env_ubuntu.sh
sudo apt-get install cmake ninja-build
- name: Setup env variables
id: envs
run: |
echo ::set-output name=date::"$(cat ML_VERSION)"
- name: Configure
run: |
cmake src/ -G Ninja
- name: Build MeshLab
run: |
ninja -C .
- name: Install Meshlab
run: sudo ninja -C . install