aboutsummaryrefslogtreecommitdiff
path: root/libs/uibase/.github
diff options
context:
space:
mode:
authorSulfurNitride <SulfurNitride@users.noreply.github.com>2026-02-11 02:37:39 -0600
committerSulfurNitride <SulfurNitride@users.noreply.github.com>2026-02-11 02:37:39 -0600
commit7ee008e150bc5bcf76082d726f719ee0fdfda982 (patch)
tree27fb39be241fdb5ac2734c574de678977d1856d0 /libs/uibase/.github
Fluorine Manager: full Linux port of Mod Organizer 2
Complete native Linux port with FUSE-based virtual filesystem, Proton/umu-run integration, and Flatpak packaging. Key features: - FUSE VFS replacing Windows USVFS (in-process + standalone helper for Flatpak) - Proton/GE-Proton/umu-run launcher with env var forwarding - Flatpak support (sandbox-aware VFS, NXM handler, umu-run) - Wine prefix management UI - Case-insensitive path resolution for Linux filesystems - QSettings-safe INI handling (avoids Bethesda INI corruption) - Portable instance support with auto-generated launcher scripts Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'libs/uibase/.github')
-rw-r--r--libs/uibase/.github/workflows/build.yml79
-rw-r--r--libs/uibase/.github/workflows/linting.yml17
2 files changed, 96 insertions, 0 deletions
diff --git a/libs/uibase/.github/workflows/build.yml b/libs/uibase/.github/workflows/build.yml
new file mode 100644
index 0000000..8d6fbd5
--- /dev/null
+++ b/libs/uibase/.github/workflows/build.yml
@@ -0,0 +1,79 @@
+name: Build UIBase
+
+on:
+ push:
+ branches: [master]
+ tags:
+ - "*"
+ pull_request:
+ types: [opened, synchronize, reopened]
+
+env:
+ VCPKG_BINARY_SOURCES: ${{ vars.AZ_BLOB_VCPKG_URL != '' && format('clear;x-azblob,{0},{1},readwrite', vars.AZ_BLOB_VCPKG_URL, secrets.AZ_BLOB_SAS) || '' }}
+
+jobs:
+ build:
+ runs-on: windows-2022
+ steps:
+ - name: Configure UIBase
+ id: configure-uibase
+ uses: ModOrganizer2/build-with-mob-action@master
+ with:
+ # skip build because we are going to build both Debug and RelWithDebInfo here
+ mo2-skip-build: true
+
+ # build both Debug and RelWithDebInfo for package
+ - name: Build UI Base
+ working-directory: ${{ steps.configure-uibase.outputs.working-directory }}
+ run: |
+ cmake --build vsbuild --config Debug --target uibase-tests --verbose
+ cmake --build vsbuild --config RelWithDebInfo --target uibase-tests --verbose
+
+ - name: Test UI Base
+ working-directory: ${{ steps.configure-uibase.outputs.working-directory }}
+ run: |
+ ctest --test-dir vsbuild -C Debug --output-on-failure
+ ctest --test-dir vsbuild -C RelWithDebInfo --output-on-failure
+
+ - name: Install UI Base
+ working-directory: ${{ steps.configure-uibase.outputs.working-directory }}
+ run: |
+ cmake --install vsbuild --config Debug
+ cmake --install vsbuild --config RelWithDebInfo
+
+ # this tests that UI Base can be properly used as a CMake package
+ - name: Test UI Base package
+ run: |
+ cmake -B build . "-DCMAKE_PREFIX_PATH=${env:QT_ROOT_DIR}\msvc2022_64;${{ github.workspace }}\install\lib\cmake\"
+ cmake --build build --config Debug
+ cmake --build build --config Release
+ cmake --build build --config RelWithDebInfo
+ working-directory: ${{ steps.configure-uibase.outputs.working-directory }}/tests/cmake
+
+ - name: Upload UI Base artifact
+ uses: actions/upload-artifact@master
+ with:
+ name: uibase
+ path: ./install
+
+ publish:
+ if: github.ref_type == 'tag'
+ needs: build
+ runs-on: windows-2022
+ permissions:
+ contents: write
+ steps:
+ - name: Download Artifact
+ uses: actions/download-artifact@master
+ with:
+ name: uibase
+ path: ./install
+
+ - name: Create UI Base archive
+ run: 7z a uibase_${{ github.ref_name }}.7z ./install/*
+
+ - name: Publish Release
+ env:
+ GH_TOKEN: ${{ github.token }}
+ GH_REPO: ${{ github.repository }}
+ run: gh release create --draft=false --notes="${{ github.ref_name }}" "${{ github.ref_name }}" ./uibase_${{ github.ref_name }}.7z
diff --git a/libs/uibase/.github/workflows/linting.yml b/libs/uibase/.github/workflows/linting.yml
new file mode 100644
index 0000000..67447b2
--- /dev/null
+++ b/libs/uibase/.github/workflows/linting.yml
@@ -0,0 +1,17 @@
+name: Lint UIBase
+
+on:
+ push:
+ pull_request:
+ types: [opened, synchronize, reopened]
+
+jobs:
+ lint:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - name: Check format
+ uses: ModOrganizer2/check-formatting-action@master
+ with:
+ check-path: "."
+ exclude-regex: "third-party"