From 079f7f30bb7a6a440787aebcdaed38df215e9321 Mon Sep 17 00:00:00 2001 From: Jan Laupetin Date: Fri, 10 Oct 2025 00:00:16 +0200 Subject: [PATCH 1/6] feat: add modman to the build-test ci --- .github/workflows/ci.yaml | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index ac5843e2..6bdc60d4 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -22,12 +22,20 @@ jobs: - name: Install g++ and multilib run: | apt-get update - apt-get install -y wget tar git make gcc-13 g++-13 gcc-13-multilib g++-13-multilib + apt-get install -y wget tar git make curl gcc-13 g++-13 gcc-13-multilib g++-13-multilib libgtk-4-dev libwebkitgtk-6.0-dev update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 13 update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 13 update-alternatives --set gcc /usr/bin/gcc-13 update-alternatives --set g++ /usr/bin/g++-13 + - name: Install node + run: | + export NVM_DIR=/root/.nvm + export NODE_VERSION=22 + mkdir -p $NVM_DIR + curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/refs/heads/master/install.sh | bash + source $NVM_DIR/nvm.sh && nvm install $NODE_VERSION + - name: Checkout repository uses: actions/checkout@v5 with: @@ -37,11 +45,15 @@ jobs: working-directory: ${{ github.workspace }} env: PREMAKE_NO_PROMPT: 1 - run: ./generate.sh + run: ./generate.sh --modman - name: Build working-directory: ${{ github.workspace }} run: | + export NVM_DIR=/root/.nvm + source $NVM_DIR/nvm.sh + npm --prefix src/ModManUi install + npm --prefix src/ModManUi run build make -C build -j$(nproc) config=release_${{ matrix.build_arch }} all chmod +x build/bin/Release_${{ matrix.build_arch }}/{ImageConverter,Unlinker,Linker} @@ -79,11 +91,14 @@ jobs: working-directory: ${{ github.workspace }} env: PREMAKE_NO_PROMPT: 1 - run: ./generate.bat + run: ./generate.bat --modman - name: Build working-directory: ${{ github.workspace }} - run: msbuild /m /p:Configuration=Release /p:Platform=${{ matrix.msbuild_config }} build + run: | + npm --prefix src/ModManUi install + npm --prefix src/ModManUi run build + msbuild /m /p:Configuration=Release /p:Platform=${{ matrix.msbuild_config }} build - name: Test working-directory: ${{ github.workspace }}/build/lib/Release_${{ matrix.build_arch }}/tests From b2e5464d388440b25dc19e36e0b5a0eb692cb9dd Mon Sep 17 00:00:00 2001 From: Jan Laupetin Date: Fri, 10 Oct 2025 00:29:34 +0200 Subject: [PATCH 2/6] chore: add lint for ModManUi --- .github/workflows/ci.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 6bdc60d4..c35c64e9 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -57,6 +57,13 @@ jobs: make -C build -j$(nproc) config=release_${{ matrix.build_arch }} all chmod +x build/bin/Release_${{ matrix.build_arch }}/{ImageConverter,Unlinker,Linker} + - name: Lint + working-directory: ${{ github.workspace }} + run: | + export NVM_DIR=/root/.nvm + source $NVM_DIR/nvm.sh + npm --prefix src/ModManUi run lint + - name: Test working-directory: ${{ github.workspace }}/build/lib/Release_${{ matrix.build_arch }}/tests run: | From 40a2bdafcb4af54c4049f2da34b57e9bad0609bb Mon Sep 17 00:00:00 2001 From: Jan Laupetin Date: Fri, 10 Oct 2025 00:49:20 +0200 Subject: [PATCH 3/6] chore: do not compile modman x86 on linux --- .github/workflows/ci.yaml | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index c35c64e9..861fe993 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -13,6 +13,11 @@ jobs: strategy: matrix: build_arch: [x86, x64] + include: + - build_arch: x86 + additional_packages: gcc-13-multilib g++-13-multilib + - build_arch: x64 + premake_flags: --modman runs-on: ubuntu-latest container: ubuntu:24.04 defaults: @@ -22,19 +27,16 @@ jobs: - name: Install g++ and multilib run: | apt-get update - apt-get install -y wget tar git make curl gcc-13 g++-13 gcc-13-multilib g++-13-multilib libgtk-4-dev libwebkitgtk-6.0-dev + apt-get install -y wget tar git make curl gcc-13 g++-13 libgtk-4-dev libwebkitgtk-6.0-dev ${{ matrix.additional_packages }} update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 13 update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 13 update-alternatives --set gcc /usr/bin/gcc-13 update-alternatives --set g++ /usr/bin/g++-13 - name: Install node - run: | - export NVM_DIR=/root/.nvm - export NODE_VERSION=22 - mkdir -p $NVM_DIR - curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/refs/heads/master/install.sh | bash - source $NVM_DIR/nvm.sh && nvm install $NODE_VERSION + uses: actions/setup-node@v5 + with: + node-version: 24 - name: Checkout repository uses: actions/checkout@v5 @@ -45,13 +47,11 @@ jobs: working-directory: ${{ github.workspace }} env: PREMAKE_NO_PROMPT: 1 - run: ./generate.sh --modman + run: ./generate.sh ${{ matrix.premake_flags }} - name: Build working-directory: ${{ github.workspace }} run: | - export NVM_DIR=/root/.nvm - source $NVM_DIR/nvm.sh npm --prefix src/ModManUi install npm --prefix src/ModManUi run build make -C build -j$(nproc) config=release_${{ matrix.build_arch }} all @@ -60,8 +60,6 @@ jobs: - name: Lint working-directory: ${{ github.workspace }} run: | - export NVM_DIR=/root/.nvm - source $NVM_DIR/nvm.sh npm --prefix src/ModManUi run lint - name: Test @@ -86,14 +84,19 @@ jobs: msbuild_config: x64 runs-on: windows-latest steps: + - name: Install node + uses: actions/setup-node@v5 + with: + node-version: 24 + + - name: Add MSBuild to PATH + uses: microsoft/setup-msbuild@v2.0.0 + - name: Checkout repository uses: actions/checkout@v5 with: submodules: recursive - - name: Add MSBuild to PATH - uses: microsoft/setup-msbuild@v2.0.0 - - name: Premake generate working-directory: ${{ github.workspace }} env: @@ -107,6 +110,11 @@ jobs: npm --prefix src/ModManUi run build msbuild /m /p:Configuration=Release /p:Platform=${{ matrix.msbuild_config }} build + - name: Lint + working-directory: ${{ github.workspace }} + run: | + npm --prefix src/ModManUi run lint + - name: Test working-directory: ${{ github.workspace }}/build/lib/Release_${{ matrix.build_arch }}/tests run: | From 0a95f03ce7f8dcb69d4c1696653bd16860e31bbd Mon Sep 17 00:00:00 2001 From: Jan Laupetin Date: Fri, 10 Oct 2025 00:51:49 +0200 Subject: [PATCH 4/6] chore: set job names on build-test ci --- .github/workflows/check-formatting.yaml | 3 ++- .github/workflows/ci.yaml | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/check-formatting.yaml b/.github/workflows/check-formatting.yaml index 48c32e5f..f28e7bec 100644 --- a/.github/workflows/check-formatting.yaml +++ b/.github/workflows/check-formatting.yaml @@ -6,6 +6,7 @@ on: jobs: check-formatting: runs-on: ubuntu-latest + name: Check formatting steps: - name: Checkout repository uses: actions/checkout@v5 @@ -21,4 +22,4 @@ jobs: working-directory: ${{ github.workspace }} run: | export CLANG_FORMAT_BIN="${LLVM_PATH}/bin/clang-format" - ./scripts/check-format.sh \ No newline at end of file + ./scripts/check-format.sh diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 861fe993..323fb50f 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -18,6 +18,7 @@ jobs: additional_packages: gcc-13-multilib g++-13-multilib - build_arch: x64 premake_flags: --modman + name: Build-Test Linux ${{ matrix.build_arch }} runs-on: ubuntu-latest container: ubuntu:24.04 defaults: @@ -82,6 +83,7 @@ jobs: msbuild_config: Win32 - build_arch: x64 msbuild_config: x64 + name: Build-Test Windows ${{ matrix.build_arch }} runs-on: windows-latest steps: - name: Install node From 39c99ffbe9726a777f9f2803f1719a0fe513e168 Mon Sep 17 00:00:00 2001 From: Jan Laupetin Date: Fri, 10 Oct 2025 01:26:28 +0200 Subject: [PATCH 5/6] chore: reorder jobs in build-test --- .github/workflows/ci.yaml | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 323fb50f..eec3044e 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -50,19 +50,20 @@ jobs: PREMAKE_NO_PROMPT: 1 run: ./generate.sh ${{ matrix.premake_flags }} + - name: Build UI + working-directory: ${{ github.workspace }} + if: ${{ matrix.build_arch == 'x64' }} + run: | + npm --prefix src/ModManUi install + npm --prefix src/ModManUi run lint + npm --prefix src/ModManUi run build + - name: Build working-directory: ${{ github.workspace }} run: | - npm --prefix src/ModManUi install - npm --prefix src/ModManUi run build make -C build -j$(nproc) config=release_${{ matrix.build_arch }} all chmod +x build/bin/Release_${{ matrix.build_arch }}/{ImageConverter,Unlinker,Linker} - - name: Lint - working-directory: ${{ github.workspace }} - run: | - npm --prefix src/ModManUi run lint - - name: Test working-directory: ${{ github.workspace }}/build/lib/Release_${{ matrix.build_arch }}/tests run: | @@ -105,17 +106,17 @@ jobs: PREMAKE_NO_PROMPT: 1 run: ./generate.bat --modman - - name: Build + - name: Build UI working-directory: ${{ github.workspace }} run: | npm --prefix src/ModManUi install + npm --prefix src/ModManUi run lint npm --prefix src/ModManUi run build - msbuild /m /p:Configuration=Release /p:Platform=${{ matrix.msbuild_config }} build - - name: Lint + - name: Build working-directory: ${{ github.workspace }} run: | - npm --prefix src/ModManUi run lint + msbuild /m /p:Configuration=Release /p:Platform=${{ matrix.msbuild_config }} build - name: Test working-directory: ${{ github.workspace }}/build/lib/Release_${{ matrix.build_arch }}/tests From e38d79e83ec484a25c52efc1e9f3dd61fbca25b4 Mon Sep 17 00:00:00 2001 From: Jan Laupetin Date: Fri, 10 Oct 2025 01:29:59 +0200 Subject: [PATCH 6/6] fix: modman compilation on windows x64 --- src/ModMan/Web/Edge/AssetHandlerEdge.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ModMan/Web/Edge/AssetHandlerEdge.cpp b/src/ModMan/Web/Edge/AssetHandlerEdge.cpp index 7cbdf961..a336e4a5 100644 --- a/src/ModMan/Web/Edge/AssetHandlerEdge.cpp +++ b/src/ModMan/Web/Edge/AssetHandlerEdge.cpp @@ -107,7 +107,7 @@ namespace if (foundUiFile != assetLookup.end()) { const Microsoft::WRL::ComPtr responseStream = - SHCreateMemStream(static_cast(foundUiFile->second.data), foundUiFile->second.dataSize); + SHCreateMemStream(static_cast(foundUiFile->second.data), static_cast(foundUiFile->second.dataSize)); const auto headers = HeadersForAssetName(asset, foundUiFile->second.dataSize); if (!SUCCEEDED(environment->CreateWebResourceResponse(responseStream.Get(), 200, L"OK", headers.data(), &response)))