aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/validate.yml
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2025-11-07 14:49:13 +0100
committerGitHub Enterprise <[email protected]>2025-11-07 14:49:13 +0100
commit24e43a913f29ac3b314354e8ce5175f135bcc64f (patch)
treeca442937ceeb63461012b33a4576e9835099f106 /.github/workflows/validate.yml
parentget oplog attachments (#622) (diff)
downloadzen-24e43a913f29ac3b314354e8ce5175f135bcc64f.tar.xz
zen-24e43a913f29ac3b314354e8ce5175f135bcc64f.zip
switch to xmake for package management (#611)
This change removes our dependency on vcpkg for package management, in favour of bringing some code in-tree in the `thirdparty` folder as well as using the xmake build-in package management feature. For the latter, all the package definitions are maintained in the zen repo itself, in the `repo` folder. It should now also be easier to build the project as it will no longer depend on having the right version of vcpkg installed, which has been a common problem for new people coming in to the codebase. Now you should only need xmake to build. * Bumps xmake requirement on github runners to 2.9.9 to resolve an issue where xmake on Windows invokes cmake with `v144` toolchain which does not exist * BLAKE3 is now in-tree at `thirdparty/blake3` * cpr is now in-tree at `thirdparty/cpr` * cxxopts is now in-tree at `thirdparty/cxxopts` * fmt is now in-tree at `thirdparty/fmt` * robin-map is now in-tree at `thirdparty/robin-map` * ryml is now in-tree at `thirdparty/ryml` * sol2 is now in-tree at `thirdparty/sol2` * spdlog is now in-tree at `thirdparty/spdlog` * utfcpp is now in-tree at `thirdparty/utfcpp` * xmake package repo definitions is in `repo` * implemented support for sanitizers. ASAN is supported on windows, TSAN, UBSAN, MSAN etc are supported on Linux/MacOS though I have not yet tested it extensively on MacOS * the zencore encryption implementation also now supports using mbedTLS which is used on MacOS, though for now we still use openssl on Linux * crashpad * bumps libcurl to 8.11.0 (from 8.8.0) which should address a rare build upload bug
Diffstat (limited to '.github/workflows/validate.yml')
-rw-r--r--.github/workflows/validate.yml52
1 files changed, 3 insertions, 49 deletions
diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml
index 5ec818116..5547f3389 100644
--- a/.github/workflows/validate.yml
+++ b/.github/workflows/validate.yml
@@ -1,8 +1,8 @@
name: Validate
env:
- VCPKG_VERSION: 2024.06.15 # This version must be the same across .yml github workflows and if it is bumped the README.md must be updated to reflect this
- XMAKE_VERSION: 2.9.1
+ XMAKE_VERSION: 2.9.9
WINDOWS_SDK_VERSION: 22621
+ XMAKE_GLOBALDIR: ${{ github.workspace }}/.xmake_global
on:
pull_request:
@@ -76,25 +76,14 @@ jobs:
with:
xmake-version: ${{env.XMAKE_VERSION}}
- - name: Installing vcpkg
- run: | # Remove-Item -Recurse .vcpkg
- git clone -b ${{env.VCPKG_VERSION}} --single-branch https://github.com/Microsoft/vcpkg.git .vcpkg
- cd .vcpkg
- .\bootstrap-vcpkg.bat
- cd ..
-
- name: Config
run: |
- xmake config -v -y -m ${{ matrix.config }} --arch=${{ matrix.arch }}
- env:
- VCPKG_ROOT: ${{ github.workspace }}/.vcpkg
+ xmake config -vD -y -m ${{ matrix.config }} --arch=${{ matrix.arch }}
- name: Build & Test
if: ${{ matrix.config == 'debug' }}
run: |
xmake test -v -y --junit
- env:
- VCPKG_ROOT: ${{ github.workspace }}/.vcpkg
- name: Upload report
if: ${{ (failure() || success()) && (matrix.config == 'debug') }}
@@ -107,8 +96,6 @@ jobs:
if: ${{ matrix.config == 'release' }}
run: |
xmake bundle -v -y --codesignidentity="Epic Games"
- env:
- VCPKG_ROOT: ${{ github.workspace }}/.vcpkg
- name: Upload zenserver-win64
if: ${{ github.ref_name == 'main' && matrix.config == 'release' }}
@@ -144,32 +131,14 @@ jobs:
with:
xmake-version: ${{env.XMAKE_VERSION}}
- - name: Installing vcpkg
- run: | # rm -rf .vcpkg
- git clone -b ${{env.VCPKG_VERSION}} --single-branch https://github.com/Microsoft/vcpkg.git .vcpkg
- cd .vcpkg
- ./bootstrap-vcpkg.sh
- cd ..
-
- name: Config
run: |
./scripts/ue_build_linux/ue_build.sh ./.tmp-ue-toolchain xmake config -v -y -m ${{ matrix.config }} --arch=${{ matrix.arch }}
- env:
- VCPKG_ROOT: ${{ github.workspace }}/.vcpkg
-
- - name: Upload config logs
- if: ${{ (failure() || success()) }}
- uses: actions/upload-artifact@v3
- with:
- name: vcpkg-logs-${{ matrix.config }}
- path: .vcpkg/buildtrees/**/*.log
- name: Build & Test
if: ${{ matrix.config == 'debug' }}
run: |
./scripts/ue_build_linux/ue_build.sh ./.tmp-ue-toolchain xmake test -v -y --junit
- env:
- VCPKG_ROOT: ${{ github.workspace }}/.vcpkg
- name: Upload report
if: ${{ (failure() || success()) && (matrix.config == 'debug') }}
@@ -182,8 +151,6 @@ jobs:
if: ${{ matrix.config == 'release' }}
run: |
./scripts/ue_build_linux/ue_build.sh ./.tmp-ue-toolchain xmake bundle -v -y
- env:
- VCPKG_ROOT: ${{ github.workspace }}/.vcpkg
- name: Upload zenserver-linux
if: ${{ github.ref_name == 'main' && matrix.config == 'release' }}
@@ -214,25 +181,14 @@ jobs:
with:
xmake-version: ${{env.XMAKE_VERSION}}
- - name: Installing vcpkg
- run: | # rm -rf .vcpkg
- git clone -b ${{env.VCPKG_VERSION}} --single-branch https://github.com/Microsoft/vcpkg.git .vcpkg
- cd .vcpkg
- ./bootstrap-vcpkg.sh
- cd ..
-
- name: Config
run: |
xmake config -v -y -m ${{ matrix.config }} --arch=${{ matrix.arch }}
- env:
- VCPKG_ROOT: ${{ github.workspace }}/.vcpkg
- name: Build & Test
if: ${{ matrix.config == 'debug' }}
run: |
xmake test -v -y --junit
- env:
- VCPKG_ROOT: ${{ github.workspace }}/.vcpkg
- name: Upload report
if: ${{ (failure() || success()) && (matrix.config == 'debug') }}
@@ -245,8 +201,6 @@ jobs:
if: ${{ matrix.config == 'release' }}
run: |
xmake bundle -v -y --codesignidentity="Developer ID Application"
- env:
- VCPKG_ROOT: ${{ github.workspace }}/.vcpkg
- name: Upload zenserver-macos
if: ${{ github.ref_name == 'main' && matrix.config == 'release' }}