Merge pull request #16565 from SimonWalton-HiFi/linux-actions-builds-pr-builds

DEV-2572: Linux GHA PR builds
This commit is contained in:
Bradley Austin Davis 2019-12-10 12:35:38 -08:00 committed by GitHub
commit 270339264e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 175 additions and 15 deletions

View file

@ -30,6 +30,7 @@ jobs:
matrix:
os: [windows-latest, macOS-latest]
build_type: [full]
fail-fast: false
runs-on: ${{matrix.os}}
if: github.event.action != 'labeled' || github.event.label.name == 'rebuild'
steps:
@ -94,3 +95,27 @@ jobs:
working-directory: ${{runner.workspace}}/build
shell: bash
run: cmake --build . --config $BUILD_TYPE --target package
build_full_linux:
runs-on: ubuntu-latest
if: github.event.action != 'labeled' || github.event.label.name == 'rebuild'
steps:
- uses: actions/checkout@v1
with:
submodules: true
fetch-depth: 1
- name: Install apt packages
run: sudo apt install -y mesa-common-dev libegl1 libglvnd-dev libdouble-conversion1 libpulse0
- name: Install python modules
shell: bash
run: pip install boto3 PyGithub
- name: Create Build Environment
run: cmake -E make_directory ${{runner.workspace}}/build
- name: Configure CMake
working-directory: ${{runner.workspace}}/build
shell: bash
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_TOOLS:BOOLEAN=FALSE
- name:
shell: bash
working-directory: ${{runner.workspace}}/build
run: cmake --build . -- -j3

View file

@ -18,21 +18,23 @@ link_hifi_libraries(
)
include_hifi_library_headers(procedural)
add_dependencies(${TARGET_NAME} oven)
if (BUILD_TOOLS)
add_dependencies(${TARGET_NAME} oven)
if (WIN32)
add_custom_command(
TARGET ${TARGET_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory
$<TARGET_FILE_DIR:oven>
$<TARGET_FILE_DIR:${TARGET_NAME}>)
else()
add_custom_command(
TARGET ${TARGET_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E create_symlink
$<TARGET_FILE:oven>
$<TARGET_FILE_DIR:${TARGET_NAME}>/oven)
endif()
if (WIN32)
add_custom_command(
TARGET ${TARGET_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory
$<TARGET_FILE_DIR:oven>
$<TARGET_FILE_DIR:${TARGET_NAME}>)
else()
add_custom_command(
TARGET ${TARGET_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E create_symlink
$<TARGET_FILE:oven>
$<TARGET_FILE_DIR:${TARGET_NAME}>/oven)
endif()
endif (BUILD_TOOLS)
if (WIN32)
package_libraries_for_deployment()

View file

@ -21,6 +21,23 @@ macro(TARGET_POLYVOX)
list(APPEND POLYVOX_LIBRARY_DEBUG ${POLYVOX_UTIL_LIBRARY_DEBUG})
select_library_configurations(POLYVOX)
list(APPEND POLYVOX_INCLUDE_DIRS ${VCPKG_INSTALL_ROOT}/include)
if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
set(_LIB_GLOBS)
if(${CMAKE_BUILD_TYPE} STREQUAL "Debug")
set(_PV_LIBRARIES ${POLYVOX_LIBRARY_DEBUG})
else()
set(_PV_LIBRARIES ${POLYVOX_LIBRARY_RELEASE})
endif()
foreach(_lib ${_PV_LIBRARIES})
list(APPEND _LIB_GLOBS ${_lib}*)
endforeach()
add_custom_command(
TARGET ${TARGET_NAME}
POST_BUILD
COMMAND cp
ARGS -d ${_LIB_GLOBS} ${CMAKE_BINARY_DIR}
)
endif()
endif()
target_link_libraries(${TARGET_NAME} ${POLYVOX_LIBRARIES})
target_include_directories(${TARGET_NAME} PUBLIC ${POLYVOX_INCLUDE_DIRS})

View file

@ -10,4 +10,4 @@ macro(TARGET_QUAZIP)
find_library(QUAZIP_LIBRARY_DEBUG quazip5 PATHS ${VCPKG_INSTALL_ROOT}/debug/lib NO_DEFAULT_PATH)
select_library_configurations(QUAZIP)
target_link_libraries(${TARGET_NAME} ${QUAZIP_LIBRARIES})
endmacro()
endmacro()

View file

@ -0,0 +1,32 @@
FROM simonwalton1/hifi_base_ubuntu:1.1
MAINTAINER DevOps Team (devops@highfidelity.io)
EXPOSE 40100 40101 40102
EXPOSE 40100/udp 40101/udp 40102/udp
EXPOSE 48000/udp 48001/udp 48002/udp 48003/udp 48004/udp 48005/udp 48006/udp
RUN mkdir -p /etc/hifi/server/plugins /etc/hifi/server/resources /etc/hifi/server/imageformats/ && \
ln -s /usr/local/Qt5.12.3/5.12.3/gcc_64/plugins/imageformats/* /etc/hifi/server/imageformats/
COPY ./assignment-client /etc/hifi/server/
#COPY ./oven /etc/hifi/server/
COPY ./domain-server /etc/hifi/server/
COPY ./plugins/hifiCodec/libhifiCodec.so /etc/hifi/server/plugins/
RUN true
COPY ./plugins/pcmCodec/libpcmCodec.so /etc/hifi/server/plugins/
# Dummy statement
RUN true
COPY ./*.so /lib/
RUN ln -sf /lib/libquazip5.so /lib/libquazip5.so.1
COPY ./domain-server/resources/ /etc/hifi/server/resources/
RUN true
COPY ./hifi.conf /etc/supervisor/conf.d/hifi.conf
RUN for fn in /usr/local/Qt5.12.3/5.12.3/gcc_64/plugins/imageformats/*.so; do \
if [ ! -x $fn ]; then ln -s $fn /etc/hifi/server/imageformats; fi; done
RUN chmod +x /etc/hifi/server/domain-server
RUN chmod +x /etc/hifi/server/assignment-client
# Ensure `domain-server` and `assignment-client` execute.
RUN /etc/hifi/server/domain-server --version > /etc/hifi/server/version && \
/etc/hifi/server/assignment-client --version >> /etc/hifi/server/version
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/hifi.conf"]

View file

@ -0,0 +1,24 @@
# Docker file for hifi_base_ubuntu:1.1
FROM ubuntu:18.04
MAINTAINER DevOps Team (devops@highfidelity.io)
EXPOSE 40100 40101 40102
EXPOSE 40100/udp 40101/udp 40102/udp
EXPOSE 48000/udp 48001/udp 48002/udp 48003/udp 48004/udp 48005/udp 48006/udp
RUN apt-get update && apt-get install -y software-properties-common apt-utils curl
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 15FF1AAE && add-apt-repository "deb http://debian.highfidelity.com stable main"
RUN echo UTC >/etc/timezone
# Installing via dependency causes interactive hang:
RUN apt-get -y install tzdata
RUN curl http://archive.ubuntu.com/ubuntu/pool/main/b/bison/libbison-dev_3.0.4.dfsg-1build1_amd64.deb >/tmp/libbison-dev.deb
RUN dpkg -i /tmp/libbison-dev.deb && rm /tmp/libbison-dev.deb
RUN apt-get update && apt-get -y --allow-unauthenticated install libglib2.0-0 libgl1-mesa-dev gdb python-pip build-essential \
openssl libssl-dev libssl1.0.0 unzip flex bison gperf perl libsqlite3-dev \
libfontconfig1-dev libicu-dev libfreetype6 libssl-dev libpng-dev libjpeg-dev \
python libx11-dev libxext-dev libtbb2 hifiqt5.12.3 \
ntp unzip libwww-perl libdatetime-perl make pkg-config libnss3 libxi6 \
libxcursor1 libxcomposite1 libasound2 libxtst6 libxslt1.1 supervisor
# Additional packages for v1.1:
RUN apt-get -y --allow-unauthenticated install mesa-common-dev libegl1 libglvnd-dev \
libdouble-conversion1 libpulse0

View file

@ -0,0 +1,60 @@
[supervisord]
user=root
nodaemon=true
[program:domain-server]
command=/etc/hifi/server/domain-server
autorestart=unexpected
directory=/etc/hifi/server
stderr_logfile=/var/log/hifi-err.log
stdout_logfile=/var/log/hifi-out.log
[program:audio-mixer]
command=/etc/hifi/server/assignment-client -t 0 -a localhost -p 48000
autorestart=unexpected
directory=/etc/hifi/server
stderr_logfile=/var/log/hifi-err.log
stdout_logfile=/var/log/hifi-out.log
[program:avatar-mixer]
command=/etc/hifi/server/assignment-client -t 1 -a localhost -p 48001
autorestart=unexpected
directory=/etc/hifi/server
stderr_logfile=/var/log/hifi-err.log
stdout_logfile=/var/log/hifi-out.log
[program:entities-server]
command=/etc/hifi/server/assignment-client -t 6 -a localhost -p 48006
autorestart=unexpected
directory=/etc/hifi/server
stderr_logfile=/var/log/hifi-err.log
stdout_logfile=/var/log/hifi-out.log
[program:asset-server]
command=/etc/hifi/server/assignment-client -t 3 -a localhost -p 48003
autorestart=unexpected
directory=/etc/hifi/server
stderr_logfile=/var/log/hifi-err.log
stdout_logfile=/var/log/hifi-out.log
[program:entity-script-server]
command=/etc/hifi/server/assignment-client -t 5 -a localhost -p 48005
autorestart=unexpected
directory=/etc/hifi/server
stderr_logfile=/var/log/hifi-err.log
stdout_logfile=/var/log/hifi-out.log
[program:messages-mixer]
command=/etc/hifi/server/assignment-client -t 4 -a localhost -p 48004
autorestart=unexpected
directory=/etc/hifi/server
stderr_logfile=/var/log/hifi-err.log
stdout_logfile=/var/log/hifi-out.log
[program:scripted-agent]
command=/etc/hifi/server/assignment-client -t 2 -a localhost --max 100
autorestart=unexpected
directory=/etc/hifi/server
stderr_logfile=/var/log/hifi-err.log
stdout_logfile=/var/log/hifi-out.log