gh-80: add structured tree serizalization & remove global yaml usage #162
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: 🔨 build | |
on: | |
push: | |
branches: | |
- main | |
- release | |
- pre-release | |
paths: | |
- '.github/**' | |
- 'deps/**' | |
- 'engine/runtime/**' | |
- 'engine/plugins/**' | |
- 'games/**' | |
- 'template/**' | |
- '.gitignore' | |
- 'CMakeLists.txt' | |
pull_request: | |
branches: [ main ] | |
env: | |
build_dir: "build" | |
config: "Release" | |
nt: "4" | |
jobs: | |
windows: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: true | |
fetch-depth: 0 | |
- name: Install msvc for build | |
uses: ilammy/msvc-dev-cmd@v1 | |
with: | |
arch: amd64 | |
- name: Install ninja for build | |
uses: seanmiddleditch/gha-setup-ninja@master | |
- name: Install Vulkan SDK | |
uses: humbletim/setup-vulkan-sdk@v1.2.0 | |
with: | |
vulkan-query-version: 1.3.204.0 | |
vulkan-components: Vulkan-Headers | |
vulkan-use-cache: true | |
- name: Configure CMake | |
run: cmake . -G Ninja -B ${{ env.build_dir }} -DCMAKE_BUILD_TYPE=${{ env.config }} | |
- name: Build library sources | |
run: cmake --build ${{ env.build_dir }} --target=template | |
ubuntu: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: true | |
fetch-depth: 0 | |
- name: Install ninja for build | |
uses: seanmiddleditch/gha-setup-ninja@master | |
- name: Update apt | |
shell: bash | |
run: | | |
sudo apt-get update | |
- name: Install glfw dependencies | |
shell: bash | |
run: | | |
sudo apt-get install -y libxrandr-dev libxinerama-dev xorg-dev | |
- name: Install glew dependencies | |
shell: bash | |
run: | | |
sudo apt-get install -y libgl1-mesa-dri libgl1-mesa-glx libgl1-mesa-dev | |
sudo apt-get install -y libxmu-dev libxi-dev libgl-dev libglx-dev | |
sudo apt-get install -y libx11-dev | |
- name: Install openal dependencies | |
shell: bash | |
run: | | |
sudo apt-get install -y libpulse-dev portaudio19-dev libasound2-dev libjack-dev libpipewire-0.2-dev qtbase5-dev libdbus-1-dev | |
- name: Install Vulkan SDK | |
uses: humbletim/setup-vulkan-sdk@v1.2.0 | |
with: | |
vulkan-query-version: 1.3.204.0 | |
vulkan-components: Vulkan-Headers | |
vulkan-use-cache: true | |
- name: Configure CMake | |
run: cmake . -G Ninja -B ${{ env.build_dir }} -DCMAKE_BUILD_TYPE=${{ env.config }} | |
env: | |
CC: gcc-9 | |
CXX: g++-9 | |
- name: Build library sources | |
run: cmake --build ${{ env.build_dir }} --target=template | |
macos: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
submodules: true | |
fetch-depth: 0 | |
- name: Install ninja for build | |
uses: seanmiddleditch/gha-setup-ninja@master | |
- name: Install Vulkan SDK | |
uses: humbletim/setup-vulkan-sdk@v1.2.0 | |
with: | |
vulkan-query-version: 1.3.204.0 | |
vulkan-components: Vulkan-Headers | |
vulkan-use-cache: true | |
- name: Configure CMake x64 | |
run: cmake . -G Ninja -B ${{ env.build_dir }} -DCMAKE_BUILD_TYPE=${{ env.config }} -DCMAKE_OSX_ARCHITECTURES=x86_64 | |
env: | |
CXX: clang++ | |
CC: clang | |
- name: Build library sources x64 | |
run: cmake --build ${{ env.build_dir }} --target=template |