mirror of
https://github.com/lubosz/overte.git
synced 2025-08-07 19:21:16 +02:00
179 lines
9 KiB
YAML
179 lines
9 KiB
YAML
name: CMake CI
|
|
|
|
on:
|
|
pull_request:
|
|
types: [opened, synchronize, reopened, labeled]
|
|
|
|
# Eventually we will want to enable CI builds on push to specific branches, but we probably want to configure it not to happen in forks
|
|
# push:
|
|
# branches:
|
|
# - master
|
|
# - stable
|
|
|
|
env:
|
|
CI_BUILD: Github
|
|
BUILD_TYPE: Release
|
|
RELEASE_TYPE: PR
|
|
RELEASE_NUMBER: ${{ github.event.number }}
|
|
VERSION_CODE: ${{ github.event.number }}
|
|
GIT_PR_COMMIT: ${{ github.sha }}
|
|
# FIXME should be a shortened version of the SHA
|
|
GIT_PR_COMMIT_SHORT: ${{ github.sha }}
|
|
HIFI_VCPKG_BOOTSTRAP: true
|
|
|
|
AWS_ACCESS_KEY_ID: ${{ secrets.aws_access_key_id }}
|
|
|
|
# Settings for uploading
|
|
APP_NAME: interface
|
|
#APP_NAME: gpu-frame-player
|
|
BUCKET_NAME: hifi-public
|
|
UPLOAD_PREFIX: austin/builds
|
|
|
|
# OSX specific variables
|
|
DEVELOPER_DIR: /Applications/Xcode_11.2.app/Contents/Developer
|
|
MACOSX_DEPLOYMENT_TARGET: '10.11'
|
|
# WIN32 specific variables
|
|
PreferredToolArchitecture: X64
|
|
|
|
BS_USERNAME: gustavo@highfidelity.io
|
|
BS_PASSWORD: ${MASKED_BUGSPLAT_PASSWORD}
|
|
CMAKE_BACKTRACE_URL: https://highfidelity.sp.backtrace.io:6098
|
|
GA_TRACKING_ID: UA-39558647-8
|
|
OCULUS_APP_ID: '1255907384473836'
|
|
# CMAKE_BACKTRACE_TOKEN: ${MASKED_CMAKE_BACKTRACE_TOKEN}
|
|
# CMAKE_BACKTRACE_SYMBOLS_TOKEN: ${MASKED_BACKTRACE_UPLOAD_TOKEN}
|
|
|
|
LINUX_DOCKER_IMAGE_NAME: "linux-hifi-gha:${{ github.event.number }}"
|
|
|
|
# Mac OS
|
|
#PLATFORM_CMAKE_GENERATOR=Xcode
|
|
#PLATFORM_BUILD_ARGUMENTS=--config Release --target package
|
|
#ARTIFACT_EXPRESSION=build/*.dmg,build/*.zip
|
|
|
|
# Windows
|
|
#PLATFORM_CMAKE_GENERATOR=Visual Studio 15 2017 Win64
|
|
#PLATFORM_BUILD_ARGUMENTS=--target package --config release
|
|
#ARTIFACT_EXPRESSION=build/*.exe,build/*.zip,*-symbols.zip
|
|
|
|
# Ubuntu
|
|
#PLATFORM_CMAKE_GENERATOR=Unix Makefiles
|
|
#PLATFORM_BUILD_ARGUMENTS=--target all -- -j4
|
|
#ARTIFACT_EXPRESSION=build/assignment-client/**,build/domain-server/**,build/ice-server/ice-server,build/tools/ice-client/ice-client,build/tools/ac-client/ac-client,build/tools/oven,build/ext/makefiles/nvtt/project/lib/**,build/ext/makefiles/quazip/project/lib/**
|
|
|
|
# Android
|
|
#OAUTH_CLIENT_SECRET=${MASKED_ANDROID_OAUTH_CLIENT_SECRET_NIGHTLY}
|
|
#OAUTH_CLIENT_ID=6c7d2349c0614640150db37457a1f75dce98a28ffe8f14d47f6cfae4de5b262a
|
|
#OAUTH_REDIRECT_URI=https://dev-android-interface.highfidelity.com/auth
|
|
#ARTIFACT_EXPRESSION=android/*.apk
|
|
#SHA7=${GIT_PR_COMMIT_SHORT}
|
|
#ANDROID_APK_NAME=HighFidelity-Beta-PR${RELEASE_NUMBER}-${GIT_PR_COMMIT_SHORT}.apk
|
|
#ANDROID_BUILT_APK_NAME=interface-debug.apk
|
|
#ANDROID_APP=interface
|
|
#ANDROID_BUILD_DIR=debug
|
|
#ANDROID_BUILD_TARGET=assembleDebug
|
|
#STABLE_BUILD=0
|
|
|
|
jobs:
|
|
build:
|
|
strategy:
|
|
matrix:
|
|
os: [windows-latest, macOS-latest, ubuntu-latest]
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v1
|
|
with:
|
|
submodules: true
|
|
fetch-depth: 1
|
|
- name: Install python modules
|
|
run: pip install awscli boto3 PyGithub
|
|
- name: Create Build Environment
|
|
run: cmake -E make_directory ${{runner.workspace}}/build
|
|
|
|
#build_full_mac:
|
|
- name: Configure CMake (macOS)
|
|
if: matrix.os == 'macOS-latest' && (github.event.action != 'labeled' || github.event.label.name == 'rebuild-mac' || github.event.label.name == 'rebuild')
|
|
working-directory: ${{runner.workspace}}/build
|
|
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED=OFF -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -G Xcode -DVCPKG_APPLOCAL_DEPS=OFF
|
|
- name: Build Console (macOS)
|
|
if: matrix.os == 'macOS-latest' && (github.event.action != 'labeled' || github.event.label.name == 'rebuild-mac' || github.event.label.name == 'rebuild')
|
|
working-directory: ${{runner.workspace}}/build
|
|
run: cmake --build . --config $BUILD_TYPE --target packaged-server-console
|
|
- name: Build Application (macOS)
|
|
if: matrix.os == 'macOS-latest' && (github.event.action != 'labeled' || github.event.label.name == 'rebuild-mac' || github.event.label.name == 'rebuild')
|
|
working-directory: ${{runner.workspace}}/build
|
|
run: cmake --build . --config $BUILD_TYPE --target $APP_NAME
|
|
- name: Build Domain Server (macOS)
|
|
if: matrix.os == 'macOS-latest' && (github.event.action != 'labeled' || github.event.label.name == 'rebuild-mac' || github.event.label.name == 'rebuild')
|
|
shell: bash
|
|
working-directory: ${{runner.workspace}}/build
|
|
run: cmake --build . --config $BUILD_TYPE --target domain-server
|
|
- name: Build Assignment Client (macOS)
|
|
if: matrix.os == 'macOS-latest' && (github.event.action != 'labeled' || github.event.label.name == 'rebuild-mac' || github.event.label.name == 'rebuild')
|
|
shell: bash
|
|
working-directory: ${{runner.workspace}}/build
|
|
run: cmake --build . --config $BUILD_TYPE --target assignment-client
|
|
- name: Build Installer (macOS)
|
|
if: matrix.os == 'macOS-latest' && (github.event.action != 'labeled' || github.event.label.name == 'rebuild-mac' || github.event.label.name == 'rebuild')
|
|
working-directory: ${{runner.workspace}}/build
|
|
run: cmake --build . --config $BUILD_TYPE --target package
|
|
|
|
#build_full_win32:
|
|
|
|
- name: Configure CMake (Windows)
|
|
if: matrix.os == 'windows-latest' && (github.event.action != 'labeled' || github.event.label.name == 'rebuild-win' || github.event.label.name == 'rebuild')
|
|
shell: bash
|
|
working-directory: ${{runner.workspace}}/build
|
|
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -A x64
|
|
- name: Build Console (Windows)
|
|
if: matrix.os == 'windows-latest' && (github.event.action != 'labeled' || github.event.label.name == 'rebuild-win' || github.event.label.name == 'rebuild')
|
|
shell: bash
|
|
working-directory: ${{runner.workspace}}/build
|
|
run: cmake --build . --config $BUILD_TYPE --target packaged-server-console
|
|
- name: Build Application (Windows)
|
|
if: matrix.os == 'windows-latest' && (github.event.action != 'labeled' || github.event.label.name == 'rebuild-win' || github.event.label.name == 'rebuild')
|
|
shell: bash
|
|
working-directory: ${{runner.workspace}}/build
|
|
run: cmake --build . --config $BUILD_TYPE --target $APP_NAME
|
|
- name: Build Domain Server (Windows)
|
|
if: matrix.os == 'windows-latest' && (github.event.action != 'labeled' || github.event.label.name == 'rebuild-win' || github.event.label.name == 'rebuild')
|
|
shell: bash
|
|
working-directory: ${{runner.workspace}}/build
|
|
run: cmake --build . --config $BUILD_TYPE --target domain-server
|
|
- name: Build Assignment Client (Windows)
|
|
if: matrix.os == 'windows-latest' && (github.event.action != 'labeled' || github.event.label.name == 'rebuild-win' || github.event.label.name == 'rebuild')
|
|
shell: bash
|
|
working-directory: ${{runner.workspace}}/build
|
|
run: cmake --build . --config $BUILD_TYPE --target assignment-client
|
|
- name: Build Installer (Windows)
|
|
if: matrix.os == 'windows-latest' && (github.event.action != 'labeled' || github.event.label.name == 'rebuild-win' || github.event.label.name == 'rebuild')
|
|
shell: bash
|
|
working-directory: ${{runner.workspace}}/build
|
|
run: cmake --build . --config $BUILD_TYPE --target package
|
|
#build_full_linux:
|
|
|
|
- name: Configure CMake (Linux)
|
|
if: matrix.os == 'ubuntu-latest' && (github.event.action != 'labeled' || github.event.label.name == 'rebuild-linux' || github.event.label.name == 'rebuild')
|
|
shell: bash
|
|
working-directory: ${{runner.workspace}}/build
|
|
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_TOOLS:BOOLEAN=false
|
|
- name: Build (Linux)
|
|
if: matrix.os == 'ubuntu-latest' && (github.event.action != 'labeled' || github.event.label.name == 'rebuild-linux' || github.event.label.name == 'rebuild')
|
|
shell: bash
|
|
working-directory: ${{runner.workspace}}/build
|
|
# Parallel make:
|
|
run: cmake --build . -- -j3
|
|
- name: Build Ubuntu Docker (Linux)
|
|
if: matrix.os == 'ubuntu-latest' && (github.event.action != 'labeled' || github.event.label.name == 'rebuild-linux' || github.event.label.name == 'rebuild')
|
|
shell: bash
|
|
working-directory: ${{runner.workspace}}/build
|
|
run: |
|
|
cp $GITHUB_WORKSPACE/tools/ci-scripts/linux-gha/hifi.conf .
|
|
docker build -t $LINUX_DOCKER_IMAGE_NAME -f $GITHUB_WORKSPACE/tools/ci-scripts/linux-gha/Dockerfile ./
|
|
- name: Export Docker image (Linux)
|
|
if: matrix.os == 'ubuntu-latest' && (github.event.action != 'labeled' || github.event.label.name == 'rebuild-linux' || github.event.label.name == 'rebuild')
|
|
shell: bash
|
|
working-directory: ${{runner.workspace}}/build
|
|
run: docker save -o ${{runner.workspace}}/build/hifi_docker_image.tar $LINUX_DOCKER_IMAGE_NAME
|
|
|