Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
ba14eed
structure update
Cadons Aug 3, 2025
cadd363
Update README.md to replace vpm script references with configure scri…
Cadons Aug 3, 2025
3d455d2
Update workflows and documentation for consistency and improved build…
Cadons Aug 3, 2025
af49e28
Update project version to 1.0.2 in Doxyfile
Cadons Aug 3, 2025
36954f0
Remove `/W4` and `/WX` compile options for MSVC in common.cmake
Cadons Aug 4, 2025
7efb4c6
Refactor platform-specific `EXPORT_LIBTUSCLIENT` macros for improved …
Cadons Aug 11, 2025
735d7a4
Refactor `CacheRepository`, tests, and associated utilities for impro…
Cadons Aug 11, 2025
57be64d
Update macro name from `LIBTUSCLIENT_EXPORTS` to `TUSCLIENT_EXPORTS` …
Cadons Aug 11, 2025
9dfd2cb
Replace `constexpr std::string` with `constexpr auto` for improved co…
Cadons Aug 11, 2025
b8f626a
Update `handleUploadError` declaration to align with modern C++ attri…
Cadons Aug 11, 2025
6c38e26
Remove `src/main.cpp` from source files and update data generation in…
Cadons Aug 12, 2025
f26b787
Update workflows to fix artifact paths and adapt to Ninja build direc…
Cadons Aug 12, 2025
625427c
Fix artifact paths in mac workflow for test binaries
Cadons Aug 13, 2025
d7f5d68
Remove `common.cmake` and refactor builds, workflows, and utilities f…
Cadons Aug 15, 2025
237ff3d
Add `Common.cmake` with reusable CMake functions for builds and confi…
Cadons Aug 15, 2025
b5f098c
Refactor caching in mac workflow to improve build efficiency and clarity
Cadons Aug 15, 2025
4a7846a
Update artifact paths in Linux workflow for improved compatibility
Cadons Aug 15, 2025
42f5f70
Fix artifact path in Linux workflow for consistency
Cadons Aug 15, 2025
087c1bf
Add step to display folder tree in Linux workflow for better visibility
Cadons Aug 15, 2025
db3df62
Update artifact paths in Linux workflow to align with new build direc…
Cadons Aug 15, 2025
9f84802
Update workflows to fix paths and remove redundant 'tree' step
Cadons Aug 15, 2025
f453d10
Add step to copy DLL to test build folder in Windows workflow
Cadons Aug 15, 2025
257601e
Update Windows workflow to copy library folder content to test build …
Cadons Aug 15, 2025
499266e
Update Windows workflow to upload all DLLs from the build directory
Cadons Aug 15, 2025
741bd8e
Update Windows workflow to correct path for test executable
Cadons Aug 15, 2025
2c1ad21
Update Windows workflow to adjust artifact paths for test binaries
Cadons Aug 15, 2025
23e9ccf
Update Windows workflow to clone vcpkg only if it does not exist
Cadons Aug 15, 2025
60c2063
Update Windows workflow to correct path for test executable
Cadons Aug 15, 2025
5b2cac8
Update Windows workflow to use Debug build for test executable
Cadons Aug 15, 2025
7e32574
Update Windows workflow to list files and directories before running …
Cadons Aug 15, 2025
15ad378
Update Windows workflow to correct path for test executable
Cadons Aug 15, 2025
daa4fc0
Restructure project layout: move files to appropriate directories and…
Cadons Aug 15, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 0 additions & 55 deletions .ci/linux.yml

This file was deleted.

25 changes: 0 additions & 25 deletions .ci/macos.yml

This file was deleted.

51 changes: 0 additions & 51 deletions .ci/windows.yml

This file was deleted.

34 changes: 22 additions & 12 deletions .github/workflows/linux-workflow.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
name: libtusclient CI Linux

on:
push:
pull_request:
release:
types: [created]
Expand Down Expand Up @@ -63,30 +62,41 @@ jobs:
key: vcpkg-${{ runner.os }}-${{ hashFiles('vcpkg.json') }}
restore-keys: |
vcpkg-${{ runner.os }}

- name: Cache build folder
uses: actions/cache@v4
with:
path: |
build
key: ${{ runner.os }}-build-${{ matrix.c_compiler }}-${{ steps.strings.outputs.build-type }}-${{ github.ref_name }}-${{ hashFiles('CMakeLists.txt', '**/CMakeLists.txt', 'vcpkg.json') }}
restore-keys: |
${{ runner.os }}-build-${{ matrix.c_compiler }}-${{ steps.strings.outputs.build-type }}-${{ github.ref_name }}-
${{ runner.os }}-build-${{ matrix.c_compiler }}-${{ steps.strings.outputs.build-type }}-


- name: Configure CMake
run: |
cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE=${{ matrix.vcpkg_root }}/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=${{ steps.strings.outputs.build-type }}



- name: Build Library
run: cmake --build build --target libtusclient --config ${{ steps.strings.outputs.build-type }}
run: cmake --build build --target tusclient --config ${{ steps.strings.outputs.build-type }}

- name: Build Tests
run: cmake --build build --target libtusclient_test --config ${{ steps.strings.outputs.build-type }}
run: cmake --build build --target tusclient_test --config ${{ steps.strings.outputs.build-type }}

- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: build-artifacts-linux
path: build/${{ steps.strings.outputs.test-folder }}/lib/liblibtusclient.so
path: build/build/tusclient/lib/libtusclient.so

- name: Upload artifacts for test
uses: actions/upload-artifact@v4
with:
name: build-artifacts-for-test
path: |
build/${{ steps.strings.outputs.test-folder }}/lib/liblibtusclient.so
build/${{ steps.strings.outputs.test-folder }}/bin/libtusclient_test
build/build/tusclient/lib/libtusclient.so
build/build/tusclient_test/bin/tusclient_test

test-linux:
needs: build-linux
Expand Down Expand Up @@ -116,7 +126,7 @@ jobs:
uses: actions/download-artifact@v4
with:
name: build-artifacts-for-test
path: build/${{ steps.strings.outputs.test-folder }}
path: build/build

- name: Run Mockoon CLI
uses: mockoon/cli-action@v2
Expand All @@ -132,9 +142,9 @@ jobs:
- name: Test Project
if: ${{ matrix.os == 'ubuntu-latest' }}
run: |
chmod +x build/${{ steps.strings.outputs.test-folder }}/bin/libtusclient_test
export LD_LIBRARY_PATH=build/${{ steps.strings.outputs.test-folder }}:$LD_LIBRARY_PATH
build/${{ steps.strings.outputs.test-folder }}/bin/libtusclient_test --gtest_output=xml:build/${{ steps.strings.outputs.test-folder }}/test-results.xml
chmod +x build/build/tusclient_test/bin/tusclient_test
export LD_LIBRARY_PATH=build/build/tusclient/lib:$LD_LIBRARY_PATH
build/build/tusclient_test/bin/tusclient_test --gtest_output=xml:build/${{ steps.strings.outputs.test-folder }}/test-results.xml

- name: Upload test results
uses: actions/upload-artifact@v4
Expand Down
30 changes: 19 additions & 11 deletions .github/workflows/mac-workflow.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
name: libtusclient CI MacOS

on:
push:
pull_request:
release:
types: [created]
Expand Down Expand Up @@ -62,29 +61,38 @@ jobs:
key: vcpkg-${{ runner.os }}-${{ hashFiles('vcpkg.json') }}
restore-keys: |
vcpkg-${{ runner.os }}

- name: Cache build folder
uses: actions/cache@v4
with:
path: |
build
key: macos-build-${{ matrix.c_compiler }}-${{ steps.strings.outputs.build-type }}-${{ github.ref_name }}-${{ hashFiles('CMakeLists.txt', '**/CMakeLists.txt', 'vcpkg.json') }}
restore-keys: |
macos-build-${{ matrix.c_compiler }}-${{ steps.strings.outputs.build-type }}-${{ github.ref_name }}-
macos-build-${{ matrix.c_compiler }}-${{ steps.strings.outputs.build-type }}-

- name: Configure CMake
run: |
cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE=${{ matrix.vcpkg_root }}/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=${{ steps.strings.outputs.build-type }}
- name: Build Library
run: cmake --build build --target libtusclient --config ${{ steps.strings.outputs.build-type }}
run: cmake --build build --target tusclient --config ${{ steps.strings.outputs.build-type }}

- name: Build Tests
run: cmake --build build --target libtusclient_test --config ${{ steps.strings.outputs.build-type }}
run: cmake --build build --target tusclient_test --config ${{ steps.strings.outputs.build-type }}

- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: build-artifacts-mac
path: build/${{ steps.strings.outputs.test-folder }}/lib/liblibtusclient.dylib
path: build/build/tusclient/lib/libtusclient.dylib

- name: Upload artifacts for test
uses: actions/upload-artifact@v4
with:
name: build-artifacts-for-test-mac
path: |
build/${{ steps.strings.outputs.test-folder }}/lib/liblibtusclient.dylib
build/${{ steps.strings.outputs.test-folder }}/bin/libtusclient_test
build/build/tusclient/lib/libtusclient.dylib
build/build/tusclient_test/bin/tusclient_test

test-mac:
needs: build-mac
Expand Down Expand Up @@ -114,7 +122,7 @@ jobs:
uses: actions/download-artifact@v4
with:
name: build-artifacts-for-test-mac
path: build/${{ steps.strings.outputs.test-folder }}
path: build/build/

- name: Run Mockoon CLI
uses: mockoon/cli-action@v2
Expand All @@ -134,9 +142,9 @@ jobs:

- name: Test Project
run: |
chmod +x build/${{ steps.strings.outputs.test-folder }}/bin/libtusclient_test
export DYLD_LIBRARY_PATH=build/${{ steps.strings.outputs.test-folder }}:$DYLD_LIBRARY_PATH
build/${{ steps.strings.outputs.test-folder }}/bin/libtusclient_test --gtest_output=xml:build/${{ steps.strings.outputs.test-folder }}/test-results.xml
chmod +x build/build/tusclient_test/bin/tusclient_test
export DYLD_LIBRARY_PATH=build/build/tusclient/lib:$DYLD_LIBRARY_PATH
build/build/tusclient_test/bin/tusclient_test --gtest_output=xml:build/${{ steps.strings.outputs.test-folder }}/test-results.xml

- name: Upload test results
uses: actions/upload-artifact@v4
Expand Down
36 changes: 26 additions & 10 deletions .github/workflows/windows-workflow.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
name: libtusclient CI Windows

on:
push:
pull_request:
release:
types: [created]
Expand Down Expand Up @@ -36,8 +35,10 @@ jobs:
fi
- name: Setup vcpkg
run: |
git clone https://github.com/microsoft/vcpkg.git
& "${{ matrix.vcpkg_root }}\bootstrap-vcpkg.bat"
if (-not(Test-Path -Path "${{ matrix.vcpkg_root }}")) {
git clone https://github.com/microsoft/vcpkg.git "${{ matrix.vcpkg_root }}"
& "${{ matrix.vcpkg_root }}/bootstrap-vcpkg.bat"
}
- name: Export GitHub Actions cache environment variables
uses: actions/github-script@v7
with:
Expand All @@ -60,29 +61,44 @@ jobs:
key: vcpkg-${{ runner.os }}-${{ hashFiles('vcpkg.json') }}
restore-keys: |
vcpkg-${{ runner.os }}
- name: Cache build folder
uses: actions/cache@v4
with:
path: |
build
key: windows-build-${{ matrix.c_compiler }}-${{ steps.strings.outputs.build-type }}-${{ github.ref_name }}-${{ hashFiles('CMakeLists.txt', '**\CMakeLists.txt', 'vcpkg.json') }}
restore-keys: |
windows-build-${{ matrix.c_compiler }}-${{ steps.strings.outputs.build-type }}-${{ github.ref_name }}-
windows-build-${{ matrix.c_compiler }}-${{ steps.strings.outputs.build-type }}-

- name: Configure CMake
run: |
cmake -S . -B build -DCMAKE_TOOLCHAIN_FILE="vcpkg\scripts\buildsystems\vcpkg.cmake" -DCMAKE_BUILD_TYPE=${{ steps.strings.outputs.build-type }}
- name: Build Library
run: cmake --build build --target libtusclient --config ${{ steps.strings.outputs.build-type }}
run: cmake --build build --target tusclient --config ${{ steps.strings.outputs.build-type }}

- name: Copy library folder content to test build folder
run: |
if (!(Test-Path -Path "build/build/tusclient_test")) {
New-Item -ItemType Directory -Path "build/build/tusclient_test"
}
Copy-Item -Path "build/build/tusclient/bin/*" -Destination "build/build/tusclient_test/bin" -Recurse -Force

- name: Build Tests
run: cmake --build build --target libtusclient_test --config ${{ steps.strings.outputs.build-type }}
run: cmake --build build --target tusclient_test --config ${{ steps.strings.outputs.build-type }}

- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: build-artifacts-windows
path: build/${{ steps.strings.outputs.test-folder }}/bin/*.dll
path: build/build/tusclient/bin/

- name: Upload artifacts for test
uses: actions/upload-artifact@v4
with:
name: build-artifacts-for-test
path: |
build/${{ steps.strings.outputs.test-folder }}/bin/*.dll
build/${{ steps.strings.outputs.test-folder }}/bin/libtusclient_test.exe
build/build/tusclient_test/bin/

test-windows:
needs: build-windows
Expand All @@ -94,7 +110,7 @@ jobs:
uses: actions/download-artifact@v4
with:
name: build-artifacts-for-test
path: build/
path: build/build

- name: Run Mockoon CLI
uses: mockoon/cli-action@v2
Expand All @@ -114,4 +130,4 @@ jobs:

- name: Run Tests
run: |
build/${{ steps.strings.outputs.test-folder }}/libtusclient_test.exe --gtest_output=xml:test-results.xml
.\build\build\Debug\tusclient_test.exe --gtest_output=xml:test-results.xml
Loading
Loading