Update GitHub Actions for use with Conan.

This commit is contained in:
Julian Groß 2025-01-24 22:51:56 +01:00 committed by Edgar
parent 683df9ca28
commit 2fcceda23f
No known key found for this signature in database
GPG key ID: 3C2E1F2C1C353131
13 changed files with 286 additions and 146 deletions

View file

@ -1,6 +1,6 @@
# Copyright 2013-2019 High Fidelity, Inc.
# Copyright 2020-2022 Vircadia contributors.
# Copyright 2021-2024 Overte e.V.
# Copyright 2021-2025 Overte e.V.
# SPDX-License-Identifier: Apache-2.0
name: Linux Server CI Build
@ -8,7 +8,7 @@ name: Linux Server CI Build
on:
pull_request:
types: [opened, synchronize, reopened, labeled]
types: [labeled]
push:
tags:
# Release tags. E.g. 2024.06.1
@ -21,8 +21,6 @@ env:
UPLOAD_BUCKET: overte-public
UPLOAD_REGION: fra1
UPLOAD_ENDPOINT: "https://fra1.digitaloceanspaces.com"
# Disable VCPKG caching to save time.
VCPKG_FEATURE_FLAGS: -binarycaching
jobs:
build:
@ -33,69 +31,81 @@ jobs:
matrix:
include:
- os: debian-11
image: docker.io/overte/overte-server-build:0.1.3-debian-11-amd64
image: docker.io/overte/overte-server-build:0.1.5-debian-11-amd64
arch: amd64
conan_qt: False
# https://github.com/testflows/TestFlows-GitHub-Hetzner-Runners/wiki/Meta-Labels
# self_hosted makes the Hetzner auto-scaler put up the job.
# type-cx52 is a Hetzner VPS server type. In this case cs52 is a server with 16-cores and 32GB of RAM.
# image-x86-app-docker-ce is a Hetzner image.
# https://github.com/testflows/TestFlows-GitHub-Hetzner-Runners/wiki/Specifying-The-Runner-Image
runner: [self_hosted, type-cx52, image-x86-app-docker-ce]
runner: [self_hosted, type-cpx41, image-x86-app-docker-ce]
- os: debian-11
image: docker.io/overte/overte-server-build:0.1.3-debian-11-aarch64
image: docker.io/overte/overte-server-build:0.1.5-debian-11-aarch64
arch: aarch64
conan_qt: False
runner: [self_hosted, type-cax41, image-arm-app-docker-ce]
- os: debian-12
image: docker.io/overte/overte-server-build:0.1.3-debian-12-amd64
image: docker.io/overte/overte-server-build:0.1.5-debian-12-amd64
arch: amd64
runner: [self_hosted, type-cx52, image-x86-app-docker-ce]
conan_qt: False
runner: [self_hosted, type-cpx41, image-x86-app-docker-ce]
- os: debian-12
image: docker.io/overte/overte-server-build:0.1.3-debian-12-aarch64
image: docker.io/overte/overte-server-build:0.1.5-debian-12-aarch64
arch: aarch64
conan_qt: False
runner: [self_hosted, type-cax41, image-arm-app-docker-ce]
- os: ubuntu-20.04
image: docker.io/overte/overte-server-build:0.1.3-ubuntu-20.04-amd64
image: docker.io/overte/overte-server-build:0.1.5-ubuntu-20.04-amd64
arch: amd64
runner: [self_hosted, type-cx52, image-x86-app-docker-ce]
conan_qt: True
runner: [self_hosted, type-cpx41, image-x86-app-docker-ce]
- os: ubuntu-22.04
image: docker.io/overte/overte-server-build:0.1.3-ubuntu-22.04-amd64
image: docker.io/overte/overte-server-build:0.1.5-ubuntu-22.04-amd64
arch: amd64
runner: [self_hosted, type-cx52, image-x86-app-docker-ce]
conan_qt: False
runner: [self_hosted, type-cpx41, image-x86-app-docker-ce]
- os: ubuntu-22.04
image: docker.io/overte/overte-server-build:0.1.3-ubuntu-22.04-aarch64
image: docker.io/overte/overte-server-build:0.1.5-ubuntu-22.04-aarch64
arch: aarch64
conan_qt: False
runner: [self_hosted, type-cax41, image-arm-app-docker-ce]
- os: ubuntu-24.04
image: docker.io/overte/overte-server-build:0.1.3-ubuntu-24.04-amd64
image: docker.io/overte/overte-server-build:0.1.5-ubuntu-24.04-amd64
arch: amd64
runner: [self_hosted, type-cx52, image-x86-app-docker-ce]
conan_qt: False
runner: [self_hosted, type-cpx41, image-x86-app-docker-ce]
- os: ubuntu-24.04
image: docker.io/overte/overte-server-build:0.1.3-ubuntu-24.04-aarch64
image: docker.io/overte/overte-server-build:0.1.5-ubuntu-24.04-aarch64
arch: aarch64
conan_qt: False
runner: [self_hosted, type-cax41, image-arm-app-docker-ce]
- os: fedora-40
image: docker.io/overte/overte-server-build:0.1.4-fedora-40-amd64
image: docker.io/overte/overte-server-build:0.1.5-fedora-40-amd64
arch: amd64
runner: [self_hosted, type-cx52, image-x86-app-docker-ce]
conan_qt: False
runner: [self_hosted, type-cpx41, image-x86-app-docker-ce]
- os: fedora-40
image: docker.io/overte/overte-server-build:0.1.4-fedora-40-aarch64
image: docker.io/overte/overte-server-build:0.1.5-fedora-40-aarch64
arch: aarch64
conan_qt: False
runner: [self_hosted, type-cax41, image-arm-app-docker-ce]
- os: rockylinux-9
image: docker.io/overte/overte-server-build:0.1.3-rockylinux-9-amd64
image: docker.io/overte/overte-server-build:0.1.5-rockylinux-9-amd64
arch: amd64
runner: [self_hosted, type-cx52, image-x86-app-docker-ce]
conan_qt: False
runner: [self_hosted, type-cpx41, image-x86-app-docker-ce]
fail-fast: false
@ -125,6 +135,8 @@ jobs:
echo "REFNAME=${{ github.ref_name }}" >> $GITHUB_ENV
echo "JOB_NAME=${{matrix.os}}, ${{matrix.arch}}" >> $GITHUB_ENV
echo "CONAN_QT=${{matrix.conan_qt}}" >> $GITHUB_ENV
echo "CONAN_CPPSTD=gnu17" >> $GITHUB_ENV
echo "CMAKE_BUILD_EXTRA=-- -j$(nproc)" >> $GITHUB_ENV
@ -154,7 +166,6 @@ jobs:
# Architecture specific variables
if [[ "${{ matrix.arch }}" = "aarch64" ]]; then
echo "VCPKG_FORCE_SYSTEM_BINARIES=true" >> $GITHUB_ENV
echo "CMAKE_EXTRA=-DOVERTE_CPU_ARCHITECTURE= -DSERVER_ONLY=true -DBUILD_TOOLS=true" >> $GITHUB_ENV
else # amd64
echo "CMAKE_EXTRA=-DOVERTE_CPU_ARCHITECTURE=-msse3 -DSERVER_ONLY=true -DBUILD_TOOLS=true" >> $GITHUB_ENV
@ -222,55 +233,51 @@ jobs:
fi
fi
- uses: actions/checkout@v4
with:
submodules: false
fetch-depth: 1
- name: Create Build Environment
- name: Prepare Conan Build Environment
shell: bash
run: mkdir build
run: |
conan profile detect
conan remote add overte https://artifactory.overte.org/artifactory/api/conan/overte -f
echo "tools.system.package_manager:mode = install" >> ~/.conan2/global.conf
- name: Install Conan dependencies
shell: bash
run: conan install . -s compiler.cppstd=$CONAN_CPPSTD -s build_type=$BUILD_TYPE -o '&:with_qt='${CONAN_QT^} -b missing -pr:b=default -of build --format=json > build.json
- name: Upload Conan dependencies
continue-on-error: true
shell: bash
env:
CONAN_LOGIN_USERNAME_OVERTE: ${{ secrets.conan_login_username_overte }}
CONAN_PASSWORD_OVERTE: ${{ secrets.conan_password_overte }}
run: |
conan list --graph=build.json --graph-binaries=build --format=json > pkglist.json
conan upload --list=pkglist.json -r=overte -c || echo "Credentials cannot be accessed on remote Pull Request builds. Continuing…"
- name: Configure CMake
working-directory: build
shell: bash
run: |
cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DVCPKG_BUILD_TYPE=release $CMAKE_EXTRA
- name: Compress cmake logs
if: always()
shell: bash
run: |
if [ ${{ env.CI_WORKSPACE }} ]; then
find "$CI_WORKSPACE/overte-files/vcpkg" -name '*log' -type f -print0 | tar --null --force-local -T - -c --xz -v -f "cmake-logs-${{ matrix.os }}-${{ matrix.arch }}-${{ github.event.number }}.tar.xz"
else
find "$HOME/overte-files/vcpkg" -name '*log' -type f -print0 | tar --null --force-local -T - -c --xz -v -f "cmake-logs-${{ matrix.os }}-${{ matrix.arch }}-${{ github.event.number }}.tar.xz"
fi
- name: Archive cmake logs
if: always()
uses: actions/upload-artifact@v4
with:
name: cmake-logs-${{ matrix.os }}-${{ matrix.arch }}-${{ github.event.number }}.tar.xz
path: cmake-logs-${{ matrix.os }}-${{ matrix.arch }}-${{ github.event.number }}.tar.xz
# This syntax requires CMake 3.23
run: cmake --preset conan-${BUILD_TYPE,,} $CMAKE_EXTRA
- name: Build Domain Server
working-directory: build
shell: bash
run: cmake --build . --config $BUILD_TYPE --target domain-server $CMAKE_BUILD_EXTRA
run: cmake --build . --target domain-server $CMAKE_BUILD_EXTRA
- name: Build Assignment Client
working-directory: build
shell: bash
run: cmake --build . --config $BUILD_TYPE --target assignment-client $CMAKE_BUILD_EXTRA
run: cmake --build . --target assignment-client $CMAKE_BUILD_EXTRA
- name: Build Oven
working-directory: build
shell: bash
run: cmake --build . --config $BUILD_TYPE --target oven $CMAKE_BUILD_EXTRA
run: cmake --build . --target oven $CMAKE_BUILD_EXTRA
- name: Package
working-directory: pkg-scripts

View file

@ -1,6 +1,6 @@
# Copyright 2013-2019 High Fidelity, Inc.
# Copyright 2020-2022 Vircadia contributors
# Copyright 2021-2024 Overte e.V.
# Copyright 2021-2025 Overte e.V.
# SPDX-License-Identifier: Apache-2.0
name: Master CI Build
@ -14,10 +14,7 @@ env:
APP_NAME: interface
BUILD_TYPE: Release
BUILD_NUMBER: ${{ github.event.number }}_${{ github.sha }}
CI_BUILD: Github
GIT_COMMIT: ${{ github.sha }}
# VCPKG did not build well on OSX disabling HIFI_VCPKG_BOOTSTRAP, which invokes a download to a working version of vcpkg
# HIFI_VCPKG_BOOTSTRAP: true
RELEASE_TYPE: PRODUCTION
RELEASE_NUMBER: ${{ github.event.number }}_${{ github.sha }}
STABLE_BUILD: 0
@ -26,8 +23,6 @@ env:
UPLOAD_ENDPOINT: "https://fra1.digitaloceanspaces.com"
CMAKE_BACKTRACE_URL: ${{ secrets.SENTRY_MINIDUMP_ENDPOINT }}
CMAKE_BACKTRACE_TOKEN: master_${{ github.event.number }}_${{ github.sha }}
# Disable VCPKG caching to save time.
VCPKG_FEATURE_FLAGS: -binarycaching
# OSX-specific variables
DEVELOPER_DIR: /Applications/Xcode_11.2.app/Contents/Developer
@ -40,15 +35,19 @@ env:
jobs:
build:
name: "${{matrix.os}}"
strategy:
matrix:
include:
- os: windows-2019
build_type: full
conan_qt: True
#- os: macOS-10.15
# build_type: full
# conan_qt: True
#- os: ubuntu-20.04
# build_type: full
# conan_qt: True
# apt-dependencies: mesa-common-dev libegl1 libglvnd-dev libdouble-conversion3 libpulse0 libsnappy1v5 libwebpdemux2 libwebpmux3 python3-github python3-distro
fail-fast: false
runs-on: ${{matrix.os}}
@ -68,8 +67,10 @@ jobs:
echo "{github_sha_short}={`echo $GIT_COMMIT | cut -c1-7`}" >> $GITHUB_OUTPUT
echo "JOB_NAME=build (${{matrix.os}}, ${{matrix.build_type}})" >> $GITHUB_ENV
echo "APP_TARGET_NAME=$APP_NAME" >> $GITHUB_ENV
echo "CONAN_QT=${{matrix.conan_qt}}" >> $GITHUB_ENV
# Linux build variables
if [[ "${{ matrix.os }}" = "ubuntu-"* ]]; then
echo "CONAN_CPPSTD=gnu17" >> $GITHUB_ENV
echo "PYTHON_EXEC=python3" >> $GITHUB_ENV
echo "INSTALLER_EXT=tgz" >> $GITHUB_ENV
echo "CMAKE_BUILD_EXTRA=-- -j$(nproc)" >> $GITHUB_ENV
@ -87,6 +88,7 @@ jobs:
fi
# Windows build variables
if [ "${{ matrix.os }}" = "windows-2019" ]; then
echo "CONAN_CPPSTD=17" >> $GITHUB_ENV
echo "PYTHON_EXEC=python" >> $GITHUB_ENV
echo "ZIP_COMMAND=7z" >> $GITHUB_ENV
echo "ZIP_ARGS=a" >> $GITHUB_ENV
@ -166,36 +168,53 @@ jobs:
- name: Install Python modules
if: startsWith(matrix.os, 'windows') || startsWith(matrix.os, 'macOS')
shell: bash
run: $PYTHON_EXEC -m pip install boto3 PyGithub
run: $PYTHON_EXEC -m pip install boto3 PyGithub conan
- name: Create build environment
- name: Prepare Conan Build Environment
shell: bash
run: cmake -E make_directory "${{runner.workspace}}/build"
run: |
conan profile detect
conan remote add overte https://artifactory.overte.org/artifactory/api/conan/overte -f
echo "tools.system.package_manager:mode = install" >> ~/.conan2/global.conf
- name: Install Conan dependencies
shell: bash
run: conan install . -s compiler.cppstd=$CONAN_CPPSTD -s build_type=$BUILD_TYPE -o '&:with_qt='${CONAN_QT^} -b missing -pr:b=default -of build --format=json > build.json
- name: Upload Conan dependencies
continue-on-error: true
shell: bash
env:
CONAN_LOGIN_USERNAME_OVERTE: ${{ secrets.conan_login_username_overte }}
CONAN_PASSWORD_OVERTE: ${{ secrets.conan_password_overte }}
run: |
conan list --graph=build.json --graph-binaries=build --format=json > pkglist.json
conan upload --list=pkglist.json -r=overte -c
- name: Configure CMake
working-directory: ${{runner.workspace}}/build
shell: bash
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DVCPKG_BUILD_TYPE=release -DCLIENT_ONLY:BOOLEAN=$CLIENT_ONLY -DBYPASS_SIGNING:BOOLEAN=TRUE $CMAKE_EXTRA
# This syntax requires CMake 3.23
run: cmake --preset conan-${BUILD_TYPE,,} -DCLIENT_ONLY:BOOLEAN=$CLIENT_ONLY -DBYPASS_SIGNING:BOOLEAN=TRUE $CMAKE_EXTRA
- name: Build application
working-directory: ${{runner.workspace}}/build
shell: bash
run: cmake --build . --config $BUILD_TYPE --target $APP_TARGET_NAME $CMAKE_BUILD_EXTRA
run: cmake --build . --target $APP_TARGET_NAME $CMAKE_BUILD_EXTRA
- name: Build domain server
working-directory: ${{runner.workspace}}/build
shell: bash
run: cmake --build . --config $BUILD_TYPE --target domain-server $CMAKE_BUILD_EXTRA
run: cmake --build . --target domain-server $CMAKE_BUILD_EXTRA
- name: Build assignment client
working-directory: ${{runner.workspace}}/build
shell: bash
run: cmake --build . --config $BUILD_TYPE --target assignment-client $CMAKE_BUILD_EXTRA
run: cmake --build . --target assignment-client $CMAKE_BUILD_EXTRA
- name: Build console
working-directory: ${{runner.workspace}}/build
shell: bash
run: cmake --build . --config $BUILD_TYPE --target packaged-server-console $CMAKE_BUILD_EXTRA
run: cmake --build . --target packaged-server-console $CMAKE_BUILD_EXTRA
- name: Build installer
working-directory: ${{runner.workspace}}/build

View file

@ -1,6 +1,6 @@
# Copyright 2013-2019 High Fidelity, Inc.
# Copyright 2020-2022 Vircadia contributors.
# Copyright 2021-2024 Overte e.V.
# Copyright 2021-2025 Overte e.V.
# SPDX-License-Identifier: Apache-2.0
name: Pull Request CI Build
@ -13,10 +13,7 @@ on:
env:
APP_NAME: interface
BUILD_TYPE: Release
CI_BUILD: Github
GIT_COMMIT: ${{ github.event.pull_request.head.sha }}
# VCPKG did not build well on OSX disabling HIFI_VCPKG_BOOTSTRAP, which invokes a download to a working version of vcpkg
# HIFI_VCPKG_BOOTSTRAP: true
RELEASE_TYPE: PR
RELEASE_NUMBER: ${{ github.event.number }}
VERSION_CODE: ${{ github.event.number }}
@ -24,8 +21,6 @@ env:
# We can't use secrets or actions here, so the actual value has to be hardcoded.
CMAKE_BACKTRACE_URL: "https://o4504831972343808.ingest.sentry.io/api/4504832427950080/minidump/?sentry_key=f511de295975461b8f92a36f4a4a4f32"
CMAKE_BACKTRACE_TOKEN: PR_${{ github.event.number }}_${{ github.sha }}
# Disable VCPKG caching to save time.
VCPKG_FEATURE_FLAGS: -binarycaching
UPLOAD_BUCKET: overte-public
UPLOAD_REGION: fra1
@ -53,19 +48,22 @@ jobs:
runner: windows-2019
arch: x86_64
build_type: full
conan_qt: True
#- os: macOS-10.15
# build_type: full
# conan_qt: True
- os: Ubuntu 20.04
# https://github.com/testflows/TestFlows-GitHub-Hetzner-Runners/wiki/Meta-Labels
# self_hosted makes the Hetzner auto-scaler put up the job.
# type-cx52 is a Hetzner VPS server type. In this case cs52 is a server with 16-cores and 32GB of RAM.
# image-x86-app-docker-ce is a Hetzner image.
# https://github.com/testflows/TestFlows-GitHub-Hetzner-Runners/wiki/Specifying-The-Runner-Image
runner: [self_hosted, type-cx52, image-x86-app-docker-ce]
runner: [self_hosted, type-cpx41, image-x86-app-docker-ce]
arch: amd64
build_type: full
conan_qt: True
# apt-dependencies: # add missing dependencies to docker image when convenient
image: docker.io/overte/overte-full-build:0.1.2-ubuntu-20.04-amd64
image: docker.io/overte/overte-full-build:0.1.5-ubuntu-20.04-amd64
# Android builds are currently failing
#- os: ubuntu-18.04
# build_type: android
@ -75,7 +73,9 @@ jobs:
runner: [self_hosted, type-cax41, image-arm-app-docker-ce]
arch: aarch64
build_type: full
image: docker.io/overte/overte-full-build:0.1.2-ubuntu-22.04-aarch64
conan_qt: False
# apt-dependencies: # add missing dependencies to docker image when convenient
image: docker.io/overte/overte-full-build:0.1.5-ubuntu-22.04-aarch64
fail-fast: false
runs-on: ${{matrix.runner}}
container: ${{matrix.image}}
@ -89,9 +89,11 @@ jobs:
echo "GIT_COMMIT_SHORT=`echo $GIT_COMMIT | cut -c1-7`" >> $GITHUB_ENV
echo "JOB_NAME=${{matrix.os}}, ${{matrix.build_type}}" >> $GITHUB_ENV
echo "APP_TARGET_NAME=$APP_NAME" >> $GITHUB_ENV
echo "CONAN_QT=${{matrix.conan_qt}}" >> $GITHUB_ENV
# Linux build variables
if [[ "${{ matrix.os }}" = "Ubuntu"* ]]; then
echo "CONAN_CPPSTD=gnu17" >> $GITHUB_ENV
echo "PYTHON_EXEC=python3" >> $GITHUB_ENV
echo "INSTALLER_EXT=*" >> $GITHUB_ENV
echo "CMAKE_BUILD_EXTRA=-- -j$(nproc)" >> $GITHUB_ENV
@ -103,7 +105,6 @@ jobs:
fi
if [[ "${{ matrix.arch }}" = "aarch64" ]]; then
echo "VCPKG_FORCE_SYSTEM_BINARIES=true" >> $GITHUB_ENV
if [ "${{ matrix.build_type }}" = "full" ]; then
echo "CMAKE_EXTRA=-DOVERTE_CPU_ARCHITECTURE= -DBUILD_TOOLS:BOOLEAN=FALSE -DHIFI_PYTHON_EXEC:FILEPATH=$(which python3)" >> $GITHUB_ENV
else
@ -134,6 +135,7 @@ jobs:
fi
# Windows build variables
if [ "${{ matrix.os }}" = "Windows 2019" ]; then
echo "CONAN_CPPSTD=17" >> $GITHUB_ENV
echo "PYTHON_EXEC=python" >> $GITHUB_ENV
echo "INSTALLER_EXT=exe" >> $GITHUB_ENV
if [ "${{ matrix.build_type }}" = "full" ]; then
@ -204,13 +206,6 @@ jobs:
sudo cp -rp MacOSX10.12.sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/ || exit 0
echo " done"
fi
if [[ "${{ matrix.os }}" =~ "Debian 11" ]]; then
echo "Installing CMake from Debian Backports"
echo deb http://deb.debian.org/debian bullseye-backports main > /etc/apt/sources.list.d/bullseye-backports.list
sudo apt update
sudo apt-get -t bullseye-backports install -y cmake
fi
- name: Override NSIS
shell: pwsh
@ -220,60 +215,58 @@ jobs:
- name: Install Python modules
if: startsWith(matrix.os, 'Windows') || startsWith(matrix.os, 'macOS')
shell: bash
run: $PYTHON_EXEC -m pip install boto3 PyGithub
run: $PYTHON_EXEC -m pip install boto3 PyGithub conan
- name: Create Build Environment
shell: bash
run: cmake -E make_directory ./build
- name: Configure CMake
working-directory: build
shell: bash
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DVCPKG_BUILD_TYPE=release $CMAKE_EXTRA
- name: Compress cmake logs
if: always()
- name: Prepare Conan Build Environment
shell: bash
run: |
if [ "${{ matrix.os }}" == "macOS-10.15" ]; then
TAR=gtar
else
TAR=tar
fi
find "$HOME/overte-files/vcpkg" -name '*log' -type f -print0 | $TAR --null --force-local -T - -c --xz -v -f "./cmake-logs-${{ matrix.os }}-${{ github.event.number }}.tar.xz"
conan profile detect
conan remote add overte https://artifactory.overte.org/artifactory/api/conan/overte -f
echo "tools.system.package_manager:mode = install" >> ~/.conan2/global.conf
- name: Archive cmake logs
if: always()
uses: actions/upload-artifact@v4
with:
name: cmake-logs-${{ matrix.os }}-${{ github.event.number }}.tar.xz
path: ./cmake-logs-${{ matrix.os }}-${{ github.event.number }}.tar.xz
if-no-files-found: error
- name: Install Conan dependencies
shell: bash
run: conan install . -s compiler.cppstd=$CONAN_CPPSTD -s build_type=$BUILD_TYPE -o '&:with_qt='${CONAN_QT^} -b missing -pr:b=default -of build --format=json > build.json
- name: Upload Conan dependencies
continue-on-error: true
shell: bash
env:
CONAN_LOGIN_USERNAME_OVERTE: ${{ secrets.conan_login_username_overte }}
CONAN_PASSWORD_OVERTE: ${{ secrets.conan_password_overte }}
run: |
conan list --graph=build.json --graph-binaries=build --format=json > pkglist.json
conan upload --list=pkglist.json -r=overte -c || echo "Credentials cannot be accessed on remote Pull Request builds. Continuing…"
- name: Configure CMake
shell: bash
# This syntax requires CMake 3.23
run: cmake --preset conan-${BUILD_TYPE,,} $CMAKE_EXTRA
- name: Build Application
if: matrix.build_type == 'full' || matrix.build_type == 'client'
working-directory: build
shell: bash
run: cmake --build . --config $BUILD_TYPE --target $APP_TARGET_NAME $CMAKE_BUILD_EXTRA
run: cmake --build . --target $APP_TARGET_NAME $CMAKE_BUILD_EXTRA
- name: Build Domain Server
if: matrix.build_type == 'full'
working-directory: build
shell: bash
run: cmake --build . --config $BUILD_TYPE --target domain-server $CMAKE_BUILD_EXTRA
run: cmake --build . --target domain-server $CMAKE_BUILD_EXTRA
- name: Build Assignment Client
if: matrix.build_type == 'full'
working-directory: build
shell: bash
run: cmake --build . --config $BUILD_TYPE --target assignment-client $CMAKE_BUILD_EXTRA
run: cmake --build . --target assignment-client $CMAKE_BUILD_EXTRA
- name: Build Console
if: matrix.build_type == 'full' && matrix.arch != 'aarch64' || startsWith(matrix.os, 'windows')
working-directory: build
shell: bash
run: |
cmake --build . --config $BUILD_TYPE --target packaged-server-console $CMAKE_BUILD_EXTRA
cmake --build . --target packaged-server-console $CMAKE_BUILD_EXTRA
- name: Build Installer
if: matrix.build_type != 'android' && matrix.arch != 'aarch64'

View file

@ -1,6 +1,6 @@
# Copyright 2013-2019 High Fidelity, Inc.
# Copyright 2020-2022 Vircadia contributors
# Copyright 2021-2024 Overte e.V.
# Copyright 2021-2025 Overte e.V.
# SPDX-License-Identifier: Apache-2.0
name: Windows Release Build
@ -15,7 +15,6 @@ on:
env:
APP_NAME: interface
BUILD_TYPE: Release
CI_BUILD: Github
GIT_COMMIT: ${{ github.sha }}
PRODUCTION_BUILD: true
RELEASE_TYPE: PRODUCTION
@ -26,19 +25,19 @@ env:
UPLOAD_ENDPOINT: "https://fra1.digitaloceanspaces.com"
CMAKE_BACKTRACE_URL: ${{ secrets.SENTRY_MINIDUMP_ENDPOINT }}
CMAKE_BACKTRACE_TOKEN: ${{ github.ref_name }}_Windows_${{ github.sha }}
# Disable VCPKG caching to save time.
VCPKG_FEATURE_FLAGS: -binarycaching
# WIN-specific variables
PreferredToolArchitecture: X64
jobs:
build:
name: "${{matrix.os}}"
strategy:
matrix:
include:
- os: windows-2019
build_type: full
conan_qt: True
fail-fast: false
runs-on: ${{matrix.os}}
steps:
@ -58,6 +57,8 @@ jobs:
echo "JOB_NAME=${{matrix.os}}, ${{matrix.build_type}}" >> $GITHUB_ENV
echo "APP_TARGET_NAME=$APP_NAME" >> $GITHUB_ENV
echo "CONAN_QT=${{matrix.conan_qt}}" >> $GITHUB_ENV
echo "CONAN_CPPSTD=17" >> $GITHUB_ENV
echo "PYTHON_EXEC=python" >> $GITHUB_ENV
echo "ZIP_COMMAND=7z" >> $GITHUB_ENV
@ -91,36 +92,53 @@ jobs:
- name: Install Python modules
if: startsWith(matrix.os, 'windows') || startsWith(matrix.os, 'macOS')
shell: bash
run: $PYTHON_EXEC -m pip install boto3 PyGithub
run: $PYTHON_EXEC -m pip install boto3 PyGithub conan
- name: Create build environment
- name: Prepare Conan Build Environment
shell: bash
run: cmake -E make_directory "${{runner.workspace}}/build"
run: |
conan profile detect
conan remote add overte https://artifactory.overte.org/artifactory/api/conan/overte -f
echo "tools.system.package_manager:mode = install" >> ~/.conan2/global.conf
- name: Install Conan dependencies
shell: bash
run: conan install . -s compiler.cppstd=$CONAN_CPPSTD -s build_type=$BUILD_TYPE -o '&:with_qt='${CONAN_QT^} -b missing -pr:b=default -of build --format=json > build.json
- name: Upload Conan dependencies
continue-on-error: true
shell: bash
env:
CONAN_LOGIN_USERNAME_OVERTE: ${{ secrets.conan_login_username_overte }}
CONAN_PASSWORD_OVERTE: ${{ secrets.conan_password_overte }}
run: |
conan list --graph=build.json --graph-binaries=build --format=json > pkglist.json
conan upload --list=pkglist.json -r=overte -c
- name: Configure CMake
working-directory: ${{runner.workspace}}/build
shell: bash
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DVCPKG_BUILD_TYPE=release -DJSDOC_ENABLED:BOOL=TRUE -DCLIENT_ONLY:BOOLEAN=$CLIENT_ONLY -DBYPASS_SIGNING:BOOLEAN=TRUE $CMAKE_EXTRA
# This syntax requires CMake 3.23
run: cmake --preset conan-${BUILD_TYPE,,} -DJSDOC_ENABLED:BOOL=TRUE -DCLIENT_ONLY:BOOLEAN=$CLIENT_ONLY -DBYPASS_SIGNING:BOOLEAN=TRUE $CMAKE_EXTRA
- name: Build application
working-directory: ${{runner.workspace}}/build
shell: bash
run: cmake --build . --config $BUILD_TYPE --target $APP_TARGET_NAME $CMAKE_BUILD_EXTRA
run: cmake --build . --target $APP_TARGET_NAME $CMAKE_BUILD_EXTRA
- name: Build domain server
working-directory: ${{runner.workspace}}/build
shell: bash
run: cmake --build . --config $BUILD_TYPE --target domain-server $CMAKE_BUILD_EXTRA
run: cmake --build . --target domain-server $CMAKE_BUILD_EXTRA
- name: Build assignment client
working-directory: ${{runner.workspace}}/build
shell: bash
run: cmake --build . --config $BUILD_TYPE --target assignment-client $CMAKE_BUILD_EXTRA
run: cmake --build . --target assignment-client $CMAKE_BUILD_EXTRA
- name: Build console
working-directory: ${{runner.workspace}}/build
shell: bash
run: cmake --build . --config $BUILD_TYPE --target packaged-server-console $CMAKE_BUILD_EXTRA
run: cmake --build . --target packaged-server-console $CMAKE_BUILD_EXTRA
- name: Build installer
working-directory: ${{runner.workspace}}/build

View file

@ -1,8 +1,8 @@
# Copyright 2022-2023 Overte e.V.
# Copyright 2022-2025 Overte e.V.
# SPDX-License-Identifier: Apache-2.0
# Docker file for building Overte Server
# Example build: docker build -t overte/overte-server-build:0.1.3-debian-11 -f Dockerfile_build_debian-11 .
# Example build: docker build -t overte/overte-server-build:0.1.5-debian-11 -f Dockerfile_build_debian-11 .
FROM debian:bullseye
LABEL maintainer="Julian Groß (julian.gro@overte.org)"
LABEL description="Development image for Overte Domain server and assignment clients."
@ -14,6 +14,10 @@ RUN echo UTC >/etc/timezone
# Installing via dependency causes interactive hang:
RUN apt-get update && apt-get -y install tzdata
# Install Conan
RUN apt-get -y install python3-pip
RUN pip3 install conan
# Install Overte domain-server and assignment-client build dependencies
RUN apt-get -y install curl ninja-build git g++ libssl-dev libqt5websockets5-dev qtdeclarative5-dev qtmultimedia5-dev python3-distutils python3-distro mesa-common-dev libgl1-mesa-dev libsystemd-dev

View file

@ -1,8 +1,8 @@
# Copyright 2022-2023 Overte e.V.
# Copyright 2022-2025 Overte e.V.
# SPDX-License-Identifier: Apache-2.0
# Docker file for building Overte Server
# Example build: docker build -t overte/overte-server-build:0.1.3-debian-12 -f Dockerfile_build_debian-12 .
# Example build: docker build -t overte/overte-server-build:0.1.5-debian-12 -f Dockerfile_build_debian-12 .
FROM debian:bookworm
LABEL maintainer="Julian Groß (julian.gro@overte.org)"
LABEL description="Development image for Overte Domain server and assignment clients."
@ -14,6 +14,10 @@ RUN echo UTC >/etc/timezone
# Installing via dependency causes interactive hang:
RUN apt-get update && apt-get -y install tzdata
# Install Conan
RUN apt-get -y install python3-pip
RUN pip3 install --break-system-packages conan
# Install Overte domain-server and assignment-client build dependencies
RUN apt-get -y install cmake curl ninja-build git g++ libssl-dev libqt5websockets5-dev qtdeclarative5-dev qtmultimedia5-dev python3-distutils python3-distro mesa-common-dev libgl1-mesa-dev libsystemd-dev
@ -36,4 +40,4 @@ RUN echo "export LANG=en_US.UTF-8" >> ~/.bashrc
RUN echo "export LANGUAGE=en_US.UTF-8" >> ~/.bashrc
# Install tools needed for our Github Actions Workflow
Run apt-get -y install python3-boto3 python3-github zip
RUN apt-get -y install python3-boto3 python3-github zip

View file

@ -1,8 +1,8 @@
# Copyright 2022-2023 Overte e.V.
# Copyright 2022-2025 Overte e.V.
# SPDX-License-Identifier: Apache-2.0
# Docker file for building Overte Server
# Example build: docker build -t overte/overte-server-build:0.1.3-ubuntu-20.04 -f Dockerfile_build_ubuntu-20.04 .
# Example build: docker build -t overte/overte-server-build:0.1.5-ubuntu-20.04 -f Dockerfile_build_ubuntu-20.04 .
FROM ubuntu:20.04
LABEL maintainer="Julian Groß (julian.gro@overte.org)"
LABEL description="Development image for Overte Domain server and assignment clients."
@ -14,6 +14,27 @@ RUN echo UTC >/etc/timezone
# Installing via dependency causes interactive hang:
RUN apt-get update && apt-get -y install tzdata
# Install Conan
RUN apt-get -y install python3-pip
RUN pip3 install conan
# Install CMake from Kitware
RUN apt-get update
RUN apt-get -y install ca-certificates gpg wget
RUN wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null
RUN echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal main' | tee /etc/apt/sources.list.d/kitware.list >/dev/null
RUN apt-get update
RUN rm /usr/share/keyrings/kitware-archive-keyring.gpg && apt-get -y install kitware-archive-keyring
RUN apt-get -y install cmake
# Install GCC 13 from Toolchain test PPA
RUN apt-get -y install software-properties-common
RUN add-apt-repository ppa:ubuntu-toolchain-r/test
RUN apt-get update
RUN apt-get -y install gcc-13 g++-13
# Set GCC 13 as default
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 100 --slave /usr/bin/g++ g++ /usr/bin/g++-13 --slave /usr/bin/gcov gcov /usr/bin/gcov-13
# Install Overte domain-server and assignment-client build dependencies
RUN apt-get -y install curl ninja-build git cmake g++ libssl-dev python3-distutils python3-distro mesa-common-dev libgl1-mesa-dev libharfbuzz-dev libdouble-conversion3 libxext-dev libsystemd-dev

View file

@ -1,8 +1,8 @@
# Copyright 2022-2023 Overte e.V.
# Copyright 2022-2025 Overte e.V.
# SPDX-License-Identifier: Apache-2.0
# Docker file for building Overte Server
# Example build: docker build -t overte/overte-server-build:0.1.3-ubuntu-22.04 -f Dockerfile_build_ubuntu-22.04 .
# Example build: docker build -t overte/overte-server-build:0.1.5-ubuntu-22.04 -f Dockerfile_build_ubuntu-22.04 .
FROM ubuntu:22.04
LABEL maintainer="Julian Groß (julian.gro@overte.org)"
LABEL description="Development image for Overte Domain server and assignment clients."
@ -14,6 +14,27 @@ RUN echo UTC >/etc/timezone
# Installing via dependency causes interactive hang:
RUN apt-get update && apt-get -y install tzdata
# Install Conan
RUN apt-get -y install python3-pip
RUN pip3 install conan
# Install CMake from Kitware
RUN apt-get update
RUN apt-get -y install ca-certificates gpg wget
RUN wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null
RUN echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ jammy main' | tee /etc/apt/sources.list.d/kitware.list >/dev/null
RUN apt-get update
RUN rm /usr/share/keyrings/kitware-archive-keyring.gpg && apt-get -y install kitware-archive-keyring
RUN apt-get -y install cmake
# Install GCC 13 from Toolchain test PPA
RUN apt-get -y install software-properties-common
RUN add-apt-repository ppa:ubuntu-toolchain-r/test
RUN apt-get update
RUN apt-get -y install gcc-13 g++-13
# Set GCC 13 as default
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 100 --slave /usr/bin/g++ g++ /usr/bin/g++-13 --slave /usr/bin/gcov gcov /usr/bin/gcov-13
# Install Overte domain-server and assignment-client build dependencies
RUN apt-get -y install curl ninja-build git cmake g++ libssl-dev libqt5websockets5-dev qtdeclarative5-dev qtmultimedia5-dev python3-distutils python3-distro mesa-common-dev libgl1-mesa-dev libsystemd-dev
# Install Overte tools build dependencies

View file

@ -1,8 +1,8 @@
# Copyright 2022-2024 Overte e.V.
# Copyright 2022-2025 Overte e.V.
# SPDX-License-Identifier: Apache-2.0
# Docker file for building Overte Server
# Example build: docker build -t overte/overte-server-build:0.1.3-ubuntu-24.04 -f Dockerfile_build_ubuntu-24.04 .
# Example build: docker build -t overte/overte-server-build:0.1.5-ubuntu-24.04 -f Dockerfile_build_ubuntu-24.04 .
FROM ubuntu:24.04
LABEL maintainer="Julian Groß (julian.gro@overte.org)"
LABEL description="Development image for Overte Domain server and assignment clients."
@ -14,6 +14,10 @@ RUN echo UTC >/etc/timezone
# Installing via dependency causes interactive hang:
RUN apt-get update && apt-get -y install tzdata
# Install Conan
RUN apt-get -y install python3-pip
RUN pip3 install --break-system-packages conan
# Install Overte domain-server and assignment-client build dependencies
RUN apt-get -y install curl ninja-build git cmake g++ libssl-dev libqt5websockets5-dev qtdeclarative5-dev qtmultimedia5-dev python3-setuptools python3-distro mesa-common-dev libgl1-mesa-dev libsystemd-dev
# Install Overte tools build dependencies
@ -35,4 +39,4 @@ RUN echo "export LANG=en_US.UTF-8" >> ~/.bashrc
RUN echo "export LANGUAGE=en_US.UTF-8" >> ~/.bashrc
# Install tools needed for our Github Actions Workflow
Run apt-get -y install python3-boto3 python3-github zip
RUN apt-get -y install python3-boto3 python3-github zip

View file

@ -1,8 +1,8 @@
# Copyright 2022-2024 Overte e.V.
# Copyright 2022-2025 Overte e.V.
# SPDX-License-Identifier: Apache-2.0
# Docker file for building Overte
# Example build: docker build -t overte/overte-full-build:0.1.2-ubuntu-20.04 -f Dockerfile_build_ubuntu-20.04 .
# Example build: docker build -t overte/overte-full-build:0.1.5-ubuntu-20.04 -f Dockerfile_build_ubuntu-20.04 .
FROM ubuntu:20.04
LABEL maintainer="Julian Groß (julian.gro@overte.org)"
LABEL description="Development image for full Overte builds"
@ -14,6 +14,27 @@ RUN echo UTC >/etc/timezone
# Installing via dependency causes interactive hang:
RUN apt-get update && apt-get -y install tzdata
# Install Conan
RUN apt-get -y install python3-pip
RUN pip3 install conan
# Install CMake from Kitware
RUN apt-get update
RUN apt-get -y install ca-certificates gpg wget
RUN wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null
RUN echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal main' | tee /etc/apt/sources.list.d/kitware.list >/dev/null
RUN apt-get update
RUN rm /usr/share/keyrings/kitware-archive-keyring.gpg && apt-get -y install kitware-archive-keyring
RUN apt-get -y install cmake
# Install GCC 13 from Toolchain test PPA
RUN apt-get -y install software-properties-common
RUN add-apt-repository ppa:ubuntu-toolchain-r/test
RUN apt-get update
RUN apt-get -y install gcc-13 g++-13
# Set GCC 13 as default
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 100 --slave /usr/bin/g++ g++ /usr/bin/g++-13 --slave /usr/bin/gcov gcov /usr/bin/gcov-13
# Install Overte domain-server and assignment-client build dependencies
RUN apt-get -y install curl ninja-build git cmake g++ libssl-dev python3-distutils python3-distro mesa-common-dev libgl1-mesa-dev libsystemd-dev
# Install server-console build dependencies

View file

@ -2,7 +2,7 @@
# SPDX-License-Identifier: Apache-2.0
# Docker file for building Overte
# Example build: docker build -t overte/overte-full-build:0.1.2-ubuntu-22.04 -f Dockerfile_build_ubuntu-22.04 .
# Example build: docker build -t overte/overte-full-build:0.1.5-ubuntu-22.04 -f Dockerfile_build_ubuntu-22.04 .
FROM ubuntu:22.04
LABEL maintainer="Julian Groß (julian.gro@overte.org)"
LABEL description="Development image for full Overte builds"
@ -14,6 +14,27 @@ RUN echo UTC >/etc/timezone
# Installing via dependency causes interactive hang:
RUN apt-get update && apt-get -y install tzdata
# Install Conan
RUN apt-get -y install python3-pip
RUN pip3 install conan
# Install CMake from Kitware
RUN apt-get update
RUN apt-get -y install ca-certificates gpg wget
RUN wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null
RUN echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ jammy main' | tee /etc/apt/sources.list.d/kitware.list >/dev/null
RUN apt-get update
RUN rm /usr/share/keyrings/kitware-archive-keyring.gpg && apt-get -y install kitware-archive-keyring
RUN apt-get -y install cmake
# Install GCC 13 from Toolchain test PPA
RUN apt-get -y install software-properties-common
RUN add-apt-repository ppa:ubuntu-toolchain-r/test
RUN apt-get update
RUN apt-get -y install gcc-13 g++-13
# Set GCC 13 as default
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 100 --slave /usr/bin/g++ g++ /usr/bin/g++-13 --slave /usr/bin/gcov gcov /usr/bin/gcov-13
# Install Overte domain-server and assignment-client build dependencies
RUN apt-get -y install curl ninja-build git cmake g++ libssl-dev libqt5websockets5-dev qtscript5-dev qtdeclarative5-dev qtmultimedia5-dev python3-distutils python3-distro mesa-common-dev libgl1-mesa-dev libsystemd-dev
# Install Overte tools build dependencies

View file

@ -1,8 +1,8 @@
# Copyright 2022-2024 Overte e.V.
# Copyright 2022-2025 Overte e.V.
# SPDX-License-Identifier: Apache-2.0
# Docker file for building Overte Server
# Example build: docker build -t overte/overte-server-build:0.1.4-fedora-40 -f Dockerfile_build_fedora-40 .
# Example build: docker build -t overte/overte-server-build:0.1.5-fedora-40 -f Dockerfile_build_fedora-40 .
FROM fedora:40
LABEL maintainer="Julian Groß (julian.gro@overte.org)"
LABEL description="Development image for Overte Domain server and assignment clients."
@ -17,4 +17,7 @@ RUN dnf -y install zip unzip
RUN dnf -y install chrpath rpmdevtools
# Install tools needed for our Github Actions Workflow
Run dnf -y install python3-boto3 python3-pygithub
RUN dnf -y install python3-boto3 python3-pygithub
# Install Conan
RUN dnf -y install conan

View file

@ -1,8 +1,8 @@
# Copyright 2022-2023 Overte e.V.
# Copyright 2022-2025 Overte e.V.
# SPDX-License-Identifier: Apache-2.0
# Docker file for building Overte Server
# Example build: docker build -t overte/overte-server-build:0.1.3-rockylinux-9 -f Dockerfile_build_rockylinux-9 .
# Example build: docker build -t overte/overte-server-build:0.1.5-rockylinux-9 -f Dockerfile_build_rockylinux-9 .
FROM rockylinux:9
LABEL maintainer="Julian Groß (julian.gro@overte.org)"
LABEL description="Development image for Overte Domain server and assignment clients."
@ -26,3 +26,7 @@ RUN dnf -y install chrpath rpmdevtools
# Install tools needed for our Github Actions Workflow
Run dnf -y install python3-boto3 python3-github
# Install Conan
RUN dnf -y install python3-pip
RUN pip3 install conan