feat: improve cmake build and add pugixml integration #155
Workflow file for this run
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 - Ubuntu | |
on: | |
workflow_dispatch: | |
pull_request: | |
types: [opened, synchronize, reopened, ready_for_review] | |
paths: | |
- 'src/**' | |
- 'cmake/**' | |
- 'CMakeLists.txt' | |
- 'CMakePresets.json' | |
- 'vcpkg.json' | |
push: | |
paths: | |
- 'src/**' | |
- 'cmake/**' | |
- 'CMakeLists.txt' | |
- 'CMakePresets.json' | |
- 'vcpkg.json' | |
branches: | |
- main | |
env: | |
CMAKE_BUILD_PARALLEL_LEVEL: 2 | |
MAKEFLAGS: '-j 2' | |
jobs: | |
job: | |
if: ${{ github.event_name == 'push' || !github.event.pull_request.draft }} | |
name: ${{ matrix.os }}-${{ matrix.buildtype }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-22.04 ] | |
buildtype: [ linux-release, linux-debug ] | |
include: | |
- os: ubuntu-20.04 | |
triplet: x64-linux | |
- os: ubuntu-22.04 | |
triplet: x64-linux | |
steps: | |
- name: Cancel Previous Runs | |
if: github.ref != 'refs/heads/main' | |
uses: fkirc/skip-duplicate-actions@master | |
with: | |
concurrent_skipping: 'same_content' | |
cancel_others: true | |
- name: Checkout repository | |
uses: actions/checkout@main | |
- name: Install Linux Dependencies | |
run: > | |
sudo apt-get update && sudo apt-get install ccache linux-headers-$(uname -r) | |
- name: CCache | |
uses: hendrikmuhs/ccache-action@main | |
with: | |
max-size: "1G" | |
key: ccache-${{ matrix.os }}-${{ matrix.buildtype }} | |
restore-keys: | | |
ccache-${{ matrix.os }} | |
- name: Restore artifacts and install vcpkg | |
id: vcpkg-step | |
run: | | |
vcpkgCommitId=$(grep '.builtin-baseline' vcpkg.json | awk -F: '{print $2}' | tr -d '," ') | |
echo "vcpkg commit ID: $vcpkgCommitId" | |
echo "VCPKG_GIT_COMMIT_ID=$vcpkgCommitId" >> $GITHUB_ENV | |
- name: Get vcpkg commit id from vcpkg.json | |
uses: lukka/run-vcpkg@main | |
with: | |
vcpkgGitURL: "https://github.com/microsoft/vcpkg.git" | |
vcpkgGitCommitId: ${{ env.VCPKG_GIT_COMMIT_ID }} | |
- name: Get latest CMake and ninja | |
uses: lukka/get-cmake@main | |
- name: Install additional libraries | |
run: sudo apt-get install libasio-dev nlohmann-json3-dev libfmt-dev libxi-dev libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev libxrandr-dev libxxf86vm-dev libglib2.0-dev at-spi2-core libwxgtk3.0-gtk3-dev libarchive-dev freeglut3-dev libxmu-dev libdbus-1-dev libxtst-dev | |
- name: Run CMake Cache and Build | |
uses: lukka/run-cmake@main | |
with: | |
configurePreset: ${{ matrix.buildtype }} | |
buildPreset: ${{ matrix.buildtype }} | |
- name: Upload artifacts | |
uses: actions/upload-artifact@main | |
with: | |
name: ${{ matrix.os }}-${{ matrix.buildtype }} | |
path: | | |
${{ github.workspace }}/remeres |