From a97b92bc32a6abc52bd0ae70436823f6eb5fd99c Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 11:46:47 -0700 Subject: [PATCH 01/80] testing windows build --- .github/workflows/build.yaml | 136 ++++++++++++++++++----------------- 1 file changed, 71 insertions(+), 65 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index b90024e..2a9052c 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -1,65 +1,71 @@ -#--- -#name: Build Linux -#run-name: ${{ github.actor }} test -#on: -# - pull_request -#jobs: -# build-linux: -# runs-on: ubuntu-latest -# steps: -# - name: Check out repository code -# uses: actions/checkout@v6 -# -# - name: Set PATH -# run: | -# echo "/usr/local/cmake/bin:/usr/local/zig:\$PATH" > $GITHUB_PATH -# -# - name: Install CMake -# run: | -# curl -sS -L -o /tmp/cmake.tgz https://github.com/Kitware/CMake/releases/download/v4.3.3/cmake-4.3.3-linux-x86_64.tar.gz -# tar -zxvf /tmp/cmake.tgz -C /tmp -# sudo mkdir -p /usr/local/cmake -# sudo mv /tmp/cmake-4.3.3-linux-x86_64/* /usr/local/cmake/ -# -# - name: Install Ninja -# run: | -# curl -sS -L -o /tmp/ninja.zip https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-linux.zip -# sudo unzip -d /usr/bin /tmp/ninja.zip -# -# - name: Install Zig -# run: | -# curl -sS -L -o /tmp/zig.tar.xz https://ziglang.org/builds/zig-x86_64-linux-0.17.0-dev.813+2153f8143.tar.xz -# sudo mkdir -p /usr/local/zig -# tar -xvf /tmp/zig.tar.xz -C /tmp -# sudo mv /tmp/zig-x86_64-linux-0.17.0-dev.813+2153f8143/* /usr/local/zig -# -# - name: Build release -# run: | -# cmake --preset static-release -B out -# cmake --build out -# -# build-windows: -# runs-on: windows-2025-vs2026 -# steps: -# - name: Check out repository code -# uses: actions/checkout@v6 -# -# - name: Set PATH -# run: | -# echo "/usr/local/cmake/bin:/usr/local/zig:\$PATH" > $GITHUB_PATH -# -# - name: Install CMake -# run: | -# Invoke-WebRequest -Uri https://github.com/Kitware/CMake/releases/download/v4.3.3/cmake-4.3.3-windows-x86_64.zip -OutFile Env::Temp\cmake.zip -# 7z x cmake.zip -oc:\outputdir -# -# - name: Install Ninja -# run: | -# Invoke-WebRequest -Uri https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-win.zip -OutFile ninja.zip -# 7z x ninja.zip -oc:\outputdir -# -# - name: Build release -# run: | -# cmake --preset windows-x86-release -B out -# cmake --build out -# \ No newline at end of file +--- +name: Build Linux +run-name: ${{ github.actor }} test +on: + - pull_request +jobs: +# build-linux: +# runs-on: ubuntu-latest +# steps: +# - name: Check out repository code +# uses: actions/checkout@v6 +# +# - name: Set PATH +# run: | +# echo "/usr/local/cmake/bin:/usr/local/zig:\$PATH" > $GITHUB_PATH +# +# - name: Install CMake +# run: | +# curl -sS -L -o /tmp/cmake.tgz https://github.com/Kitware/CMake/releases/download/v4.3.3/cmake-4.3.3-linux-x86_64.tar.gz +# tar -zxvf /tmp/cmake.tgz -C /tmp +# sudo mkdir -p /usr/local/cmake +# sudo mv /tmp/cmake-4.3.3-linux-x86_64/* /usr/local/cmake/ +# +# - name: Install Ninja +# run: | +# curl -sS -L -o /tmp/ninja.zip https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-linux.zip +# sudo unzip -d /usr/bin /tmp/ninja.zip +# +# - name: Install Zig +# run: | +# curl -sS -L -o /tmp/zig.tar.xz https://ziglang.org/builds/zig-x86_64-linux-0.17.0-dev.813+2153f8143.tar.xz +# sudo mkdir -p /usr/local/zig +# tar -xvf /tmp/zig.tar.xz -C /tmp +# sudo mv /tmp/zig-x86_64-linux-0.17.0-dev.813+2153f8143/* /usr/local/zig +# +# - name: Build release +# run: | +# cmake --preset static-release -B out +# cmake --build out + + build-windows: + runs-on: windows-2025-vs2026 + steps: + - name: Check out repository code + uses: actions/checkout@v6 + + - name: Set PATH + run: | + echo "$env:RUNNER_TEMP\cmake\bin;$env:RUNNER_TEMP\ninja;$env:PATH" > $GITHUB_PATH + + - name: Install CMake + run: | + invoke-webrequest -uri https://github.com/Kitware/CMake/releases/download/v4.3.3/cmake-4.3.3-windows-x86_64.zip -outfile "$env:RUNNER_TEMP\cmake.zip" + 7z x cmake.zip -o"$Env:RUNNER_TEMP\cmake" + + - name: Install Ninja + run: | + Invoke-WebRequest -Uri https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-win.zip -OutFile ninja.zip + 7z x ninja.zip -oc:\outputdir + + - name: Debug + run: | + echo $env:PATH + cmake --version + ninja --version + cl --version + +# - name: Build release +# run: | +# cmake --preset windows-x86-release -B out +# cmake --build out From d1ac8e1369c07fe50e0379f2a2c4c399ef0bea8e Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 11:49:13 -0700 Subject: [PATCH 02/80] test --- .github/workflows/build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 2a9052c..960238b 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -51,12 +51,12 @@ jobs: - name: Install CMake run: | invoke-webrequest -uri https://github.com/Kitware/CMake/releases/download/v4.3.3/cmake-4.3.3-windows-x86_64.zip -outfile "$env:RUNNER_TEMP\cmake.zip" - 7z x cmake.zip -o"$Env:RUNNER_TEMP\cmake" + 7z x "$env:RUNNER_TEMP\cmake.zip" -o"$Env:RUNNER_TEMP\cmake" - name: Install Ninja run: | Invoke-WebRequest -Uri https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-win.zip -OutFile ninja.zip - 7z x ninja.zip -oc:\outputdir + 7z x "$env:RUNNER_TEMP\ninja.zip" -oc:\outputdir - name: Debug run: | From 47cb833c375d904b167d7425163745912c8762a0 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 11:50:34 -0700 Subject: [PATCH 03/80] test --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 960238b..4bd69ce 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -55,7 +55,7 @@ jobs: - name: Install Ninja run: | - Invoke-WebRequest -Uri https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-win.zip -OutFile ninja.zip + Invoke-WebRequest -Uri https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-win.zip -OutFile "$env:RUNNER_TEMP\ninja.zip" 7z x "$env:RUNNER_TEMP\ninja.zip" -oc:\outputdir - name: Debug From f7fb860d720befa6ee79589be176a2619d5d89a7 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 12:55:51 -0700 Subject: [PATCH 04/80] test --- .github/workflows/build.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 4bd69ce..aa7b19e 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -46,7 +46,9 @@ jobs: - name: Set PATH run: | - echo "$env:RUNNER_TEMP\cmake\bin;$env:RUNNER_TEMP\ninja;$env:PATH" > $GITHUB_PATH + echo "$env:RUNNER_TEMP\cmake\bin" >> $GITHUB_PATH + echo "$env:RUNNER_TEMP\ninja" >> $GITHUB_PATH + echo "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Tools\MSVC\18.6.11819.183\bin\Hostx86\x86" - name: Install CMake run: | @@ -56,7 +58,7 @@ jobs: - name: Install Ninja run: | Invoke-WebRequest -Uri https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-win.zip -OutFile "$env:RUNNER_TEMP\ninja.zip" - 7z x "$env:RUNNER_TEMP\ninja.zip" -oc:\outputdir + 7z x "$env:RUNNER_TEMP\ninja.zip" -o"$env:RUNNER_TEMP\ninja" - name: Debug run: | From de65a1232354d31c36cbd2661dab651e24825c46 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 12:57:33 -0700 Subject: [PATCH 05/80] test --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index aa7b19e..a6390d1 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -48,7 +48,7 @@ jobs: run: | echo "$env:RUNNER_TEMP\cmake\bin" >> $GITHUB_PATH echo "$env:RUNNER_TEMP\ninja" >> $GITHUB_PATH - echo "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Tools\MSVC\18.6.11819.183\bin\Hostx86\x86" + echo "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Tools\MSVC\18.6.11819.183\bin\Hostx86\x86" >> $GITHUB_PATH - name: Install CMake run: | From e6d77f6555bed8e6b052e6851c0e6229558efae4 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 12:59:31 -0700 Subject: [PATCH 06/80] test --- .github/workflows/build.yaml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index a6390d1..cd8a9e2 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -53,21 +53,21 @@ jobs: - name: Install CMake run: | invoke-webrequest -uri https://github.com/Kitware/CMake/releases/download/v4.3.3/cmake-4.3.3-windows-x86_64.zip -outfile "$env:RUNNER_TEMP\cmake.zip" - 7z x "$env:RUNNER_TEMP\cmake.zip" -o"$Env:RUNNER_TEMP\cmake" + 7z x "$env:RUNNER_TEMP\cmake.zip" -o"$env:RUNNER_TEMP\cmake" - name: Install Ninja run: | Invoke-WebRequest -Uri https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-win.zip -OutFile "$env:RUNNER_TEMP\ninja.zip" 7z x "$env:RUNNER_TEMP\ninja.zip" -o"$env:RUNNER_TEMP\ninja" - - name: Debug - run: | - echo $env:PATH - cmake --version - ninja --version - cl --version + # - name: Debug + # run: | + # echo $env:PATH + # cmake --version + # ninja --version + # cl --version -# - name: Build release -# run: | -# cmake --preset windows-x86-release -B out -# cmake --build out + - name: Build release + run: | + cmake --preset windows-x86-release -B out + cmake --build out From a00226cabbbfd8dd575cd9713e601ce616350104 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 13:00:36 -0700 Subject: [PATCH 07/80] test --- .github/workflows/build.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index cd8a9e2..e5fd9f3 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -67,7 +67,7 @@ jobs: # ninja --version # cl --version - - name: Build release - run: | - cmake --preset windows-x86-release -B out - cmake --build out + - name: Build release + run: | + cmake --preset windows-x86-release -B out + cmake --build out From 1bfd49c782ca19eef0c9f540a1a7b5ec1252e689 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 13:03:05 -0700 Subject: [PATCH 08/80] test --- .github/workflows/build.yaml | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index e5fd9f3..41886e2 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -60,14 +60,13 @@ jobs: Invoke-WebRequest -Uri https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-win.zip -OutFile "$env:RUNNER_TEMP\ninja.zip" 7z x "$env:RUNNER_TEMP\ninja.zip" -o"$env:RUNNER_TEMP\ninja" - # - name: Debug - # run: | - # echo $env:PATH - # cmake --version - # ninja --version - # cl --version - - - name: Build release + - name: Debug run: | - cmake --preset windows-x86-release -B out - cmake --build out + dir C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Tools\MSVC\ + cmake --version + ninja --version + + # - name: Build release + # run: | + # cmake --preset windows-x86-release -B out + # cmake --build out From 14b60113a63bbda1a5626f89cc636a0c88cdf958 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 13:04:27 -0700 Subject: [PATCH 09/80] test --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 41886e2..84f0af5 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -62,7 +62,7 @@ jobs: - name: Debug run: | - dir C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Tools\MSVC\ + dir "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Tools\MSVC\" cmake --version ninja --version From a853cb2ec7f3175102a01d9d58195ad4fc99eb3f Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 13:05:56 -0700 Subject: [PATCH 10/80] test --- .github/workflows/build.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 84f0af5..1d13f43 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -48,7 +48,7 @@ jobs: run: | echo "$env:RUNNER_TEMP\cmake\bin" >> $GITHUB_PATH echo "$env:RUNNER_TEMP\ninja" >> $GITHUB_PATH - echo "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Tools\MSVC\18.6.11819.183\bin\Hostx86\x86" >> $GITHUB_PATH + echo "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Tools\MSVC\14.51.36231\bin\Hostx86\x86" >> $GITHUB_PATH - name: Install CMake run: | @@ -62,10 +62,9 @@ jobs: - name: Debug run: | - dir "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Tools\MSVC\" cmake --version ninja --version - + cl --version # - name: Build release # run: | # cmake --preset windows-x86-release -B out From a30e9e5ebcb7178f5a08b7c27103dbbcd1de2bc6 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 13:10:11 -0700 Subject: [PATCH 11/80] test --- .github/workflows/build.yaml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 1d13f43..c780750 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -44,11 +44,11 @@ jobs: - name: Check out repository code uses: actions/checkout@v6 - - name: Set PATH - run: | - echo "$env:RUNNER_TEMP\cmake\bin" >> $GITHUB_PATH - echo "$env:RUNNER_TEMP\ninja" >> $GITHUB_PATH - echo "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Tools\MSVC\14.51.36231\bin\Hostx86\x86" >> $GITHUB_PATH + # - name: Set PATH + # run: | + # echo "$env:RUNNER_TEMP\cmake\bin" >> $GITHUB_PATH + # echo "$env:RUNNER_TEMP\ninja" >> $GITHUB_PATH + # echo "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Tools\MSVC\14.51.36231\bin\Hostx86\x86" >> $GITHUB_PATH - name: Install CMake run: | @@ -62,6 +62,7 @@ jobs: - name: Debug run: | + call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvars32.bat" cmake --version ninja --version cl --version From 3faaad8022cb8589c60a8b30f040e84354d882f7 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 13:17:46 -0700 Subject: [PATCH 12/80] test --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index c780750..fb98873 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -62,7 +62,7 @@ jobs: - name: Debug run: | - call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvars32.bat" + . "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvars32.bat" cmake --version ninja --version cl --version From c261f4f09d416823b8cc1f3cab6ac26b9449bf7b Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 13:30:05 -0700 Subject: [PATCH 13/80] test --- .github/workflows/build.yaml | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index fb98873..727cfbd 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -40,29 +40,34 @@ jobs: build-windows: runs-on: windows-2025-vs2026 + defaults: + run: + shell: cmd steps: - name: Check out repository code uses: actions/checkout@v6 - # - name: Set PATH - # run: | - # echo "$env:RUNNER_TEMP\cmake\bin" >> $GITHUB_PATH - # echo "$env:RUNNER_TEMP\ninja" >> $GITHUB_PATH - # echo "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Tools\MSVC\14.51.36231\bin\Hostx86\x86" >> $GITHUB_PATH + - name: Set PATH + run: | + echo "%RUNNER_TEMP%\cmake\bin" >> $GITHUB_PATH + echo "%RUNNER_TEMP%\ninja" >> $GITHUB_PATH + # echo "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Tools\MSVC\14.51.36231\bin\Hostx86\x86" >> $GITHUB_PATH - name: Install CMake + shell: powershell run: | invoke-webrequest -uri https://github.com/Kitware/CMake/releases/download/v4.3.3/cmake-4.3.3-windows-x86_64.zip -outfile "$env:RUNNER_TEMP\cmake.zip" 7z x "$env:RUNNER_TEMP\cmake.zip" -o"$env:RUNNER_TEMP\cmake" - name: Install Ninja + shell: powershell run: | Invoke-WebRequest -Uri https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-win.zip -OutFile "$env:RUNNER_TEMP\ninja.zip" 7z x "$env:RUNNER_TEMP\ninja.zip" -o"$env:RUNNER_TEMP\ninja" - name: Debug run: | - . "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvars32.bat" + call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvars32.bat" cmake --version ninja --version cl --version From 5a7537dca677194392709056afbc11a966e635bd Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 13:31:49 -0700 Subject: [PATCH 14/80] test --- .github/workflows/build.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 727cfbd..3da9568 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -51,7 +51,8 @@ jobs: run: | echo "%RUNNER_TEMP%\cmake\bin" >> $GITHUB_PATH echo "%RUNNER_TEMP%\ninja" >> $GITHUB_PATH - # echo "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Tools\MSVC\14.51.36231\bin\Hostx86\x86" >> $GITHUB_PATH + +# echo "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Tools\MSVC\14.51.36231\bin\Hostx86\x86" >> $GITHUB_PATH - name: Install CMake shell: powershell From 89c8c357a5ddaabd49deb89dcba3c5553689eba3 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 13:35:56 -0700 Subject: [PATCH 15/80] test --- .github/workflows/build.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 3da9568..b6ef544 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -51,8 +51,6 @@ jobs: run: | echo "%RUNNER_TEMP%\cmake\bin" >> $GITHUB_PATH echo "%RUNNER_TEMP%\ninja" >> $GITHUB_PATH - -# echo "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Tools\MSVC\14.51.36231\bin\Hostx86\x86" >> $GITHUB_PATH - name: Install CMake shell: powershell @@ -69,9 +67,10 @@ jobs: - name: Debug run: | call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvars32.bat" + echo %PATH% cmake --version ninja --version - cl --version + cl /Bv # - name: Build release # run: | # cmake --preset windows-x86-release -B out From 21c2cb62ea05f934b9ed6cd1b8165207e4fe73f7 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 13:38:44 -0700 Subject: [PATCH 16/80] test --- .github/workflows/build.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index b6ef544..bfdecc1 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -70,7 +70,8 @@ jobs: echo %PATH% cmake --version ninja --version - cl /Bv + where cmake + where ninja # - name: Build release # run: | # cmake --preset windows-x86-release -B out From f684a4d695743a00ecb2cfa42772ddc893295332 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 13:42:26 -0700 Subject: [PATCH 17/80] test --- .github/workflows/build.yaml | 57 ++++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 25 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index bfdecc1..a5b64cb 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -47,32 +47,39 @@ jobs: - name: Check out repository code uses: actions/checkout@v6 - - name: Set PATH - run: | - echo "%RUNNER_TEMP%\cmake\bin" >> $GITHUB_PATH - echo "%RUNNER_TEMP%\ninja" >> $GITHUB_PATH +# - name: Set PATH +# run: | +# echo "%RUNNER_TEMP%\cmake\bin" >> $GITHUB_PATH +# echo "%RUNNER_TEMP%\ninja" >> $GITHUB_PATH - - name: Install CMake - shell: powershell - run: | - invoke-webrequest -uri https://github.com/Kitware/CMake/releases/download/v4.3.3/cmake-4.3.3-windows-x86_64.zip -outfile "$env:RUNNER_TEMP\cmake.zip" - 7z x "$env:RUNNER_TEMP\cmake.zip" -o"$env:RUNNER_TEMP\cmake" +# - name: Cache Cmake +# id: choco-cache +# uses: actions/cache@v4 +# with: +# path: %RUNNER_TEMP%\cmake +# key: ${{ runner.os }}-choco-lib-${{ hashFiles('**/*.csproj') }} # Update key when dependencies change - - name: Install Ninja - shell: powershell - run: | - Invoke-WebRequest -Uri https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-win.zip -OutFile "$env:RUNNER_TEMP\ninja.zip" - 7z x "$env:RUNNER_TEMP\ninja.zip" -o"$env:RUNNER_TEMP\ninja" - - name: Debug - run: | - call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvars32.bat" - echo %PATH% - cmake --version - ninja --version - where cmake - where ninja - # - name: Build release +# - name: Install CMake +# shell: powershell +# run: | +# invoke-webrequest -uri https://github.com/Kitware/CMake/releases/download/v4.3.3/cmake-4.3.3-windows-x86_64.zip -outfile "$env:RUNNER_TEMP\cmake.zip" +# 7z x "$env:RUNNER_TEMP\cmake.zip" -o"$env:RUNNER_TEMP\cmake" + +# - name: Install Ninja +# shell: powershell +# run: | +# Invoke-WebRequest -Uri https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-win.zip -OutFile "$env:RUNNER_TEMP\ninja.zip" +# 7z x "$env:RUNNER_TEMP\ninja.zip" -o"$env:RUNNER_TEMP\ninja" + + # - name: Debug # run: | - # cmake --preset windows-x86-release -B out - # cmake --build out + # call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvars32.bat" + # echo %PATH% + # cmake --version + # ninja --version + + - name: Build release + run: | + cmake --preset windows-x86-release -B out + cmake --build out From 690d0ca9181f0e6a1adf0acf1841435e9910c1f3 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 13:43:07 -0700 Subject: [PATCH 18/80] test --- .github/workflows/build.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index a5b64cb..57f0d11 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -81,5 +81,6 @@ jobs: - name: Build release run: | + call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvars32.bat" cmake --preset windows-x86-release -B out cmake --build out From 103c8df65570b213a0b09e65c586c6b4cb919248 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 13:49:01 -0700 Subject: [PATCH 19/80] fixed issue with resource include --- src/apps/windows/res/suffer2gether.rc.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/apps/windows/res/suffer2gether.rc.in b/src/apps/windows/res/suffer2gether.rc.in index b0f02b9..4d4be7b 100644 --- a/src/apps/windows/res/suffer2gether.rc.in +++ b/src/apps/windows/res/suffer2gether.rc.in @@ -1,4 +1,4 @@ -#include "resource.h" +#include "res/resource.h" #include "afxres.h" From 219dfc8a9680558bf4c9380c8ca716de44b46b2d Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 15:38:46 -0700 Subject: [PATCH 20/80] test --- .github/workflows/build.yaml | 66 +++++++++++++++++++----------------- 1 file changed, 34 insertions(+), 32 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 57f0d11..e803d80 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -4,6 +4,24 @@ run-name: ${{ github.actor }} test on: - pull_request jobs: + # version: + # runs-on: ubuntu-latest + # outputs: + # version: ${{ steps.get-version.outputs.version }} + # exists: ${{ steps.check-tag.outputs.exists }} + # steps: + # - name: Check out code + # uses: actions/checkout@v6 + + # - name: Get version information + # id: get-version + # run: | + # runme + + # - name: Check if tag exists + # id: check-tag + # run: | + # build-linux: # runs-on: ubuntu-latest # steps: @@ -47,40 +65,24 @@ jobs: - name: Check out repository code uses: actions/checkout@v6 -# - name: Set PATH -# run: | -# echo "%RUNNER_TEMP%\cmake\bin" >> $GITHUB_PATH -# echo "%RUNNER_TEMP%\ninja" >> $GITHUB_PATH - -# - name: Cache Cmake -# id: choco-cache -# uses: actions/cache@v4 -# with: -# path: %RUNNER_TEMP%\cmake -# key: ${{ runner.os }}-choco-lib-${{ hashFiles('**/*.csproj') }} # Update key when dependencies change - - -# - name: Install CMake -# shell: powershell -# run: | -# invoke-webrequest -uri https://github.com/Kitware/CMake/releases/download/v4.3.3/cmake-4.3.3-windows-x86_64.zip -outfile "$env:RUNNER_TEMP\cmake.zip" -# 7z x "$env:RUNNER_TEMP\cmake.zip" -o"$env:RUNNER_TEMP\cmake" - -# - name: Install Ninja -# shell: powershell -# run: | -# Invoke-WebRequest -Uri https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-win.zip -OutFile "$env:RUNNER_TEMP\ninja.zip" -# 7z x "$env:RUNNER_TEMP\ninja.zip" -o"$env:RUNNER_TEMP\ninja" - - # - name: Debug - # run: | - # call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvars32.bat" - # echo %PATH% - # cmake --version - # ninja --version - - name: Build release run: | call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvars32.bat" cmake --preset windows-x86-release -B out cmake --build out + + # - name: Upload artifact + # uses: actions/upload-artifact@v7 + # with: + # name: Windows release artifact + # path: out/suffer2gether-{version}-windows-x86.zip + # archive: false + + # release: + # runs-on: ubuntu-latest + # needs: + # - version + # - package + # steps: [] + + # gh release create -F releasenotes.md --target main -t "title" 'file.zipdesc' 'file.zipdesc' \ No newline at end of file From d66d107cc308ad9926c9a37e0f032f07ed474092 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 15:40:33 -0700 Subject: [PATCH 21/80] fixed issue with header location --- src/apps/windows/res/suffer2gether.rc.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/apps/windows/res/suffer2gether.rc.in b/src/apps/windows/res/suffer2gether.rc.in index b0f02b9..4d4be7b 100644 --- a/src/apps/windows/res/suffer2gether.rc.in +++ b/src/apps/windows/res/suffer2gether.rc.in @@ -1,4 +1,4 @@ -#include "resource.h" +#include "res/resource.h" #include "afxres.h" From a4815fb315d1e5fe6163d7be569f0a481e33eeeb Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 16:01:02 -0700 Subject: [PATCH 22/80] removed version from cmakelists for easier parsing --- CMakeLists.txt | 15 ++++++++++++++- version.txt | 3 +++ 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 version.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 6a0a5cc..4cd80d1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,9 +1,22 @@ cmake_minimum_required(VERSION 4.3.3) set(PROJECT_NAME "suffer2gether") + +file(READ "version.txt" version_data) + +string(REGEX MATCH "VERSION_MAJOR ([0-9]+)" _ "${version_data}") +set(VERSION_MAJOR "${CMAKE_MATCH_1}") + +string(REGEX MATCH "VERSION_MINOR ([0-9]+)" _ "${version_data}") +set(VERSION_MINOR "${CMAKE_MATCH_1}") + +string(REGEX MATCH "VERSION_PATCH ([0-9]+)" _ "${version_data}") +set(VERSION_PATCH "${CMAKE_MATCH_1}") + + project( ${PROJECT_NAME} - VERSION 1.2.0 + VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" ) diff --git a/version.txt b/version.txt new file mode 100644 index 0000000..0b68c35 --- /dev/null +++ b/version.txt @@ -0,0 +1,3 @@ +VERSION_MAJOR 1 +VERSION_MINOR 2 +VERSION_PATCH 0 From 65e9d3078af75b389366907d91843eca6ee76bac Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 16:27:11 -0700 Subject: [PATCH 23/80] test --- .github/workflows/build.yaml | 90 ++++++++++++++++++++++-------------- 1 file changed, 55 insertions(+), 35 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index e803d80..6406a17 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -4,24 +4,44 @@ run-name: ${{ github.actor }} test on: - pull_request jobs: - # version: - # runs-on: ubuntu-latest - # outputs: - # version: ${{ steps.get-version.outputs.version }} - # exists: ${{ steps.check-tag.outputs.exists }} - # steps: - # - name: Check out code - # uses: actions/checkout@v6 + version: + runs-on: ubuntu-latest + outputs: + version: ${{ steps.get-version.outputs.version }} + exists: ${{ steps.check-tag.outputs.exists }} + steps: + - name: Check out code + uses: actions/checkout@v6 - # - name: Get version information - # id: get-version - # run: | - # runme + - name: Get version information + id: get-version + run: | + VERSION_MAJOR=$(awk '$1 == "VERSION_MAJOR" { print $2; exit }' version.txt) + VERSION_MINOR=$(awk '$1 == "VERSION_MINOR" { print $2; exit }' version.txt) + VERSION_PATCH=$(awk '$1 == "VERSION_PATCH" { print $2; exit }' version.txt) + echo "version=v${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" >> "$GITHUB_OUTPUT" + + - name: Check if tag exists + id: check-tag + run: | + if git rev-parse -q --verify "refs/tags/${{ steps.get-version.outputs.version }}"; then + echo "exists=1" >> "$GITHUB_OUTPUT" + else + echo "exists=0" >> "$GITHUB_OUTPUT" + fi + + debug: + runs-on: ubuntu-latest + needs: version + steps: + - name: Debug + env: + VERSION: ${{ needs.version.outputs.version }} + EXISTS: ${{ needs.version.outputs.exists }} + run: | + echo "Version: ${VERSION}" + echo "Exists: ${EXISTS}" - # - name: Check if tag exists - # id: check-tag - # run: | - # build-linux: # runs-on: ubuntu-latest # steps: @@ -56,27 +76,27 @@ jobs: # cmake --preset static-release -B out # cmake --build out - build-windows: - runs-on: windows-2025-vs2026 - defaults: - run: - shell: cmd - steps: - - name: Check out repository code - uses: actions/checkout@v6 + # build-windows: + # runs-on: windows-2025-vs2026 + # defaults: + # run: + # shell: cmd + # steps: + # - name: Check out repository code + # uses: actions/checkout@v6 - - name: Build release - run: | - call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvars32.bat" - cmake --preset windows-x86-release -B out - cmake --build out + # - name: Build release + # run: | + # call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvars32.bat" + # cmake --preset windows-x86-release -B out + # cmake --build out - # - name: Upload artifact - # uses: actions/upload-artifact@v7 - # with: - # name: Windows release artifact - # path: out/suffer2gether-{version}-windows-x86.zip - # archive: false + # - name: Upload artifact + # uses: actions/upload-artifact@v7 + # with: + # name: Windows release artifact + # path: out/suffer2gether-{version}-windows-x86.zip + # archive: false # release: # runs-on: ubuntu-latest From f0bf369c0237939acfce28e9e21b70c56b3a6e16 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 17:13:45 -0700 Subject: [PATCH 24/80] test --- .github/workflows/build.yaml | 179 +++++++++++++++++++++-------------- 1 file changed, 110 insertions(+), 69 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 6406a17..5958a8a 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -2,7 +2,11 @@ name: Build Linux run-name: ${{ github.actor }} test on: - - pull_request + pull_request: + push: + branches: + - main + jobs: version: runs-on: ubuntu-latest @@ -25,84 +29,121 @@ jobs: id: check-tag run: | if git rev-parse -q --verify "refs/tags/${{ steps.get-version.outputs.version }}"; then - echo "exists=1" >> "$GITHUB_OUTPUT" + echo "exists=true" >> "$GITHUB_OUTPUT" else - echo "exists=0" >> "$GITHUB_OUTPUT" + echo "exists=false" >> "$GITHUB_OUTPUT" fi - debug: + build-linux: runs-on: ubuntu-latest - needs: version steps: - - name: Debug - env: - VERSION: ${{ needs.version.outputs.version }} - EXISTS: ${{ needs.version.outputs.exists }} + - name: Check out repository code + uses: actions/checkout@v6 + + - name: Set PATH + run: | + echo "/usr/local/cmake/bin:/usr/local/zig:\$PATH" > $GITHUB_PATH + + - name: Install CMake + run: | + curl -sS -L -o /tmp/cmake.tgz https://github.com/Kitware/CMake/releases/download/v4.3.3/cmake-4.3.3-linux-x86_64.tar.gz + tar -zxvf /tmp/cmake.tgz -C /tmp + sudo mkdir -p /usr/local/cmake + sudo mv /tmp/cmake-4.3.3-linux-x86_64/* /usr/local/cmake/ + + - name: Install Ninja + run: | + curl -sS -L -o /tmp/ninja.zip https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-linux.zip + sudo unzip -d /usr/bin /tmp/ninja.zip + + - name: Install Zig + run: | + curl -sS -L -o /tmp/zig.tar.xz https://ziglang.org/builds/zig-x86_64-linux-0.17.0-dev.813+2153f8143.tar.xz + sudo mkdir -p /usr/local/zig + tar -xvf /tmp/zig.tar.xz -C /tmp + sudo mv /tmp/zig-x86_64-linux-0.17.0-dev.813+2153f8143/* /usr/local/zig + + - name: Build release + run: | + cmake --preset static-release -B out + cmake --build out + + - name: Upload Linux artifact + uses: actions/upload-artifact@v7 + with: + name: Linux artifact + path: out/suffer2gether + archive: false + + + build-windows: + runs-on: windows-2025-vs2026 + defaults: + run: + shell: cmd + steps: + - name: Check out repository code + uses: actions/checkout@v6 + + - name: Build release run: | - echo "Version: ${VERSION}" - echo "Exists: ${EXISTS}" + call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvars32.bat" + cmake --preset windows-x86-release -B out + cmake --build out -# build-linux: -# runs-on: ubuntu-latest -# steps: -# - name: Check out repository code -# uses: actions/checkout@v6 -# -# - name: Set PATH -# run: | -# echo "/usr/local/cmake/bin:/usr/local/zig:\$PATH" > $GITHUB_PATH -# -# - name: Install CMake -# run: | -# curl -sS -L -o /tmp/cmake.tgz https://github.com/Kitware/CMake/releases/download/v4.3.3/cmake-4.3.3-linux-x86_64.tar.gz -# tar -zxvf /tmp/cmake.tgz -C /tmp -# sudo mkdir -p /usr/local/cmake -# sudo mv /tmp/cmake-4.3.3-linux-x86_64/* /usr/local/cmake/ -# -# - name: Install Ninja -# run: | -# curl -sS -L -o /tmp/ninja.zip https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-linux.zip -# sudo unzip -d /usr/bin /tmp/ninja.zip -# -# - name: Install Zig -# run: | -# curl -sS -L -o /tmp/zig.tar.xz https://ziglang.org/builds/zig-x86_64-linux-0.17.0-dev.813+2153f8143.tar.xz -# sudo mkdir -p /usr/local/zig -# tar -xvf /tmp/zig.tar.xz -C /tmp -# sudo mv /tmp/zig-x86_64-linux-0.17.0-dev.813+2153f8143/* /usr/local/zig -# -# - name: Build release -# run: | -# cmake --preset static-release -B out -# cmake --build out + - name: Upload Windows MFC artifact + uses: actions/upload-artifact@v7 + with: + name: Windows MFC artifact + path: out/build/windows-x86-release/suffer2gether.exe - # build-windows: - # runs-on: windows-2025-vs2026 - # defaults: - # run: - # shell: cmd - # steps: - # - name: Check out repository code - # uses: actions/checkout@v6 + - name: Upload Windows CLI artifact + uses: actions/upload-artifact@v7 + with: + name: Windows CLI artifact + path: out/build/windows-x86-release/suffer2gether-cli.exe - # - name: Build release - # run: | - # call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvars32.bat" - # cmake --preset windows-x86-release -B out - # cmake --build out - # - name: Upload artifact - # uses: actions/upload-artifact@v7 - # with: - # name: Windows release artifact - # path: out/suffer2gether-{version}-windows-x86.zip - # archive: false + package: + run-on: ubuntu-latest + needs: + - version + - build-linux + - build-windows + steps: + - name: test + run: + + # TODO: switch this back to 'push' + release: + if: >- + github.event_name == 'pull_request' && + ${{ needs.version.outputs.exists }} == 'false' + runs-on: ubuntu-latest + needs: + - version + - package + steps: + - name: Download artifacts + uses: actions/download-artifact@v8 + with: + path: release - # release: - # runs-on: ubuntu-latest - # needs: - # - version - # - package - # steps: [] + - name: Package Linux binaries + env: + RELEASE_FILE: suffer2gether-${{ needs.version.outputs.version }}-linux-x86_64.tgz + run: | + cd release + chmod a+x ./suffer2gether + tar -zcvf ./${RELEASE_FILE} ./suffer2gether + sha256sum ./${RELEASE_FILE} >> SHA256SUMS + + - name: Package Windows binaries + env: + RELEASE_FILE: suffer2gether-${{ needs.version.outputs.version }}-windows-x86.zip + run: | + cd release + zip -9 -D ./${RELEASE_FILE} ./suffer2gether.exe ./suffer2gether-cli.exe + sha256sum ./${RELEASE_FILE} >> SHA256SUMS # gh release create -F releasenotes.md --target main -t "title" 'file.zipdesc' 'file.zipdesc' \ No newline at end of file From c21496dcd6918bdfd7547ed603e9109cf4c7e659 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 17:14:41 -0700 Subject: [PATCH 25/80] test --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 5958a8a..2c608d2 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -105,7 +105,7 @@ jobs: package: - run-on: ubuntu-latest + runs-on: ubuntu-latest needs: - version - build-linux From 23c00881e4f3223f444c69e77a2cdbef5134fbbb Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 17:20:27 -0700 Subject: [PATCH 26/80] test --- .github/workflows/build.yaml | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 2c608d2..ee649b9 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -103,6 +103,10 @@ jobs: name: Windows CLI artifact path: out/build/windows-x86-release/suffer2gether-cli.exe + - name: DEBUG + run: | + dir /a /s .\out + package: runs-on: ubuntu-latest @@ -110,19 +114,6 @@ jobs: - version - build-linux - build-windows - steps: - - name: test - run: - - # TODO: switch this back to 'push' - release: - if: >- - github.event_name == 'pull_request' && - ${{ needs.version.outputs.exists }} == 'false' - runs-on: ubuntu-latest - needs: - - version - - package steps: - name: Download artifacts uses: actions/download-artifact@v8 @@ -145,5 +136,16 @@ jobs: cd release zip -9 -D ./${RELEASE_FILE} ./suffer2gether.exe ./suffer2gether-cli.exe sha256sum ./${RELEASE_FILE} >> SHA256SUMS + + # TODO: switch this back to 'push' + release: + if: >- + github.event_name == 'pull_request' && + '${{ needs.version.outputs.exists }}' == 'false' + runs-on: ubuntu-latest + needs: + - version + - package + steps: [] # gh release create -F releasenotes.md --target main -t "title" 'file.zipdesc' 'file.zipdesc' \ No newline at end of file From 3977b6194135ad238c3b3e529095de889263f1fa Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 17:21:34 -0700 Subject: [PATCH 27/80] test --- .github/workflows/build.yaml | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index ee649b9..a81c8a6 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -136,16 +136,20 @@ jobs: cd release zip -9 -D ./${RELEASE_FILE} ./suffer2gether.exe ./suffer2gether-cli.exe sha256sum ./${RELEASE_FILE} >> SHA256SUMS + + - name: DEBUG + run: | + dir /a /s .\release # TODO: switch this back to 'push' - release: - if: >- - github.event_name == 'pull_request' && - '${{ needs.version.outputs.exists }}' == 'false' - runs-on: ubuntu-latest - needs: - - version - - package - steps: [] + # release: + # if: >- + # github.event_name == 'pull_request' && + # '${{ needs.version.outputs.exists }}' == 'false' + # runs-on: ubuntu-latest + # needs: + # - version + # - package + # steps: [] # gh release create -F releasenotes.md --target main -t "title" 'file.zipdesc' 'file.zipdesc' \ No newline at end of file From 56d835d19e58d140e121b132ae9c53c46e9d2284 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 17:26:05 -0700 Subject: [PATCH 28/80] test --- .github/workflows/build.yaml | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index a81c8a6..39d5f7d 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -95,17 +95,13 @@ jobs: uses: actions/upload-artifact@v7 with: name: Windows MFC artifact - path: out/build/windows-x86-release/suffer2gether.exe + path: out/suffer2gether.exe - name: Upload Windows CLI artifact uses: actions/upload-artifact@v7 with: name: Windows CLI artifact - path: out/build/windows-x86-release/suffer2gether-cli.exe - - - name: DEBUG - run: | - dir /a /s .\out + path: out/suffer2gether-cli.exe package: @@ -139,7 +135,8 @@ jobs: - name: DEBUG run: | - dir /a /s .\release + ls -la ./release + cat ./release/SHA256SUMS # TODO: switch this back to 'push' # release: From c9965bbd4117a2b4c83736045457f199e92510e3 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 17:30:17 -0700 Subject: [PATCH 29/80] test --- .github/workflows/build.yaml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 39d5f7d..2d6787b 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -125,6 +125,11 @@ jobs: tar -zcvf ./${RELEASE_FILE} ./suffer2gether sha256sum ./${RELEASE_FILE} >> SHA256SUMS + - name: DEBUG + run: | + ls -la ./release + cat ./release/SHA256SUMS + - name: Package Windows binaries env: RELEASE_FILE: suffer2gether-${{ needs.version.outputs.version }}-windows-x86.zip @@ -133,10 +138,10 @@ jobs: zip -9 -D ./${RELEASE_FILE} ./suffer2gether.exe ./suffer2gether-cli.exe sha256sum ./${RELEASE_FILE} >> SHA256SUMS - - name: DEBUG - run: | - ls -la ./release - cat ./release/SHA256SUMS + # - name: DEBUG + # run: | + # ls -la ./release + # cat ./release/SHA256SUMS # TODO: switch this back to 'push' # release: From 7c9954edb8ad4982dd8e39771c06d3e1f5228895 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 17:38:44 -0700 Subject: [PATCH 30/80] test --- .github/workflows/build.yaml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 2d6787b..1fa92f0 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -73,7 +73,6 @@ jobs: with: name: Linux artifact path: out/suffer2gether - archive: false build-windows: @@ -115,6 +114,7 @@ jobs: uses: actions/download-artifact@v8 with: path: release + merge-multiple: true - name: Package Linux binaries env: @@ -123,9 +123,9 @@ jobs: cd release chmod a+x ./suffer2gether tar -zcvf ./${RELEASE_FILE} ./suffer2gether - sha256sum ./${RELEASE_FILE} >> SHA256SUMS + sha256sum ${RELEASE_FILE} >> SHA256SUMS - - name: DEBUG + - name: DEBUG 1 run: | ls -la ./release cat ./release/SHA256SUMS @@ -136,12 +136,12 @@ jobs: run: | cd release zip -9 -D ./${RELEASE_FILE} ./suffer2gether.exe ./suffer2gether-cli.exe - sha256sum ./${RELEASE_FILE} >> SHA256SUMS + sha256sum ${RELEASE_FILE} >> SHA256SUMS - # - name: DEBUG - # run: | - # ls -la ./release - # cat ./release/SHA256SUMS + - name: DEBUG 2 + run: | + ls -la ./release + cat ./release/SHA256SUMS # TODO: switch this back to 'push' # release: From 36635c0bdaad6baf2187b3ee5c5e6c9c4e822e0c Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 17:52:57 -0700 Subject: [PATCH 31/80] test --- .github/workflows/build.yaml | 33 ++++++++++----------------------- 1 file changed, 10 insertions(+), 23 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 1fa92f0..eb3545a 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -1,6 +1,6 @@ --- -name: Build Linux -run-name: ${{ github.actor }} test +name: +run-name: Build and Release on: pull_request: push: @@ -103,7 +103,11 @@ jobs: path: out/suffer2gether-cli.exe - package: + # TODO: switch this back to 'push' + package-and-release: + if: >- + github.event_name == 'pull_request' && + '${{ needs.version.outputs.exists }}' == 'false' runs-on: ubuntu-latest needs: - version @@ -125,11 +129,6 @@ jobs: tar -zcvf ./${RELEASE_FILE} ./suffer2gether sha256sum ${RELEASE_FILE} >> SHA256SUMS - - name: DEBUG 1 - run: | - ls -la ./release - cat ./release/SHA256SUMS - - name: Package Windows binaries env: RELEASE_FILE: suffer2gether-${{ needs.version.outputs.version }}-windows-x86.zip @@ -138,20 +137,8 @@ jobs: zip -9 -D ./${RELEASE_FILE} ./suffer2gether.exe ./suffer2gether-cli.exe sha256sum ${RELEASE_FILE} >> SHA256SUMS - - name: DEBUG 2 - run: | - ls -la ./release - cat ./release/SHA256SUMS - - # TODO: switch this back to 'push' - # release: - # if: >- - # github.event_name == 'pull_request' && - # '${{ needs.version.outputs.exists }}' == 'false' - # runs-on: ubuntu-latest - # needs: - # - version - # - package - # steps: [] + - name: Create release + run: + # gh release create -F releasenotes.md --target main -t "title" 'file.zipdesc' 'file.zipdesc' \ No newline at end of file From 2c08587fe0bfa95b1602762e3d226e4f31301848 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 17:56:39 -0700 Subject: [PATCH 32/80] shifting to github tags as version source of truth --- CMakeLists.txt | 23 +++++++++++++---------- version.txt | 3 --- 2 files changed, 13 insertions(+), 13 deletions(-) delete mode 100644 version.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 4cd80d1..74254bb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,16 +2,19 @@ cmake_minimum_required(VERSION 4.3.3) set(PROJECT_NAME "suffer2gether") -file(READ "version.txt" version_data) - -string(REGEX MATCH "VERSION_MAJOR ([0-9]+)" _ "${version_data}") -set(VERSION_MAJOR "${CMAKE_MATCH_1}") - -string(REGEX MATCH "VERSION_MINOR ([0-9]+)" _ "${version_data}") -set(VERSION_MINOR "${CMAKE_MATCH_1}") - -string(REGEX MATCH "VERSION_PATCH ([0-9]+)" _ "${version_data}") -set(VERSION_PATCH "${CMAKE_MATCH_1}") +if(EXISTS "version.txt") + file(READ "version.txt" version_data) + string(REGEX MATCH "VERSION_MAJOR ([0-9]+)" _ "${version_data}") + set(VERSION_MAJOR "${CMAKE_MATCH_1}") + string(REGEX MATCH "VERSION_MINOR ([0-9]+)" _ "${version_data}") + set(VERSION_MINOR "${CMAKE_MATCH_1}") + string(REGEX MATCH "VERSION_PATCH ([0-9]+)" _ "${version_data}") + set(VERSION_PATCH "${CMAKE_MATCH_1}") +else() + set(VERSION_MAJOR "1") + set(VERSION_MINOR "0") + set(VERSION_PATCH "0") +endif() project( diff --git a/version.txt b/version.txt deleted file mode 100644 index 0b68c35..0000000 --- a/version.txt +++ /dev/null @@ -1,3 +0,0 @@ -VERSION_MAJOR 1 -VERSION_MINOR 2 -VERSION_PATCH 0 From efde2b2671b1ec2b52ab8638a6a355c33865af16 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 18:07:10 -0700 Subject: [PATCH 33/80] test --- .github/workflows/build.xxx | 144 +++++++++++++++++++++++++++++++++++ .github/workflows/build.yaml | 83 +++----------------- 2 files changed, 155 insertions(+), 72 deletions(-) create mode 100644 .github/workflows/build.xxx diff --git a/.github/workflows/build.xxx b/.github/workflows/build.xxx new file mode 100644 index 0000000..b5e01cd --- /dev/null +++ b/.github/workflows/build.xxx @@ -0,0 +1,144 @@ +--- +name: Build Check +run-name: Build +on: + pull_request: + push: + branches: + - main + +jobs: + version: + runs-on: ubuntu-latest + outputs: + version: ${{ steps.get-version.outputs.version }} + exists: ${{ steps.check-tag.outputs.exists }} + steps: + - name: Check out code + uses: actions/checkout@v6 + + - name: Get version information + id: get-version + run: | + VERSION_MAJOR=$(awk '$1 == "VERSION_MAJOR" { print $2; exit }' version.txt) + VERSION_MINOR=$(awk '$1 == "VERSION_MINOR" { print $2; exit }' version.txt) + VERSION_PATCH=$(awk '$1 == "VERSION_PATCH" { print $2; exit }' version.txt) + echo "version=v${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" >> "$GITHUB_OUTPUT" + + - name: Check if tag exists + id: check-tag + run: | + if git rev-parse -q --verify "refs/tags/${{ steps.get-version.outputs.version }}"; then + echo "exists=true" >> "$GITHUB_OUTPUT" + else + echo "exists=false" >> "$GITHUB_OUTPUT" + fi + + build-linux: + runs-on: ubuntu-latest + steps: + - name: Check out repository code + uses: actions/checkout@v6 + + - name: Set PATH + run: | + echo "/usr/local/cmake/bin:/usr/local/zig:\$PATH" > $GITHUB_PATH + + - name: Install CMake + run: | + curl -sS -L -o /tmp/cmake.tgz https://github.com/Kitware/CMake/releases/download/v4.3.3/cmake-4.3.3-linux-x86_64.tar.gz + tar -zxvf /tmp/cmake.tgz -C /tmp + sudo mkdir -p /usr/local/cmake + sudo mv /tmp/cmake-4.3.3-linux-x86_64/* /usr/local/cmake/ + + - name: Install Ninja + run: | + curl -sS -L -o /tmp/ninja.zip https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-linux.zip + sudo unzip -d /usr/bin /tmp/ninja.zip + + - name: Install Zig + run: | + curl -sS -L -o /tmp/zig.tar.xz https://ziglang.org/builds/zig-x86_64-linux-0.17.0-dev.813+2153f8143.tar.xz + sudo mkdir -p /usr/local/zig + tar -xvf /tmp/zig.tar.xz -C /tmp + sudo mv /tmp/zig-x86_64-linux-0.17.0-dev.813+2153f8143/* /usr/local/zig + + - name: Build release + run: | + cmake --preset static-release -B out + cmake --build out + + - name: Upload Linux artifact + uses: actions/upload-artifact@v7 + with: + name: Linux artifact + path: out/suffer2gether + + + build-windows: + runs-on: windows-2025-vs2026 + defaults: + run: + shell: cmd + steps: + - name: Check out repository code + uses: actions/checkout@v6 + + - name: Build release + run: | + call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvars32.bat" + cmake --preset windows-x86-release -B out + cmake --build out + + - name: Upload Windows MFC artifact + uses: actions/upload-artifact@v7 + with: + name: Windows MFC artifact + path: out/suffer2gether.exe + + - name: Upload Windows CLI artifact + uses: actions/upload-artifact@v7 + with: + name: Windows CLI artifact + path: out/suffer2gether-cli.exe + + + # TODO: switch this back to 'push' + package-and-release: + if: >- + github.event_name == 'pull_request' && + '${{ needs.version.outputs.exists }}' == 'false' + runs-on: ubuntu-latest + needs: + - version + - build-linux + - build-windows + steps: + - name: Download artifacts + uses: actions/download-artifact@v8 + with: + path: release + merge-multiple: true + + - name: Package Linux binaries + env: + RELEASE_FILE: suffer2gether-${{ needs.version.outputs.version }}-linux-x86_64.tgz + run: | + cd release + chmod a+x ./suffer2gether + tar -zcvf ./${RELEASE_FILE} ./suffer2gether + sha256sum ${RELEASE_FILE} >> SHA256SUMS + + - name: Package Windows binaries + env: + RELEASE_FILE: suffer2gether-${{ needs.version.outputs.version }}-windows-x86.zip + run: | + cd release + zip -9 -D ./${RELEASE_FILE} ./suffer2gether.exe ./suffer2gether-cli.exe + sha256sum ${RELEASE_FILE} >> SHA256SUMS + + - name: Create release + run: + + + # gh release create -F releasenotes.md --target main -t "title" 'file.zipdesc' 'file.zipdesc' \ No newline at end of file diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index eb3545a..5c7eb0b 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -1,39 +1,16 @@ --- -name: -run-name: Build and Release +name: Build Workflow +run-name: Build Workflow on: pull_request: - push: - branches: - - main + workflow_call: + inputs: + upload-artifacts: + required: false + default: false + type: bool jobs: - version: - runs-on: ubuntu-latest - outputs: - version: ${{ steps.get-version.outputs.version }} - exists: ${{ steps.check-tag.outputs.exists }} - steps: - - name: Check out code - uses: actions/checkout@v6 - - - name: Get version information - id: get-version - run: | - VERSION_MAJOR=$(awk '$1 == "VERSION_MAJOR" { print $2; exit }' version.txt) - VERSION_MINOR=$(awk '$1 == "VERSION_MINOR" { print $2; exit }' version.txt) - VERSION_PATCH=$(awk '$1 == "VERSION_PATCH" { print $2; exit }' version.txt) - echo "version=v${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" >> "$GITHUB_OUTPUT" - - - name: Check if tag exists - id: check-tag - run: | - if git rev-parse -q --verify "refs/tags/${{ steps.get-version.outputs.version }}"; then - echo "exists=true" >> "$GITHUB_OUTPUT" - else - echo "exists=false" >> "$GITHUB_OUTPUT" - fi - build-linux: runs-on: ubuntu-latest steps: @@ -69,6 +46,7 @@ jobs: cmake --build out - name: Upload Linux artifact + if: ${{ inputs.upload-artifacts }} uses: actions/upload-artifact@v7 with: name: Linux artifact @@ -91,54 +69,15 @@ jobs: cmake --build out - name: Upload Windows MFC artifact + if: ${{ inputs.upload-artifacts }} uses: actions/upload-artifact@v7 with: name: Windows MFC artifact path: out/suffer2gether.exe - name: Upload Windows CLI artifact + if: ${{ inputs.upload-artifacts }} uses: actions/upload-artifact@v7 with: name: Windows CLI artifact path: out/suffer2gether-cli.exe - - - # TODO: switch this back to 'push' - package-and-release: - if: >- - github.event_name == 'pull_request' && - '${{ needs.version.outputs.exists }}' == 'false' - runs-on: ubuntu-latest - needs: - - version - - build-linux - - build-windows - steps: - - name: Download artifacts - uses: actions/download-artifact@v8 - with: - path: release - merge-multiple: true - - - name: Package Linux binaries - env: - RELEASE_FILE: suffer2gether-${{ needs.version.outputs.version }}-linux-x86_64.tgz - run: | - cd release - chmod a+x ./suffer2gether - tar -zcvf ./${RELEASE_FILE} ./suffer2gether - sha256sum ${RELEASE_FILE} >> SHA256SUMS - - - name: Package Windows binaries - env: - RELEASE_FILE: suffer2gether-${{ needs.version.outputs.version }}-windows-x86.zip - run: | - cd release - zip -9 -D ./${RELEASE_FILE} ./suffer2gether.exe ./suffer2gether-cli.exe - sha256sum ${RELEASE_FILE} >> SHA256SUMS - - - name: Create release - run: - - - # gh release create -F releasenotes.md --target main -t "title" 'file.zipdesc' 'file.zipdesc' \ No newline at end of file From c9ded558b1fb9059b9dcb06dbbc9841ec65402f1 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 18:08:22 -0700 Subject: [PATCH 34/80] test --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 5c7eb0b..3ca796f 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -8,7 +8,7 @@ on: upload-artifacts: required: false default: false - type: bool + type: boolean jobs: build-linux: From 1f19b64f74d02b096a57742fbaa5e8f75685342b Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 18:13:48 -0700 Subject: [PATCH 35/80] test --- .github/workflows/release.yaml | 86 ++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 .github/workflows/release.yaml diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..f1f5866 --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,86 @@ +--- +name: +run-name: Build and Release +on: + pull_request: + push: + branches: + - main + +jobs: + build: + uses: ./.github/workflows/build.yaml + with: + upload-artifacts: true + + + version: + runs-on: ubuntu-latest + outputs: + version: ${{ steps.get-version.outputs.version }} + exists: ${{ steps.check-tag.outputs.exists }} + steps: + - name: Check out code + uses: actions/checkout@v6 + + - name: Get version information + id: get-version + run: | + VERSION_MAJOR=$(awk '$1 == "VERSION_MAJOR" { print $2; exit }' version.txt) + VERSION_MINOR=$(awk '$1 == "VERSION_MINOR" { print $2; exit }' version.txt) + VERSION_PATCH=$(awk '$1 == "VERSION_PATCH" { print $2; exit }' version.txt) + echo "version=v${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" >> "$GITHUB_OUTPUT" + + - name: Check if tag exists + id: check-tag + run: | + if git rev-parse -q --verify "refs/tags/${{ steps.get-version.outputs.version }}"; then + echo "exists=true" >> "$GITHUB_OUTPUT" + else + echo "exists=false" >> "$GITHUB_OUTPUT" + fi + + + # TODO: switch this back to 'push' + package-and-release: + if: >- + github.event_name == 'pull_request' && + '${{ needs.version.outputs.exists }}' == 'false' + runs-on: ubuntu-latest + needs: + - version + - build + steps: + - name: Download artifacts + uses: actions/download-artifact@v8 + with: + path: release + merge-multiple: true + + - name: Package Linux binaries + env: + RELEASE_FILE: suffer2gether-${{ needs.version.outputs.version }}-linux-x86_64.tgz + run: | + cd release + chmod a+x ./suffer2gether + tar -zcvf ./${RELEASE_FILE} ./suffer2gether + sha256sum ${RELEASE_FILE} >> SHA256SUMS + + - name: Package Windows binaries + env: + RELEASE_FILE: suffer2gether-${{ needs.version.outputs.version }}-windows-x86.zip + run: | + cd release + zip -9 -D ./${RELEASE_FILE} ./suffer2gether.exe ./suffer2gether-cli.exe + sha256sum ${RELEASE_FILE} >> SHA256SUMS + + - name: DEBUG + run: | + ls -la ./release + cat ./release/SHA256SUMS + + - name: Create release + run: + + + # gh release create -F releasenotes.md --target main -t "title" 'file.zipdesc' 'file.zipdesc' \ No newline at end of file From 920a3e2ab86cc644a032614b88265356f7a905bd Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 19:20:46 -0700 Subject: [PATCH 36/80] test --- .github/workflows/build.yaml | 39 +++++++++++++++++++++++++++ .github/workflows/release.yaml | 48 +++++++++------------------------- 2 files changed, 51 insertions(+), 36 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 3ca796f..4913d56 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -9,10 +9,40 @@ on: required: false default: false type: boolean + version: + required: false + default: v1.0.0 + type: string + jobs: + version: + runs-on: ubuntu-latest + outputs: + version_major: ${{ steps.get-version.outputs.version_major }} + version_minor: ${{ steps.get-version.outputs.version_minor }} + version_patch: ${{ steps.get-version.outputs.version_patch }} + is_valid: ${{ steps.get_version.outputs. }} + steps: + - name: Create version file + id: get_version + env: + VERSION: ${{ inputs.version }} + run: | + if ! grep -q -Eo 'v[0-9]+\.[0-9]+\.[0-9]+'; then + echo "is_valid=false" >> "$GITHUB_OUTPUT" + else + echo "is_valid=true" >> "$GITHUB_OUTPUT" + fi + echo ${VERSION} | awk -F'[v.]' '{print "version_major=" $2}' >> "$GITHUB_OUTPUT" + echo ${VERSION} | awk -F'[v.]' '{print "version_minor=" $3}' >> "$GITHUB_OUTPUT" + echo ${VERSION} | awk -F'[v.]' '{print "version_patch=" $4}' >> "$GITHUB_OUTPUT" + + build-linux: + if: '${{ needed.version.outputs.is_valid }}' == 'true' runs-on: ubuntu-latest + needs: version steps: - name: Check out repository code uses: actions/checkout@v6 @@ -54,7 +84,9 @@ jobs: build-windows: + if: '${{ needed.version.outputs.is_valid }}' == 'true' runs-on: windows-2025-vs2026 + needs: version defaults: run: shell: cmd @@ -63,8 +95,15 @@ jobs: uses: actions/checkout@v6 - name: Build release + env: + VERSION_MAJOR: ${{ needs.version.outputs.version_major }} + VERSION_MINOR: ${{ needs.version.outputs.version_minor }} + VERSION_PATCH: ${{ needs.version.outputs.version_patch }} run: | call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvars32.bat" + echo %VERSION_MAJOR% > version.txt + echo %VERSION_MINOR% >> version.txt + echo %VERSION_PATCH% >> version.txt cmake --preset windows-x86-release -B out cmake --build out diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index f1f5866..c23d247 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -2,10 +2,12 @@ name: run-name: Build and Release on: - pull_request: push: branches: - - main + - testing-actions + tags: + - v* + jobs: build: @@ -14,41 +16,9 @@ jobs: upload-artifacts: true - version: - runs-on: ubuntu-latest - outputs: - version: ${{ steps.get-version.outputs.version }} - exists: ${{ steps.check-tag.outputs.exists }} - steps: - - name: Check out code - uses: actions/checkout@v6 - - - name: Get version information - id: get-version - run: | - VERSION_MAJOR=$(awk '$1 == "VERSION_MAJOR" { print $2; exit }' version.txt) - VERSION_MINOR=$(awk '$1 == "VERSION_MINOR" { print $2; exit }' version.txt) - VERSION_PATCH=$(awk '$1 == "VERSION_PATCH" { print $2; exit }' version.txt) - echo "version=v${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" >> "$GITHUB_OUTPUT" - - - name: Check if tag exists - id: check-tag - run: | - if git rev-parse -q --verify "refs/tags/${{ steps.get-version.outputs.version }}"; then - echo "exists=true" >> "$GITHUB_OUTPUT" - else - echo "exists=false" >> "$GITHUB_OUTPUT" - fi - - - # TODO: switch this back to 'push' package-and-release: - if: >- - github.event_name == 'pull_request' && - '${{ needs.version.outputs.exists }}' == 'false' runs-on: ubuntu-latest needs: - - version - build steps: - name: Download artifacts @@ -57,9 +27,15 @@ jobs: path: release merge-multiple: true + - name: Create version file + env: + VERSION: ${{ github.ref_name }} + run: | + ... + - name: Package Linux binaries env: - RELEASE_FILE: suffer2gether-${{ needs.version.outputs.version }}-linux-x86_64.tgz + RELEASE_FILE: suffer2gether-${{ github.ref_name }}-linux-x86_64.tgz run: | cd release chmod a+x ./suffer2gether @@ -68,7 +44,7 @@ jobs: - name: Package Windows binaries env: - RELEASE_FILE: suffer2gether-${{ needs.version.outputs.version }}-windows-x86.zip + RELEASE_FILE: suffer2gether-${{ github.ref_name }}-windows-x86.zip run: | cd release zip -9 -D ./${RELEASE_FILE} ./suffer2gether.exe ./suffer2gether-cli.exe From e65909a947721d6b76a94a7138076c943b10c751 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 22:52:21 -0700 Subject: [PATCH 37/80] test --- .github/workflows/release.yaml | 95 +++++++++++++++++++--------------- 1 file changed, 52 insertions(+), 43 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index c23d247..60a02d9 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -3,60 +3,69 @@ name: run-name: Build and Release on: push: - branches: - - testing-actions tags: - v* +# TODO: I need this to run only if it's on main and a tag like v1.0.0 jobs: - build: - uses: ./.github/workflows/build.yaml - with: - upload-artifacts: true - - - package-and-release: + test: runs-on: ubuntu-latest - needs: - - build steps: - - name: Download artifacts - uses: actions/download-artifact@v8 - with: - path: release - merge-multiple: true - - - name: Create version file - env: - VERSION: ${{ github.ref_name }} + - name: DEBUG run: | - ... + echo ${{ github.event.head_ref }} + echo ${{ github.ref_name }} + echo ${{ github.ref_type }} + echo ${{ toJSON(github) }} + # build: + # if: ${{ github.event.}} + # uses: ./.github/workflows/build.yaml + # with: + # upload-artifacts: true - - name: Package Linux binaries - env: - RELEASE_FILE: suffer2gether-${{ github.ref_name }}-linux-x86_64.tgz - run: | - cd release - chmod a+x ./suffer2gether - tar -zcvf ./${RELEASE_FILE} ./suffer2gether - sha256sum ${RELEASE_FILE} >> SHA256SUMS - - - name: Package Windows binaries - env: - RELEASE_FILE: suffer2gether-${{ github.ref_name }}-windows-x86.zip - run: | - cd release - zip -9 -D ./${RELEASE_FILE} ./suffer2gether.exe ./suffer2gether-cli.exe - sha256sum ${RELEASE_FILE} >> SHA256SUMS - - name: DEBUG - run: | - ls -la ./release - cat ./release/SHA256SUMS + # package-and-release: + # runs-on: ubuntu-latest + # needs: + # - build + # steps: + # - name: Download artifacts + # uses: actions/download-artifact@v8 + # with: + # path: release + # merge-multiple: true + + # - name: Create version file + # env: + # VERSION: ${{ github.ref_name }} + # run: | + # ... + + # - name: Package Linux binaries + # env: + # RELEASE_FILE: suffer2gether-${{ github.ref_name }}-linux-x86_64.tgz + # run: | + # cd release + # chmod a+x ./suffer2gether + # tar -zcvf ./${RELEASE_FILE} ./suffer2gether + # sha256sum ${RELEASE_FILE} >> SHA256SUMS + + # - name: Package Windows binaries + # env: + # RELEASE_FILE: suffer2gether-${{ github.ref_name }}-windows-x86.zip + # run: | + # cd release + # zip -9 -D ./${RELEASE_FILE} ./suffer2gether.exe ./suffer2gether-cli.exe + # sha256sum ${RELEASE_FILE} >> SHA256SUMS + + # - name: DEBUG + # run: | + # ls -la ./release + # cat ./release/SHA256SUMS - - name: Create release - run: + # - name: Create release + # run: # gh release create -F releasenotes.md --target main -t "title" 'file.zipdesc' 'file.zipdesc' \ No newline at end of file From a0b359f308da52615d0eee07606381d91f32bcb6 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 22:55:01 -0700 Subject: [PATCH 38/80] test --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 4913d56..e2acf58 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -40,7 +40,7 @@ jobs: build-linux: - if: '${{ needed.version.outputs.is_valid }}' == 'true' + if: "'${{ needed.version.outputs.is_valid }}' == 'true'" runs-on: ubuntu-latest needs: version steps: From 21aca5a94fae5576529ab49eb507a7364001caad Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 22:55:38 -0700 Subject: [PATCH 39/80] test --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index e2acf58..ebc3012 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -84,7 +84,7 @@ jobs: build-windows: - if: '${{ needed.version.outputs.is_valid }}' == 'true' + if: "'${{ needed.version.outputs.is_valid }}' == 'true'" runs-on: windows-2025-vs2026 needs: version defaults: From aa132d37f47ad455f5cc5996022f141581b1783e Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 22:56:35 -0700 Subject: [PATCH 40/80] test --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index ebc3012..92e78f1 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -22,7 +22,7 @@ jobs: version_major: ${{ steps.get-version.outputs.version_major }} version_minor: ${{ steps.get-version.outputs.version_minor }} version_patch: ${{ steps.get-version.outputs.version_patch }} - is_valid: ${{ steps.get_version.outputs. }} + is_valid: ${{ steps.get_version.outputs.is_valid }} steps: - name: Create version file id: get_version From 763a9a4b6ffb2da5537b032a3d5d1080e91173e1 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 22:57:40 -0700 Subject: [PATCH 41/80] test --- .github/workflows/build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 92e78f1..7a5af4e 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -40,7 +40,7 @@ jobs: build-linux: - if: "'${{ needed.version.outputs.is_valid }}' == 'true'" + if: "'${{ needs.version.outputs.is_valid }}' == 'true'" runs-on: ubuntu-latest needs: version steps: @@ -84,7 +84,7 @@ jobs: build-windows: - if: "'${{ needed.version.outputs.is_valid }}' == 'true'" + if: "'${{ needs.version.outputs.is_valid }}' == 'true'" runs-on: windows-2025-vs2026 needs: version defaults: From 92a485e67f41a48e66ce2a55bcefa242962ce411 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 23:00:50 -0700 Subject: [PATCH 42/80] test --- .github/workflows/build.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 7a5af4e..b00645f 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -101,9 +101,9 @@ jobs: VERSION_PATCH: ${{ needs.version.outputs.version_patch }} run: | call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvars32.bat" - echo %VERSION_MAJOR% > version.txt - echo %VERSION_MINOR% >> version.txt - echo %VERSION_PATCH% >> version.txt + echo VERSION_MAJOR %VERSION_MAJOR% > version.txt + echo VERSION_MINOR %VERSION_MINOR% >> version.txt + echo VERSION_PATCH %VERSION_PATCH% >> version.txt cmake --preset windows-x86-release -B out cmake --build out From ecd669bf93eea619fd4b4d234378df58d887657d Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 23:02:44 -0700 Subject: [PATCH 43/80] test --- .github/workflows/build.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index b00645f..1cc9710 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -101,9 +101,9 @@ jobs: VERSION_PATCH: ${{ needs.version.outputs.version_patch }} run: | call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvars32.bat" - echo VERSION_MAJOR %VERSION_MAJOR% > version.txt - echo VERSION_MINOR %VERSION_MINOR% >> version.txt - echo VERSION_PATCH %VERSION_PATCH% >> version.txt + echo VERSION_MAJOR %VERSION_MAJOR% + echo VERSION_MINOR %VERSION_MINOR% + echo VERSION_PATCH %VERSION_PATCH% cmake --preset windows-x86-release -B out cmake --build out From b20ea10549a0031b9925d589a5d00b481a4ebb3b Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 23:05:17 -0700 Subject: [PATCH 44/80] test --- .github/workflows/build.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 1cc9710..4a74a84 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -40,7 +40,7 @@ jobs: build-linux: - if: "'${{ needs.version.outputs.is_valid }}' == 'true'" + if: needs.version.outputs.is_valid == 'true'" runs-on: ubuntu-latest needs: version steps: @@ -76,7 +76,7 @@ jobs: cmake --build out - name: Upload Linux artifact - if: ${{ inputs.upload-artifacts }} + if: inputs.upload-artifacts uses: actions/upload-artifact@v7 with: name: Linux artifact @@ -84,7 +84,7 @@ jobs: build-windows: - if: "'${{ needs.version.outputs.is_valid }}' == 'true'" + if: needs.version.outputs.is_valid == 'true'" runs-on: windows-2025-vs2026 needs: version defaults: @@ -108,14 +108,14 @@ jobs: cmake --build out - name: Upload Windows MFC artifact - if: ${{ inputs.upload-artifacts }} + if: inputs.upload-artifacts uses: actions/upload-artifact@v7 with: name: Windows MFC artifact path: out/suffer2gether.exe - name: Upload Windows CLI artifact - if: ${{ inputs.upload-artifacts }} + if: inputs.upload-artifacts uses: actions/upload-artifact@v7 with: name: Windows CLI artifact From d6637b1b5d4b7d3f0cd6a58e9c05dd3d8c8eb9bc Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 23:05:54 -0700 Subject: [PATCH 45/80] test --- .github/workflows/build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 4a74a84..aca2281 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -40,7 +40,7 @@ jobs: build-linux: - if: needs.version.outputs.is_valid == 'true'" + if: needs.version.outputs.is_valid == 'true' runs-on: ubuntu-latest needs: version steps: @@ -84,7 +84,7 @@ jobs: build-windows: - if: needs.version.outputs.is_valid == 'true'" + if: needs.version.outputs.is_valid == 'true' runs-on: windows-2025-vs2026 needs: version defaults: From 2853cf534da5de93d73dfe2ad16f0c07125d0e77 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 23:10:01 -0700 Subject: [PATCH 46/80] test --- .github/workflows/build.yaml | 150 +++++++++++++++++++---------------- 1 file changed, 83 insertions(+), 67 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index aca2281..11f0034 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -39,84 +39,100 @@ jobs: echo ${VERSION} | awk -F'[v.]' '{print "version_patch=" $4}' >> "$GITHUB_OUTPUT" - build-linux: - if: needs.version.outputs.is_valid == 'true' + test: runs-on: ubuntu-latest needs: version steps: - - name: Check out repository code - uses: actions/checkout@v6 - - - name: Set PATH + - name: DEBUG + env: + VERSION_MAJOR: ${{ needs.version.outputs.version_major }} + VERSION_MINOR: ${{ needs.version.outputs.version_minor }} + VERSION_PATCH: ${{ needs.version.outputs.version_patch }} + IS_VALID: ${{ needs.version.outputs.is_valid }} run: | - echo "/usr/local/cmake/bin:/usr/local/zig:\$PATH" > $GITHUB_PATH + echo VERSION_MAJOR %VERSION_MAJOR% + echo VERSION_MINOR %VERSION_MINOR% + echo VERSION_PATCH %VERSION_PATCH% + echo IS_VALID %IS_VALID% + + # build-linux: + # if: needs.version.outputs.is_valid == 'true' + # runs-on: ubuntu-latest + # needs: version + # steps: + # - name: Check out repository code + # uses: actions/checkout@v6 + + # - name: Set PATH + # run: | + # echo "/usr/local/cmake/bin:/usr/local/zig:\$PATH" > $GITHUB_PATH - - name: Install CMake - run: | - curl -sS -L -o /tmp/cmake.tgz https://github.com/Kitware/CMake/releases/download/v4.3.3/cmake-4.3.3-linux-x86_64.tar.gz - tar -zxvf /tmp/cmake.tgz -C /tmp - sudo mkdir -p /usr/local/cmake - sudo mv /tmp/cmake-4.3.3-linux-x86_64/* /usr/local/cmake/ + # - name: Install CMake + # run: | + # curl -sS -L -o /tmp/cmake.tgz https://github.com/Kitware/CMake/releases/download/v4.3.3/cmake-4.3.3-linux-x86_64.tar.gz + # tar -zxvf /tmp/cmake.tgz -C /tmp + # sudo mkdir -p /usr/local/cmake + # sudo mv /tmp/cmake-4.3.3-linux-x86_64/* /usr/local/cmake/ - - name: Install Ninja - run: | - curl -sS -L -o /tmp/ninja.zip https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-linux.zip - sudo unzip -d /usr/bin /tmp/ninja.zip + # - name: Install Ninja + # run: | + # curl -sS -L -o /tmp/ninja.zip https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-linux.zip + # sudo unzip -d /usr/bin /tmp/ninja.zip - - name: Install Zig - run: | - curl -sS -L -o /tmp/zig.tar.xz https://ziglang.org/builds/zig-x86_64-linux-0.17.0-dev.813+2153f8143.tar.xz - sudo mkdir -p /usr/local/zig - tar -xvf /tmp/zig.tar.xz -C /tmp - sudo mv /tmp/zig-x86_64-linux-0.17.0-dev.813+2153f8143/* /usr/local/zig + # - name: Install Zig + # run: | + # curl -sS -L -o /tmp/zig.tar.xz https://ziglang.org/builds/zig-x86_64-linux-0.17.0-dev.813+2153f8143.tar.xz + # sudo mkdir -p /usr/local/zig + # tar -xvf /tmp/zig.tar.xz -C /tmp + # sudo mv /tmp/zig-x86_64-linux-0.17.0-dev.813+2153f8143/* /usr/local/zig - - name: Build release - run: | - cmake --preset static-release -B out - cmake --build out + # - name: Build release + # run: | + # cmake --preset static-release -B out + # cmake --build out - - name: Upload Linux artifact - if: inputs.upload-artifacts - uses: actions/upload-artifact@v7 - with: - name: Linux artifact - path: out/suffer2gether + # - name: Upload Linux artifact + # if: inputs.upload-artifacts + # uses: actions/upload-artifact@v7 + # with: + # name: Linux artifact + # path: out/suffer2gether - build-windows: - if: needs.version.outputs.is_valid == 'true' - runs-on: windows-2025-vs2026 - needs: version - defaults: - run: - shell: cmd - steps: - - name: Check out repository code - uses: actions/checkout@v6 + # build-windows: + # if: needs.version.outputs.is_valid == 'true' + # runs-on: windows-2025-vs2026 + # needs: version + # defaults: + # run: + # shell: cmd + # steps: + # - name: Check out repository code + # uses: actions/checkout@v6 - - name: Build release - env: - VERSION_MAJOR: ${{ needs.version.outputs.version_major }} - VERSION_MINOR: ${{ needs.version.outputs.version_minor }} - VERSION_PATCH: ${{ needs.version.outputs.version_patch }} - run: | - call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvars32.bat" - echo VERSION_MAJOR %VERSION_MAJOR% - echo VERSION_MINOR %VERSION_MINOR% - echo VERSION_PATCH %VERSION_PATCH% - cmake --preset windows-x86-release -B out - cmake --build out + # - name: Build release + # env: + # VERSION_MAJOR: ${{ needs.version.outputs.version_major }} + # VERSION_MINOR: ${{ needs.version.outputs.version_minor }} + # VERSION_PATCH: ${{ needs.version.outputs.version_patch }} + # run: | + # call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvars32.bat" + # echo VERSION_MAJOR %VERSION_MAJOR% + # echo VERSION_MINOR %VERSION_MINOR% + # echo VERSION_PATCH %VERSION_PATCH% + # cmake --preset windows-x86-release -B out + # cmake --build out - - name: Upload Windows MFC artifact - if: inputs.upload-artifacts - uses: actions/upload-artifact@v7 - with: - name: Windows MFC artifact - path: out/suffer2gether.exe + # - name: Upload Windows MFC artifact + # if: inputs.upload-artifacts + # uses: actions/upload-artifact@v7 + # with: + # name: Windows MFC artifact + # path: out/suffer2gether.exe - - name: Upload Windows CLI artifact - if: inputs.upload-artifacts - uses: actions/upload-artifact@v7 - with: - name: Windows CLI artifact - path: out/suffer2gether-cli.exe + # - name: Upload Windows CLI artifact + # if: inputs.upload-artifacts + # uses: actions/upload-artifact@v7 + # with: + # name: Windows CLI artifact + # path: out/suffer2gether-cli.exe From b768530f0d9948ed0ce36c6753b537634b92af97 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 23:11:56 -0700 Subject: [PATCH 47/80] test --- .github/workflows/build.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 11f0034..45d41ed 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -50,10 +50,10 @@ jobs: VERSION_PATCH: ${{ needs.version.outputs.version_patch }} IS_VALID: ${{ needs.version.outputs.is_valid }} run: | - echo VERSION_MAJOR %VERSION_MAJOR% - echo VERSION_MINOR %VERSION_MINOR% - echo VERSION_PATCH %VERSION_PATCH% - echo IS_VALID %IS_VALID% + echo VERSION_MAJOR $VERSION_MAJOR + echo VERSION_MINOR $VERSION_MINOR + echo VERSION_PATCH $VERSION_PATCH + echo IS_VALID $IS_VALID # build-linux: # if: needs.version.outputs.is_valid == 'true' From 13c23fd79f1354124ed1f3df48537fae5343267c Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 23:13:41 -0700 Subject: [PATCH 48/80] test --- .github/workflows/build.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 45d41ed..b9e8e0d 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -29,6 +29,8 @@ jobs: env: VERSION: ${{ inputs.version }} run: | + echo VERSION ${VERSION} + echo TEST ${{ inputs.version }} if ! grep -q -Eo 'v[0-9]+\.[0-9]+\.[0-9]+'; then echo "is_valid=false" >> "$GITHUB_OUTPUT" else From e92a8b5cde570cf49c941f5d30fb2547511d0d2b Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 23:18:41 -0700 Subject: [PATCH 49/80] test --- .github/workflows/build.yaml | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index b9e8e0d..a8849e9 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -6,12 +6,10 @@ on: workflow_call: inputs: upload-artifacts: - required: false - default: false + required: true type: boolean version: - required: false - default: v1.0.0 + required: true type: string @@ -19,18 +17,17 @@ jobs: version: runs-on: ubuntu-latest outputs: - version_major: ${{ steps.get-version.outputs.version_major }} - version_minor: ${{ steps.get-version.outputs.version_minor }} - version_patch: ${{ steps.get-version.outputs.version_patch }} - is_valid: ${{ steps.get_version.outputs.is_valid }} + version_major: steps.get-version.outputs.version_major + version_minor: steps.get-version.outputs.version_minor + version_patch: steps.get-version.outputs.version_patch + is_valid: steps.get_version.outputs.is_valid steps: - name: Create version file id: get_version env: - VERSION: ${{ inputs.version }} + VERSION: case(inputs.version, inputs.version, 'v1.0.0') run: | echo VERSION ${VERSION} - echo TEST ${{ inputs.version }} if ! grep -q -Eo 'v[0-9]+\.[0-9]+\.[0-9]+'; then echo "is_valid=false" >> "$GITHUB_OUTPUT" else @@ -47,10 +44,10 @@ jobs: steps: - name: DEBUG env: - VERSION_MAJOR: ${{ needs.version.outputs.version_major }} - VERSION_MINOR: ${{ needs.version.outputs.version_minor }} - VERSION_PATCH: ${{ needs.version.outputs.version_patch }} - IS_VALID: ${{ needs.version.outputs.is_valid }} + VERSION_MAJOR: needs.version.outputs.version_major + VERSION_MINOR: needs.version.outputs.version_minor + VERSION_PATCH: needs.version.outputs.version_patch + IS_VALID: needs.version.outputs.is_valid run: | echo VERSION_MAJOR $VERSION_MAJOR echo VERSION_MINOR $VERSION_MINOR From 7abc67fc3d144487e15fcce44e7dff1165937ece Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 23:19:49 -0700 Subject: [PATCH 50/80] test --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index a8849e9..9cdd61f 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -25,7 +25,7 @@ jobs: - name: Create version file id: get_version env: - VERSION: case(inputs.version, inputs.version, 'v1.0.0') + VERSION: '${{ case(inputs.version, inputs.version, "v1.0.0") }}' run: | echo VERSION ${VERSION} if ! grep -q -Eo 'v[0-9]+\.[0-9]+\.[0-9]+'; then From d7bec8192d80969fa6ce2c88412980db617b7fe3 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 23:20:38 -0700 Subject: [PATCH 51/80] test --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 9cdd61f..4981044 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -25,7 +25,7 @@ jobs: - name: Create version file id: get_version env: - VERSION: '${{ case(inputs.version, inputs.version, "v1.0.0") }}' + VERSION: ${{ case(inputs.version, inputs.version, 'v1.0.0') }} run: | echo VERSION ${VERSION} if ! grep -q -Eo 'v[0-9]+\.[0-9]+\.[0-9]+'; then From ab32ac49a111a742986148cb104457d28b2198d2 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 23:23:22 -0700 Subject: [PATCH 52/80] test --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 4981044..db14279 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -25,7 +25,7 @@ jobs: - name: Create version file id: get_version env: - VERSION: ${{ case(inputs.version, inputs.version, 'v1.0.0') }} + VERSION: ${{ inputs.version || 'v1.0.0' }} run: | echo VERSION ${VERSION} if ! grep -q -Eo 'v[0-9]+\.[0-9]+\.[0-9]+'; then From fbcecafd04f5583ca121b60942dd38ee3d167394 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 23:24:39 -0700 Subject: [PATCH 53/80] test --- .github/workflows/build.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index db14279..1b8dceb 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -44,10 +44,10 @@ jobs: steps: - name: DEBUG env: - VERSION_MAJOR: needs.version.outputs.version_major - VERSION_MINOR: needs.version.outputs.version_minor - VERSION_PATCH: needs.version.outputs.version_patch - IS_VALID: needs.version.outputs.is_valid + VERSION_MAJOR: ${{ needs.version.outputs.version_major }} + VERSION_MINOR: ${{ needs.version.outputs.version_minor }} + VERSION_PATCH: ${{ needs.version.outputs.version_patch }} + IS_VALID: ${{ needs.version.outputs.is_valid }} run: | echo VERSION_MAJOR $VERSION_MAJOR echo VERSION_MINOR $VERSION_MINOR From bc1c7addafdf189d553c329f2824e2c0bf497ddd Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 23:30:14 -0700 Subject: [PATCH 54/80] test --- .github/workflows/build.yaml | 159 ++++++++++++++++------------------- 1 file changed, 71 insertions(+), 88 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 1b8dceb..e9b8352 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -17,17 +17,16 @@ jobs: version: runs-on: ubuntu-latest outputs: - version_major: steps.get-version.outputs.version_major - version_minor: steps.get-version.outputs.version_minor - version_patch: steps.get-version.outputs.version_patch - is_valid: steps.get_version.outputs.is_valid + version_major: ${{ steps.get-version.outputs.version_major }} + version_minor: ${{ steps.get-version.outputs.version_minor }} + version_patch: ${{ steps.get-version.outputs.version_patch }} + is_valid: ${{ steps.get_version.outputs.is_valid }} steps: - name: Create version file id: get_version env: VERSION: ${{ inputs.version || 'v1.0.0' }} run: | - echo VERSION ${VERSION} if ! grep -q -Eo 'v[0-9]+\.[0-9]+\.[0-9]+'; then echo "is_valid=false" >> "$GITHUB_OUTPUT" else @@ -38,100 +37,84 @@ jobs: echo ${VERSION} | awk -F'[v.]' '{print "version_patch=" $4}' >> "$GITHUB_OUTPUT" - test: + build-linux: + if: ${{ needs.version.outputs.is_valid == 'true' }} runs-on: ubuntu-latest needs: version steps: - - name: DEBUG - env: - VERSION_MAJOR: ${{ needs.version.outputs.version_major }} - VERSION_MINOR: ${{ needs.version.outputs.version_minor }} - VERSION_PATCH: ${{ needs.version.outputs.version_patch }} - IS_VALID: ${{ needs.version.outputs.is_valid }} - run: | - echo VERSION_MAJOR $VERSION_MAJOR - echo VERSION_MINOR $VERSION_MINOR - echo VERSION_PATCH $VERSION_PATCH - echo IS_VALID $IS_VALID - - # build-linux: - # if: needs.version.outputs.is_valid == 'true' - # runs-on: ubuntu-latest - # needs: version - # steps: - # - name: Check out repository code - # uses: actions/checkout@v6 + - name: Check out repository code + uses: actions/checkout@v6 - # - name: Set PATH - # run: | - # echo "/usr/local/cmake/bin:/usr/local/zig:\$PATH" > $GITHUB_PATH + - name: Set PATH + run: | + echo "/usr/local/cmake/bin:/usr/local/zig:\$PATH" > $GITHUB_PATH - # - name: Install CMake - # run: | - # curl -sS -L -o /tmp/cmake.tgz https://github.com/Kitware/CMake/releases/download/v4.3.3/cmake-4.3.3-linux-x86_64.tar.gz - # tar -zxvf /tmp/cmake.tgz -C /tmp - # sudo mkdir -p /usr/local/cmake - # sudo mv /tmp/cmake-4.3.3-linux-x86_64/* /usr/local/cmake/ + - name: Install CMake + run: | + curl -sS -L -o /tmp/cmake.tgz https://github.com/Kitware/CMake/releases/download/v4.3.3/cmake-4.3.3-linux-x86_64.tar.gz + tar -zxvf /tmp/cmake.tgz -C /tmp + sudo mkdir -p /usr/local/cmake + sudo mv /tmp/cmake-4.3.3-linux-x86_64/* /usr/local/cmake/ - # - name: Install Ninja - # run: | - # curl -sS -L -o /tmp/ninja.zip https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-linux.zip - # sudo unzip -d /usr/bin /tmp/ninja.zip + - name: Install Ninja + run: | + curl -sS -L -o /tmp/ninja.zip https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-linux.zip + sudo unzip -d /usr/bin /tmp/ninja.zip - # - name: Install Zig - # run: | - # curl -sS -L -o /tmp/zig.tar.xz https://ziglang.org/builds/zig-x86_64-linux-0.17.0-dev.813+2153f8143.tar.xz - # sudo mkdir -p /usr/local/zig - # tar -xvf /tmp/zig.tar.xz -C /tmp - # sudo mv /tmp/zig-x86_64-linux-0.17.0-dev.813+2153f8143/* /usr/local/zig + - name: Install Zig + run: | + curl -sS -L -o /tmp/zig.tar.xz https://ziglang.org/builds/zig-x86_64-linux-0.17.0-dev.813+2153f8143.tar.xz + sudo mkdir -p /usr/local/zig + tar -xvf /tmp/zig.tar.xz -C /tmp + sudo mv /tmp/zig-x86_64-linux-0.17.0-dev.813+2153f8143/* /usr/local/zig - # - name: Build release - # run: | - # cmake --preset static-release -B out - # cmake --build out + - name: Build release + run: | + cmake --preset static-release -B out + cmake --build out - # - name: Upload Linux artifact - # if: inputs.upload-artifacts - # uses: actions/upload-artifact@v7 - # with: - # name: Linux artifact - # path: out/suffer2gether + - name: Upload Linux artifact + if: ${{ inputs.upload-artifacts }} + uses: actions/upload-artifact@v7 + with: + name: Linux artifact + path: out/suffer2gether - # build-windows: - # if: needs.version.outputs.is_valid == 'true' - # runs-on: windows-2025-vs2026 - # needs: version - # defaults: - # run: - # shell: cmd - # steps: - # - name: Check out repository code - # uses: actions/checkout@v6 + build-windows: + if: ${{ needs.version.outputs.is_valid == 'true' }} + runs-on: windows-2025-vs2026 + needs: version + defaults: + run: + shell: cmd + steps: + - name: Check out repository code + uses: actions/checkout@v6 - # - name: Build release - # env: - # VERSION_MAJOR: ${{ needs.version.outputs.version_major }} - # VERSION_MINOR: ${{ needs.version.outputs.version_minor }} - # VERSION_PATCH: ${{ needs.version.outputs.version_patch }} - # run: | - # call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvars32.bat" - # echo VERSION_MAJOR %VERSION_MAJOR% - # echo VERSION_MINOR %VERSION_MINOR% - # echo VERSION_PATCH %VERSION_PATCH% - # cmake --preset windows-x86-release -B out - # cmake --build out + - name: Build release + env: + VERSION_MAJOR: ${{ needs.version.outputs.version_major }} + VERSION_MINOR: ${{ needs.version.outputs.version_minor }} + VERSION_PATCH: ${{ needs.version.outputs.version_patch }} + run: | + call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvars32.bat" + echo VERSION_MAJOR %VERSION_MAJOR% + echo VERSION_MINOR %VERSION_MINOR% + echo VERSION_PATCH %VERSION_PATCH% + cmake --preset windows-x86-release -B out + cmake --build out - # - name: Upload Windows MFC artifact - # if: inputs.upload-artifacts - # uses: actions/upload-artifact@v7 - # with: - # name: Windows MFC artifact - # path: out/suffer2gether.exe + - name: Upload Windows MFC artifact + if: ${{ inputs.upload-artifacts }} + uses: actions/upload-artifact@v7 + with: + name: Windows MFC artifact + path: out/suffer2gether.exe - # - name: Upload Windows CLI artifact - # if: inputs.upload-artifacts - # uses: actions/upload-artifact@v7 - # with: - # name: Windows CLI artifact - # path: out/suffer2gether-cli.exe + - name: Upload Windows CLI artifact + if: ${{ inputs.upload-artifacts }} + uses: actions/upload-artifact@v7 + with: + name: Windows CLI artifact + path: out/suffer2gether-cli.exe From 81ade758f25b19cf9e884585a527eaf85b141dbf Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 23:32:02 -0700 Subject: [PATCH 55/80] test --- .github/workflows/build.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index e9b8352..e77b4b9 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -28,8 +28,10 @@ jobs: VERSION: ${{ inputs.version || 'v1.0.0' }} run: | if ! grep -q -Eo 'v[0-9]+\.[0-9]+\.[0-9]+'; then + echo "Version ${VERSION} tag is not valid" echo "is_valid=false" >> "$GITHUB_OUTPUT" else + echo "Version ${VERSION} tag is valid" echo "is_valid=true" >> "$GITHUB_OUTPUT" fi echo ${VERSION} | awk -F'[v.]' '{print "version_major=" $2}' >> "$GITHUB_OUTPUT" From 602c10d859a9475ce240d85bd5d9a1d5929da278 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 23:34:58 -0700 Subject: [PATCH 56/80] test --- .github/workflows/build.yaml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index e77b4b9..0a5d47c 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -27,12 +27,10 @@ jobs: env: VERSION: ${{ inputs.version || 'v1.0.0' }} run: | - if ! grep -q -Eo 'v[0-9]+\.[0-9]+\.[0-9]+'; then - echo "Version ${VERSION} tag is not valid" - echo "is_valid=false" >> "$GITHUB_OUTPUT" - else - echo "Version ${VERSION} tag is valid" + if echo "${VERSION}" | grep -q -Eo 'v[0-9]+\.[0-9]+\.[0-9]+'; then echo "is_valid=true" >> "$GITHUB_OUTPUT" + else + echo "is_valid=false" >> "$GITHUB_OUTPUT" fi echo ${VERSION} | awk -F'[v.]' '{print "version_major=" $2}' >> "$GITHUB_OUTPUT" echo ${VERSION} | awk -F'[v.]' '{print "version_minor=" $3}' >> "$GITHUB_OUTPUT" From f1feeff93f69d39b474dc0edf065b0af5d92cbce Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 23:57:41 -0700 Subject: [PATCH 57/80] test --- .github/workflows/build.yaml | 3 ++ .github/workflows/release.yaml | 90 ++++++++++++++++------------------ 2 files changed, 44 insertions(+), 49 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 0a5d47c..1b9d762 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -11,6 +11,9 @@ on: version: required: true type: string + outputs: + is_valid: + value: ${{ jobs.version.outputs.is_valid }} jobs: diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 60a02d9..72a878c 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -9,60 +9,52 @@ on: # TODO: I need this to run only if it's on main and a tag like v1.0.0 jobs: - test: + build: + if: ${{ github.event.}} + uses: ./.github/workflows/build.yaml + with: + upload-artifacts: true + version: ${{ github.ref_name }} + + + package-and-release: + if: ${{ needs.build.outputs.is_valid }} runs-on: ubuntu-latest + needs: build steps: - - name: DEBUG + - name: Download artifacts + uses: actions/download-artifact@v8 + with: + path: release + merge-multiple: true + + - name: Create version file + env: + VERSION: ${{ github.ref_name }} run: | - echo ${{ github.event.head_ref }} - echo ${{ github.ref_name }} - echo ${{ github.ref_type }} - echo ${{ toJSON(github) }} - # build: - # if: ${{ github.event.}} - # uses: ./.github/workflows/build.yaml - # with: - # upload-artifacts: true - - - # package-and-release: - # runs-on: ubuntu-latest - # needs: - # - build - # steps: - # - name: Download artifacts - # uses: actions/download-artifact@v8 - # with: - # path: release - # merge-multiple: true - - # - name: Create version file - # env: - # VERSION: ${{ github.ref_name }} - # run: | - # ... + ... - # - name: Package Linux binaries - # env: - # RELEASE_FILE: suffer2gether-${{ github.ref_name }}-linux-x86_64.tgz - # run: | - # cd release - # chmod a+x ./suffer2gether - # tar -zcvf ./${RELEASE_FILE} ./suffer2gether - # sha256sum ${RELEASE_FILE} >> SHA256SUMS - - # - name: Package Windows binaries - # env: - # RELEASE_FILE: suffer2gether-${{ github.ref_name }}-windows-x86.zip - # run: | - # cd release - # zip -9 -D ./${RELEASE_FILE} ./suffer2gether.exe ./suffer2gether-cli.exe - # sha256sum ${RELEASE_FILE} >> SHA256SUMS + - name: Package Linux binaries + env: + RELEASE_FILE: suffer2gether-${{ github.ref_name }}-linux-x86_64.tgz + run: | + cd release + chmod a+x ./suffer2gether + tar -zcvf ./${RELEASE_FILE} ./suffer2gether + sha256sum ${RELEASE_FILE} >> SHA256SUMS + + - name: Package Windows binaries + env: + RELEASE_FILE: suffer2gether-${{ github.ref_name }}-windows-x86.zip + run: | + cd release + zip -9 -D ./${RELEASE_FILE} ./suffer2gether.exe ./suffer2gether-cli.exe + sha256sum ${RELEASE_FILE} >> SHA256SUMS - # - name: DEBUG - # run: | - # ls -la ./release - # cat ./release/SHA256SUMS + - name: DEBUG + run: | + ls -la ./release + cat ./release/SHA256SUMS # - name: Create release # run: From 5fd088b508f1438ce72560b80bae5f3cb31f6c1c Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Thu, 11 Jun 2026 23:58:45 -0700 Subject: [PATCH 58/80] test --- .github/workflows/release.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 72a878c..c162c6f 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -10,7 +10,6 @@ on: jobs: build: - if: ${{ github.event.}} uses: ./.github/workflows/build.yaml with: upload-artifacts: true From 3e3c5a3720b1807787a0b70e6a416ec9137cc794 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Fri, 12 Jun 2026 00:04:25 -0700 Subject: [PATCH 59/80] test --- .github/workflows/release.yaml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index c162c6f..adaf5e8 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -27,12 +27,6 @@ jobs: path: release merge-multiple: true - - name: Create version file - env: - VERSION: ${{ github.ref_name }} - run: | - ... - - name: Package Linux binaries env: RELEASE_FILE: suffer2gether-${{ github.ref_name }}-linux-x86_64.tgz From 2c30a4b47083adc05b07871feed8871c8857a16e Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Fri, 12 Jun 2026 00:05:23 -0700 Subject: [PATCH 60/80] test --- .github/workflows/release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index adaf5e8..92d69b2 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -17,7 +17,7 @@ jobs: package-and-release: - if: ${{ needs.build.outputs.is_valid }} + if: ${{ needs.build.outputs.is_valid == 'true' }} runs-on: ubuntu-latest needs: build steps: From 61df497d45df0a925eaa4e105b946045cb82eeba Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Fri, 12 Jun 2026 12:48:06 -0700 Subject: [PATCH 61/80] test --- .github/workflows/build.yaml | 45 ++++++++++++++++++++++++++-------- .github/workflows/release.yaml | 1 - 2 files changed, 35 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 1b9d762..23cc0af 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -50,27 +50,52 @@ jobs: - name: Set PATH run: | - echo "/usr/local/cmake/bin:/usr/local/zig:\$PATH" > $GITHUB_PATH + echo "~/.tools/cmake/bin:~/.tools/zig:~/.tools/ninja:\$PATH" > $GITHUB_PATH + - name: Cache CMake + id: linux-cmake-tools + uses: actions/cache@v4 + with: + path: ~/.tools/cmake + key: ${{ runner.os }}-cmake-4.3.3 + + - name: Cache Ninja + id: linux-ninja-tools + uses: actions/cache@v4 + with: + path: ~/.tools/ninja + key: ${{ runner.os }}-ninja-1.13.2 + + - name: Cache Zig + id: linux-zig-tools + uses: actions/cache@v4 + with: + path: ~/.tools/zig + key: ${{ runner.os }}-zig-0.17.0 + - name: Install CMake + if: steps.linux-cmake-tools.outputs.cache-hit != 'true' run: | curl -sS -L -o /tmp/cmake.tgz https://github.com/Kitware/CMake/releases/download/v4.3.3/cmake-4.3.3-linux-x86_64.tar.gz tar -zxvf /tmp/cmake.tgz -C /tmp - sudo mkdir -p /usr/local/cmake - sudo mv /tmp/cmake-4.3.3-linux-x86_64/* /usr/local/cmake/ + sudo mkdir -p ~/.tools/cmake + sudo mv /tmp/cmake-4.3.3-linux-x86_64/* ~/.tools/cmake/ - name: Install Ninja + if: steps.linux-ninja-tools.outputs.cache-hit != 'true' run: | curl -sS -L -o /tmp/ninja.zip https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-linux.zip - sudo unzip -d /usr/bin /tmp/ninja.zip + sudo mkdir -p ~/.tools/ninja + sudo unzip -d ~/.tools/ninja /tmp/ninja.zip - name: Install Zig + if: steps.linux-zig-tools.outputs.cache-hit != 'true' run: | curl -sS -L -o /tmp/zig.tar.xz https://ziglang.org/builds/zig-x86_64-linux-0.17.0-dev.813+2153f8143.tar.xz - sudo mkdir -p /usr/local/zig + sudo mkdir -p ~/.tools/zig tar -xvf /tmp/zig.tar.xz -C /tmp - sudo mv /tmp/zig-x86_64-linux-0.17.0-dev.813+2153f8143/* /usr/local/zig - + sudo mv /tmp/zig-x86_64-linux-0.17.0-dev.813+2153f8143/* ~/.tools/zig/ + - name: Build release run: | cmake --preset static-release -B out @@ -101,10 +126,10 @@ jobs: VERSION_MINOR: ${{ needs.version.outputs.version_minor }} VERSION_PATCH: ${{ needs.version.outputs.version_patch }} run: | + echo VERSION_MAJOR %VERSION_MAJOR% > version.txt + echo VERSION_MINOR %VERSION_MINOR% >> version.txt + echo VERSION_PATCH %VERSION_PATCH% >> version.txt call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvars32.bat" - echo VERSION_MAJOR %VERSION_MAJOR% - echo VERSION_MINOR %VERSION_MINOR% - echo VERSION_PATCH %VERSION_PATCH% cmake --preset windows-x86-release -B out cmake --build out diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 92d69b2..713d450 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -6,7 +6,6 @@ on: tags: - v* -# TODO: I need this to run only if it's on main and a tag like v1.0.0 jobs: build: From c18b7fe48c330c05cf22cc08955649006c98e9f6 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Fri, 12 Jun 2026 12:53:55 -0700 Subject: [PATCH 62/80] test --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 23cc0af..5091585 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -26,7 +26,7 @@ jobs: is_valid: ${{ steps.get_version.outputs.is_valid }} steps: - name: Create version file - id: get_version + id: get-version env: VERSION: ${{ inputs.version || 'v1.0.0' }} run: | From 6b2742eb1444616eee3dc07d1c17a3b8efcf3ade Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Fri, 12 Jun 2026 12:57:49 -0700 Subject: [PATCH 63/80] test --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 5091585..29189be 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -23,7 +23,7 @@ jobs: version_major: ${{ steps.get-version.outputs.version_major }} version_minor: ${{ steps.get-version.outputs.version_minor }} version_patch: ${{ steps.get-version.outputs.version_patch }} - is_valid: ${{ steps.get_version.outputs.is_valid }} + is_valid: ${{ steps.get-version.outputs.is_valid }} steps: - name: Create version file id: get-version From d3cea861c3010121ea49db29f33fda000460a514 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Fri, 12 Jun 2026 13:04:08 -0700 Subject: [PATCH 64/80] test --- .github/workflows/build.yaml | 16 ++++++++-------- .github/workflows/release.yaml | 3 ++- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 29189be..1d8c2ea 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -41,7 +41,7 @@ jobs: build-linux: - if: ${{ needs.version.outputs.is_valid == 'true' }} + if: needs.version.outputs.is_valid == 'true' runs-on: ubuntu-latest needs: version steps: @@ -54,21 +54,21 @@ jobs: - name: Cache CMake id: linux-cmake-tools - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: ~/.tools/cmake key: ${{ runner.os }}-cmake-4.3.3 - name: Cache Ninja id: linux-ninja-tools - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: ~/.tools/ninja key: ${{ runner.os }}-ninja-1.13.2 - name: Cache Zig id: linux-zig-tools - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: ~/.tools/zig key: ${{ runner.os }}-zig-0.17.0 @@ -102,7 +102,7 @@ jobs: cmake --build out - name: Upload Linux artifact - if: ${{ inputs.upload-artifacts }} + if: inputs.upload-artifacts uses: actions/upload-artifact@v7 with: name: Linux artifact @@ -110,7 +110,7 @@ jobs: build-windows: - if: ${{ needs.version.outputs.is_valid == 'true' }} + if: needs.version.outputs.is_valid == 'true' runs-on: windows-2025-vs2026 needs: version defaults: @@ -134,14 +134,14 @@ jobs: cmake --build out - name: Upload Windows MFC artifact - if: ${{ inputs.upload-artifacts }} + if: inputs.upload-artifacts uses: actions/upload-artifact@v7 with: name: Windows MFC artifact path: out/suffer2gether.exe - name: Upload Windows CLI artifact - if: ${{ inputs.upload-artifacts }} + if: inputs.upload-artifacts uses: actions/upload-artifact@v7 with: name: Windows CLI artifact diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 713d450..1d69274 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -16,7 +16,7 @@ jobs: package-and-release: - if: ${{ needs.build.outputs.is_valid == 'true' }} + if: needs.build.outputs.is_valid == 'true' runs-on: ubuntu-latest needs: build steps: @@ -48,6 +48,7 @@ jobs: ls -la ./release cat ./release/SHA256SUMS + # TODO: release # - name: Create release # run: From c2c3daae25b6d4eaa9e3fe61a79f9ef8c0a087bf Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Sun, 14 Jun 2026 17:11:33 -0700 Subject: [PATCH 65/80] test --- .github/workflows/build.yaml | 197 ++++++++++++++++++----------------- 1 file changed, 104 insertions(+), 93 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 1d8c2ea..fbd25b6 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -12,6 +12,12 @@ on: required: true type: string outputs: + version_major: + value: ${{ jobs.version.outputs.version_major }} + version_minor: + value: ${{ jobs.version.outputs.version_minor }} + version_patch: + value: ${{ jobs.version.outputs.version_patch }} is_valid: value: ${{ jobs.version.outputs.is_valid }} @@ -28,7 +34,7 @@ jobs: - name: Create version file id: get-version env: - VERSION: ${{ inputs.version || 'v1.0.0' }} + VERSION: ${{ inputs.version || 'v0.0.0' }} run: | if echo "${VERSION}" | grep -q -Eo 'v[0-9]+\.[0-9]+\.[0-9]+'; then echo "is_valid=true" >> "$GITHUB_OUTPUT" @@ -39,110 +45,115 @@ jobs: echo ${VERSION} | awk -F'[v.]' '{print "version_minor=" $3}' >> "$GITHUB_OUTPUT" echo ${VERSION} | awk -F'[v.]' '{print "version_patch=" $4}' >> "$GITHUB_OUTPUT" - - build-linux: - if: needs.version.outputs.is_valid == 'true' - runs-on: ubuntu-latest + debug: + run-on: ubuntu-latest needs: version - steps: - - name: Check out repository code - uses: actions/checkout@v6 + run: | + echo "${{ needs.version.outputs.version_major }}" + + # build-linux: + # if: needs.version.outputs.is_valid == 'true' + # runs-on: ubuntu-latest + # needs: version + # steps: + # - name: Check out repository code + # uses: actions/checkout@v6 - - name: Set PATH - run: | - echo "~/.tools/cmake/bin:~/.tools/zig:~/.tools/ninja:\$PATH" > $GITHUB_PATH + # - name: Set PATH + # run: | + # echo "~/.tools/cmake/bin:~/.tools/zig:~/.tools/ninja:\$PATH" > $GITHUB_PATH - - name: Cache CMake - id: linux-cmake-tools - uses: actions/cache@v5 - with: - path: ~/.tools/cmake - key: ${{ runner.os }}-cmake-4.3.3 + # - name: Cache CMake + # id: linux-cmake-tools + # uses: actions/cache@v5 + # with: + # path: ~/.tools/cmake + # key: ${{ runner.os }}-cmake-4.3.3 - - name: Cache Ninja - id: linux-ninja-tools - uses: actions/cache@v5 - with: - path: ~/.tools/ninja - key: ${{ runner.os }}-ninja-1.13.2 + # - name: Cache Ninja + # id: linux-ninja-tools + # uses: actions/cache@v5 + # with: + # path: ~/.tools/ninja + # key: ${{ runner.os }}-ninja-1.13.2 - - name: Cache Zig - id: linux-zig-tools - uses: actions/cache@v5 - with: - path: ~/.tools/zig - key: ${{ runner.os }}-zig-0.17.0 + # - name: Cache Zig + # id: linux-zig-tools + # uses: actions/cache@v5 + # with: + # path: ~/.tools/zig + # key: ${{ runner.os }}-zig-0.17.0 - - name: Install CMake - if: steps.linux-cmake-tools.outputs.cache-hit != 'true' - run: | - curl -sS -L -o /tmp/cmake.tgz https://github.com/Kitware/CMake/releases/download/v4.3.3/cmake-4.3.3-linux-x86_64.tar.gz - tar -zxvf /tmp/cmake.tgz -C /tmp - sudo mkdir -p ~/.tools/cmake - sudo mv /tmp/cmake-4.3.3-linux-x86_64/* ~/.tools/cmake/ + # - name: Install CMake + # if: steps.linux-cmake-tools.outputs.cache-hit != 'true' + # run: | + # curl -sS -L -o /tmp/cmake.tgz https://github.com/Kitware/CMake/releases/download/v4.3.3/cmake-4.3.3-linux-x86_64.tar.gz + # tar -zxvf /tmp/cmake.tgz -C /tmp + # sudo mkdir -p ~/.tools/cmake + # sudo mv /tmp/cmake-4.3.3-linux-x86_64/* ~/.tools/cmake/ - - name: Install Ninja - if: steps.linux-ninja-tools.outputs.cache-hit != 'true' - run: | - curl -sS -L -o /tmp/ninja.zip https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-linux.zip - sudo mkdir -p ~/.tools/ninja - sudo unzip -d ~/.tools/ninja /tmp/ninja.zip + # - name: Install Ninja + # if: steps.linux-ninja-tools.outputs.cache-hit != 'true' + # run: | + # curl -sS -L -o /tmp/ninja.zip https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-linux.zip + # sudo mkdir -p ~/.tools/ninja + # sudo unzip -d ~/.tools/ninja /tmp/ninja.zip - - name: Install Zig - if: steps.linux-zig-tools.outputs.cache-hit != 'true' - run: | - curl -sS -L -o /tmp/zig.tar.xz https://ziglang.org/builds/zig-x86_64-linux-0.17.0-dev.813+2153f8143.tar.xz - sudo mkdir -p ~/.tools/zig - tar -xvf /tmp/zig.tar.xz -C /tmp - sudo mv /tmp/zig-x86_64-linux-0.17.0-dev.813+2153f8143/* ~/.tools/zig/ + # - name: Install Zig + # if: steps.linux-zig-tools.outputs.cache-hit != 'true' + # run: | + # curl -sS -L -o /tmp/zig.tar.xz https://ziglang.org/builds/zig-x86_64-linux-0.17.0-dev.813+2153f8143.tar.xz + # sudo mkdir -p ~/.tools/zig + # tar -xvf /tmp/zig.tar.xz -C /tmp + # sudo mv /tmp/zig-x86_64-linux-0.17.0-dev.813+2153f8143/* ~/.tools/zig/ - - name: Build release - run: | - cmake --preset static-release -B out - cmake --build out + # - name: Build release + # run: | + # cmake --preset static-release -B out + # cmake --build out - - name: Upload Linux artifact - if: inputs.upload-artifacts - uses: actions/upload-artifact@v7 - with: - name: Linux artifact - path: out/suffer2gether + # - name: Upload Linux artifact + # if: inputs.upload-artifacts + # uses: actions/upload-artifact@v7 + # with: + # name: Linux artifact + # path: out/suffer2gether - build-windows: - if: needs.version.outputs.is_valid == 'true' - runs-on: windows-2025-vs2026 - needs: version - defaults: - run: - shell: cmd - steps: - - name: Check out repository code - uses: actions/checkout@v6 + # build-windows: + # if: needs.version.outputs.is_valid == 'true' + # runs-on: windows-2025-vs2026 + # needs: version + # defaults: + # run: + # shell: cmd + # steps: + # - name: Check out repository code + # uses: actions/checkout@v6 - - name: Build release - env: - VERSION_MAJOR: ${{ needs.version.outputs.version_major }} - VERSION_MINOR: ${{ needs.version.outputs.version_minor }} - VERSION_PATCH: ${{ needs.version.outputs.version_patch }} - run: | - echo VERSION_MAJOR %VERSION_MAJOR% > version.txt - echo VERSION_MINOR %VERSION_MINOR% >> version.txt - echo VERSION_PATCH %VERSION_PATCH% >> version.txt - call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvars32.bat" - cmake --preset windows-x86-release -B out - cmake --build out + # - name: Build release + # env: + # VERSION_MAJOR: ${{ needs.version.outputs.version_major }} + # VERSION_MINOR: ${{ needs.version.outputs.version_minor }} + # VERSION_PATCH: ${{ needs.version.outputs.version_patch }} + # run: | + # echo VERSION_MAJOR %VERSION_MAJOR% > version.txt + # echo VERSION_MINOR %VERSION_MINOR% >> version.txt + # echo VERSION_PATCH %VERSION_PATCH% >> version.txt + # call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvars32.bat" + # cmake --preset windows-x86-release -B out + # cmake --build out - - name: Upload Windows MFC artifact - if: inputs.upload-artifacts - uses: actions/upload-artifact@v7 - with: - name: Windows MFC artifact - path: out/suffer2gether.exe + # - name: Upload Windows MFC artifact + # if: inputs.upload-artifacts + # uses: actions/upload-artifact@v7 + # with: + # name: Windows MFC artifact + # path: out/suffer2gether.exe - - name: Upload Windows CLI artifact - if: inputs.upload-artifacts - uses: actions/upload-artifact@v7 - with: - name: Windows CLI artifact - path: out/suffer2gether-cli.exe + # - name: Upload Windows CLI artifact + # if: inputs.upload-artifacts + # uses: actions/upload-artifact@v7 + # with: + # name: Windows CLI artifact + # path: out/suffer2gether-cli.exe From a2bf3281ace489311354644640acefda260c66cb Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Sun, 14 Jun 2026 17:11:52 -0700 Subject: [PATCH 66/80] test --- .github/workflows/build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index fbd25b6..e121e3b 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -46,7 +46,7 @@ jobs: echo ${VERSION} | awk -F'[v.]' '{print "version_patch=" $4}' >> "$GITHUB_OUTPUT" debug: - run-on: ubuntu-latest + runs-on: ubuntu-latest needs: version run: | echo "${{ needs.version.outputs.version_major }}" From b2cfa7ff5e7338b0d61b251dee89a2ef29cca8b6 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Sun, 14 Jun 2026 17:12:33 -0700 Subject: [PATCH 67/80] test --- .github/workflows/build.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index e121e3b..48a271f 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -48,8 +48,10 @@ jobs: debug: runs-on: ubuntu-latest needs: version - run: | - echo "${{ needs.version.outputs.version_major }}" + steps: + - name: debug + run: | + echo "${{ needs.version.outputs.version_major }}" # build-linux: # if: needs.version.outputs.is_valid == 'true' From f94d07262fecd9d5c8a095944ed277a5002fd7ad Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Sun, 14 Jun 2026 17:15:12 -0700 Subject: [PATCH 68/80] test --- .github/workflows/build.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 48a271f..a005a46 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -34,7 +34,7 @@ jobs: - name: Create version file id: get-version env: - VERSION: ${{ inputs.version || 'v0.0.0' }} + VERSION: ${{ inputs.version || 'v1.0.0' }} run: | if echo "${VERSION}" | grep -q -Eo 'v[0-9]+\.[0-9]+\.[0-9]+'; then echo "is_valid=true" >> "$GITHUB_OUTPUT" @@ -46,8 +46,11 @@ jobs: echo ${VERSION} | awk -F'[v.]' '{print "version_patch=" $4}' >> "$GITHUB_OUTPUT" debug: - runs-on: ubuntu-latest + runs-on: windows-2025-vs2026 needs: version + defaults: + run: + shell: cmd steps: - name: debug run: | From fbbd3bf59c3beb3723d3a2482fde8e096db707e0 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Sun, 14 Jun 2026 17:36:08 -0700 Subject: [PATCH 69/80] test --- .github/workflows/build.yaml | 193 ++++++++++++++++----------------- .github/workflows/release.yaml | 32 ++++-- 2 files changed, 114 insertions(+), 111 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index a005a46..3188e58 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -45,120 +45,111 @@ jobs: echo ${VERSION} | awk -F'[v.]' '{print "version_minor=" $3}' >> "$GITHUB_OUTPUT" echo ${VERSION} | awk -F'[v.]' '{print "version_patch=" $4}' >> "$GITHUB_OUTPUT" - debug: - runs-on: windows-2025-vs2026 + build-linux: + if: needs.version.outputs.is_valid == 'true' + runs-on: ubuntu-latest needs: version - defaults: - run: - shell: cmd steps: - - name: debug - run: | - echo "${{ needs.version.outputs.version_major }}" - - # build-linux: - # if: needs.version.outputs.is_valid == 'true' - # runs-on: ubuntu-latest - # needs: version - # steps: - # - name: Check out repository code - # uses: actions/checkout@v6 + - name: Check out repository code + uses: actions/checkout@v6 - # - name: Set PATH - # run: | - # echo "~/.tools/cmake/bin:~/.tools/zig:~/.tools/ninja:\$PATH" > $GITHUB_PATH + - name: Set PATH + run: | + echo "~/.tools/cmake/bin:~/.tools/zig:~/.tools/ninja:\$PATH" > $GITHUB_PATH - # - name: Cache CMake - # id: linux-cmake-tools - # uses: actions/cache@v5 - # with: - # path: ~/.tools/cmake - # key: ${{ runner.os }}-cmake-4.3.3 + - name: Cache CMake + id: linux-cmake-tools + uses: actions/cache@v5 + with: + path: ~/.tools/cmake + key: ${{ runner.os }}-cmake-4.3.3 - # - name: Cache Ninja - # id: linux-ninja-tools - # uses: actions/cache@v5 - # with: - # path: ~/.tools/ninja - # key: ${{ runner.os }}-ninja-1.13.2 + - name: Cache Ninja + id: linux-ninja-tools + uses: actions/cache@v5 + with: + path: ~/.tools/ninja + key: ${{ runner.os }}-ninja-1.13.2 - # - name: Cache Zig - # id: linux-zig-tools - # uses: actions/cache@v5 - # with: - # path: ~/.tools/zig - # key: ${{ runner.os }}-zig-0.17.0 + - name: Cache Zig + id: linux-zig-tools + uses: actions/cache@v5 + with: + path: ~/.tools/zig + key: ${{ runner.os }}-zig-0.17.0 - # - name: Install CMake - # if: steps.linux-cmake-tools.outputs.cache-hit != 'true' - # run: | - # curl -sS -L -o /tmp/cmake.tgz https://github.com/Kitware/CMake/releases/download/v4.3.3/cmake-4.3.3-linux-x86_64.tar.gz - # tar -zxvf /tmp/cmake.tgz -C /tmp - # sudo mkdir -p ~/.tools/cmake - # sudo mv /tmp/cmake-4.3.3-linux-x86_64/* ~/.tools/cmake/ + - name: Install CMake + if: steps.linux-cmake-tools.outputs.cache-hit != 'true' + env: + CMAKE_URL: https://github.com/Kitware/CMake/releases/download/v4.3.3/cmake-4.3.3-linux-x86_64.tar.gz + run: | + curl -sS -L -o /tmp/cmake.tgz "${CMAKE_URL}" + tar -zxvf /tmp/cmake.tgz -C /tmp + sudo mkdir -p ~/.tools/cmake + sudo mv /tmp/cmake-4.3.3-linux-x86_64/* ~/.tools/cmake/ - # - name: Install Ninja - # if: steps.linux-ninja-tools.outputs.cache-hit != 'true' - # run: | - # curl -sS -L -o /tmp/ninja.zip https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-linux.zip - # sudo mkdir -p ~/.tools/ninja - # sudo unzip -d ~/.tools/ninja /tmp/ninja.zip + - name: Install Ninja + if: steps.linux-ninja-tools.outputs.cache-hit != 'true' + env: + NINJA_URL: https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-linux.zip + run: | + curl -sS -L -o /tmp/ninja.zip "${NINJA_URL}" + sudo mkdir -p ~/.tools/ninja + sudo unzip -d ~/.tools/ninja /tmp/ninja.zip - # - name: Install Zig - # if: steps.linux-zig-tools.outputs.cache-hit != 'true' - # run: | - # curl -sS -L -o /tmp/zig.tar.xz https://ziglang.org/builds/zig-x86_64-linux-0.17.0-dev.813+2153f8143.tar.xz - # sudo mkdir -p ~/.tools/zig - # tar -xvf /tmp/zig.tar.xz -C /tmp - # sudo mv /tmp/zig-x86_64-linux-0.17.0-dev.813+2153f8143/* ~/.tools/zig/ + - name: Install Zig + if: steps.linux-zig-tools.outputs.cache-hit != 'true' + env: + ZIG_URL: https://ziglang.org/builds/zig-x86_64-linux-0.17.0-dev.813+2153f8143.tar.xz + run: | + curl -sS -L -o /tmp/zig.tar.xz "${ZIG_URL}" + sudo mkdir -p ~/.tools/zig + tar -xvf /tmp/zig.tar.xz -C /tmp + sudo mv /tmp/zig-x86_64-linux-0.17.0-dev.813+2153f8143/* ~/.tools/zig/ - # - name: Build release - # run: | - # cmake --preset static-release -B out - # cmake --build out + - name: Build release + run: | + cmake --preset static-release -B out + cmake --build out - # - name: Upload Linux artifact - # if: inputs.upload-artifacts - # uses: actions/upload-artifact@v7 - # with: - # name: Linux artifact - # path: out/suffer2gether + - name: Upload Linux artifact + if: inputs.upload-artifacts + uses: actions/upload-artifact@v7 + with: + name: Linux artifact + path: out/suffer2gether - # build-windows: - # if: needs.version.outputs.is_valid == 'true' - # runs-on: windows-2025-vs2026 - # needs: version - # defaults: - # run: - # shell: cmd - # steps: - # - name: Check out repository code - # uses: actions/checkout@v6 + build-windows: + if: needs.version.outputs.is_valid == 'true' + runs-on: windows-2025-vs2026 + needs: version + defaults: + run: + shell: cmd + steps: + - name: Check out repository code + uses: actions/checkout@v6 - # - name: Build release - # env: - # VERSION_MAJOR: ${{ needs.version.outputs.version_major }} - # VERSION_MINOR: ${{ needs.version.outputs.version_minor }} - # VERSION_PATCH: ${{ needs.version.outputs.version_patch }} - # run: | - # echo VERSION_MAJOR %VERSION_MAJOR% > version.txt - # echo VERSION_MINOR %VERSION_MINOR% >> version.txt - # echo VERSION_PATCH %VERSION_PATCH% >> version.txt - # call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvars32.bat" - # cmake --preset windows-x86-release -B out - # cmake --build out + - name: Build release + run: | + echo "VERSION_MAJOR ${{ needs.version.outputs.version_major }}" > version.txt + echo "VERSION_MINOR ${{ needs.version.outputs.version_minor }}" >> version.txt + echo "VERSION_PATCH ${{ needs.version.outputs.version_patch }}" >> version.txt + call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvars32.bat" + cmake --preset windows-x86-release -B out + cmake --build out - # - name: Upload Windows MFC artifact - # if: inputs.upload-artifacts - # uses: actions/upload-artifact@v7 - # with: - # name: Windows MFC artifact - # path: out/suffer2gether.exe + - name: Upload Windows MFC artifact + if: inputs.upload-artifacts + uses: actions/upload-artifact@v7 + with: + name: Windows MFC artifact + path: out/suffer2gether.exe - # - name: Upload Windows CLI artifact - # if: inputs.upload-artifacts - # uses: actions/upload-artifact@v7 - # with: - # name: Windows CLI artifact - # path: out/suffer2gether-cli.exe + - name: Upload Windows CLI artifact + if: inputs.upload-artifacts + uses: actions/upload-artifact@v7 + with: + name: Windows CLI artifact + path: out/suffer2gether-cli.exe diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 1d69274..fe4cb5b 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -19,6 +19,8 @@ jobs: if: needs.build.outputs.is_valid == 'true' runs-on: ubuntu-latest needs: build + permissions: + contents: write steps: - name: Download artifacts uses: actions/download-artifact@v8 @@ -26,6 +28,16 @@ jobs: path: release merge-multiple: true + - name: Create release notes + env: + VERSION_MAJOR: ${{ needs.build.outputs.version_major }} + VERSION_MINOR: ${{ needs.build.outputs.version_minor }} + VERSION_PATCH: ${{ needs.build.outputs.version_patch }} + run: | + awk -v ver="${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" \ + '/^\[/ { if (found) { exit } if ($0 ~ "\\[" ver "\\]") { found=1 } } found' \ + ./CHANGELOG.md > ./release_notes.md + - name: Package Linux binaries env: RELEASE_FILE: suffer2gether-${{ github.ref_name }}-linux-x86_64.tgz @@ -43,14 +55,14 @@ jobs: zip -9 -D ./${RELEASE_FILE} ./suffer2gether.exe ./suffer2gether-cli.exe sha256sum ${RELEASE_FILE} >> SHA256SUMS - - name: DEBUG + - name: Create release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + LINUX_FILE: suffer2gether-${{ github.ref_name }}-linux-x86_64.tgz + WINDOWS_FILE: suffer2gether-${{ github.ref_name }}-windows-x86.zip run: | - ls -la ./release - cat ./release/SHA256SUMS - - # TODO: release - # - name: Create release - # run: - - - # gh release create -F releasenotes.md --target main -t "title" 'file.zipdesc' 'file.zipdesc' \ No newline at end of file + cd release + gh release create "${{ github.ref_name }}" -F ./release_notes.md --title "${{ github.ref_name }}" \ + './${LINUX_FILE}#Linux x86_64 static binary' \ + './${WINDOWS_FILE}Windows x86 GUI and CLI' \ + './SHA256SUMS#SHA256 hashes for each release file' From a64eb41111d12a181c195507a25d22795a956516 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Sun, 14 Jun 2026 17:47:05 -0700 Subject: [PATCH 70/80] test --- CHANGELOG.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..bc4514b --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,30 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/2.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [1.2.0] - 2026-06-14 + +1.2.0 is the first release to include a change log. The main focus of this release was a command line interface that +will work in Windows and multiple distros of Linux. The build system has been moved over to CMake and should be much +easier to build from source on different systems. + +### Added + +- Mutex to limit running instances to one. +- Windows CLI build. The patch can now be applied using the Windows command line. +- Linux CLI build. The release will be statically linked for a wider range of compatible distros, including Steam Deck. +- Dockerfile and scripts to help building the linux binary locally. + +### Changed + +- Renamed and reorganized files and directories. +- Changed build system to CMake. + +### Removed + +- Removed Visual Studio project and solution files in favor of CMake. From b228d1e1bf9e4fcf9bcdc53ccf938abb85e52b6e Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Sun, 14 Jun 2026 18:04:02 -0700 Subject: [PATCH 71/80] test --- .github/workflows/release.yaml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index fe4cb5b..d993f1b 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -34,9 +34,13 @@ jobs: VERSION_MINOR: ${{ needs.build.outputs.version_minor }} VERSION_PATCH: ${{ needs.build.outputs.version_patch }} run: | - awk -v ver="${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" \ - '/^\[/ { if (found) { exit } if ($0 ~ "\\[" ver "\\]") { found=1 } } found' \ - ./CHANGELOG.md > ./release_notes.md + if [ ! -f ./CHANGELOG.md ]; then + touch ./release_notes.md + else + awk -v ver="${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" \ + '/^\[/ { if (found) { exit } if ($0 ~ "\\[" ver "\\]") { found=1 } } found' \ + ./CHANGELOG.md > ./release_notes.md + fi - name: Package Linux binaries env: From 93648f1a4994c9ad94351cce5545a9d3671e5d96 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Sun, 14 Jun 2026 18:04:15 -0700 Subject: [PATCH 72/80] test --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bc4514b..3b45ada 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,7 @@ easier to build from source on different systems. - Renamed and reorganized files and directories. - Changed build system to CMake. +- Changed from the Windows four-part version number to semantic versioning. ### Removed From 0e0aa7eeb044025104cd43af1d43fcd4ce32323d Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Sun, 14 Jun 2026 18:13:15 -0700 Subject: [PATCH 73/80] test --- .github/workflows/release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index d993f1b..5716ff7 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -68,5 +68,5 @@ jobs: cd release gh release create "${{ github.ref_name }}" -F ./release_notes.md --title "${{ github.ref_name }}" \ './${LINUX_FILE}#Linux x86_64 static binary' \ - './${WINDOWS_FILE}Windows x86 GUI and CLI' \ + './${WINDOWS_FILE}#Windows x86 GUI and CLI' \ './SHA256SUMS#SHA256 hashes for each release file' From 0045e5e9559468c4097c27cc8e0e1ffd038b1764 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Sun, 14 Jun 2026 18:21:18 -0700 Subject: [PATCH 74/80] test --- .github/workflows/release.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 5716ff7..fd12881 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -67,6 +67,6 @@ jobs: run: | cd release gh release create "${{ github.ref_name }}" -F ./release_notes.md --title "${{ github.ref_name }}" \ - './${LINUX_FILE}#Linux x86_64 static binary' \ - './${WINDOWS_FILE}#Windows x86 GUI and CLI' \ - './SHA256SUMS#SHA256 hashes for each release file' + "./${LINUX_FILE}#Linux x86_64 static binary" \ + "./${WINDOWS_FILE}#Windows x86 GUI and CLI" \ + "./SHA256SUMS#SHA256 hashes for each release file" From a487fcc2a1d8c0033e4bd8c46d725c9baea188fd Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Sun, 14 Jun 2026 18:28:34 -0700 Subject: [PATCH 75/80] test --- .github/workflows/build.xxx | 144 --------------------------------- .github/workflows/release.yaml | 3 + 2 files changed, 3 insertions(+), 144 deletions(-) delete mode 100644 .github/workflows/build.xxx diff --git a/.github/workflows/build.xxx b/.github/workflows/build.xxx deleted file mode 100644 index b5e01cd..0000000 --- a/.github/workflows/build.xxx +++ /dev/null @@ -1,144 +0,0 @@ ---- -name: Build Check -run-name: Build -on: - pull_request: - push: - branches: - - main - -jobs: - version: - runs-on: ubuntu-latest - outputs: - version: ${{ steps.get-version.outputs.version }} - exists: ${{ steps.check-tag.outputs.exists }} - steps: - - name: Check out code - uses: actions/checkout@v6 - - - name: Get version information - id: get-version - run: | - VERSION_MAJOR=$(awk '$1 == "VERSION_MAJOR" { print $2; exit }' version.txt) - VERSION_MINOR=$(awk '$1 == "VERSION_MINOR" { print $2; exit }' version.txt) - VERSION_PATCH=$(awk '$1 == "VERSION_PATCH" { print $2; exit }' version.txt) - echo "version=v${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" >> "$GITHUB_OUTPUT" - - - name: Check if tag exists - id: check-tag - run: | - if git rev-parse -q --verify "refs/tags/${{ steps.get-version.outputs.version }}"; then - echo "exists=true" >> "$GITHUB_OUTPUT" - else - echo "exists=false" >> "$GITHUB_OUTPUT" - fi - - build-linux: - runs-on: ubuntu-latest - steps: - - name: Check out repository code - uses: actions/checkout@v6 - - - name: Set PATH - run: | - echo "/usr/local/cmake/bin:/usr/local/zig:\$PATH" > $GITHUB_PATH - - - name: Install CMake - run: | - curl -sS -L -o /tmp/cmake.tgz https://github.com/Kitware/CMake/releases/download/v4.3.3/cmake-4.3.3-linux-x86_64.tar.gz - tar -zxvf /tmp/cmake.tgz -C /tmp - sudo mkdir -p /usr/local/cmake - sudo mv /tmp/cmake-4.3.3-linux-x86_64/* /usr/local/cmake/ - - - name: Install Ninja - run: | - curl -sS -L -o /tmp/ninja.zip https://github.com/ninja-build/ninja/releases/download/v1.13.2/ninja-linux.zip - sudo unzip -d /usr/bin /tmp/ninja.zip - - - name: Install Zig - run: | - curl -sS -L -o /tmp/zig.tar.xz https://ziglang.org/builds/zig-x86_64-linux-0.17.0-dev.813+2153f8143.tar.xz - sudo mkdir -p /usr/local/zig - tar -xvf /tmp/zig.tar.xz -C /tmp - sudo mv /tmp/zig-x86_64-linux-0.17.0-dev.813+2153f8143/* /usr/local/zig - - - name: Build release - run: | - cmake --preset static-release -B out - cmake --build out - - - name: Upload Linux artifact - uses: actions/upload-artifact@v7 - with: - name: Linux artifact - path: out/suffer2gether - - - build-windows: - runs-on: windows-2025-vs2026 - defaults: - run: - shell: cmd - steps: - - name: Check out repository code - uses: actions/checkout@v6 - - - name: Build release - run: | - call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvars32.bat" - cmake --preset windows-x86-release -B out - cmake --build out - - - name: Upload Windows MFC artifact - uses: actions/upload-artifact@v7 - with: - name: Windows MFC artifact - path: out/suffer2gether.exe - - - name: Upload Windows CLI artifact - uses: actions/upload-artifact@v7 - with: - name: Windows CLI artifact - path: out/suffer2gether-cli.exe - - - # TODO: switch this back to 'push' - package-and-release: - if: >- - github.event_name == 'pull_request' && - '${{ needs.version.outputs.exists }}' == 'false' - runs-on: ubuntu-latest - needs: - - version - - build-linux - - build-windows - steps: - - name: Download artifacts - uses: actions/download-artifact@v8 - with: - path: release - merge-multiple: true - - - name: Package Linux binaries - env: - RELEASE_FILE: suffer2gether-${{ needs.version.outputs.version }}-linux-x86_64.tgz - run: | - cd release - chmod a+x ./suffer2gether - tar -zcvf ./${RELEASE_FILE} ./suffer2gether - sha256sum ${RELEASE_FILE} >> SHA256SUMS - - - name: Package Windows binaries - env: - RELEASE_FILE: suffer2gether-${{ needs.version.outputs.version }}-windows-x86.zip - run: | - cd release - zip -9 -D ./${RELEASE_FILE} ./suffer2gether.exe ./suffer2gether-cli.exe - sha256sum ${RELEASE_FILE} >> SHA256SUMS - - - name: Create release - run: - - - # gh release create -F releasenotes.md --target main -t "title" 'file.zipdesc' 'file.zipdesc' \ No newline at end of file diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index fd12881..ee4fb20 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -22,6 +22,9 @@ jobs: permissions: contents: write steps: + - name: Check out repository code + uses: actions/checkout@v6 + - name: Download artifacts uses: actions/download-artifact@v8 with: From bbfd296f1441a84bf1394ed6474758c248a8fbdf Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Sun, 14 Jun 2026 18:38:09 -0700 Subject: [PATCH 76/80] test --- .github/workflows/release.yaml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index ee4fb20..48969e2 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -68,8 +68,7 @@ jobs: LINUX_FILE: suffer2gether-${{ github.ref_name }}-linux-x86_64.tgz WINDOWS_FILE: suffer2gether-${{ github.ref_name }}-windows-x86.zip run: | - cd release gh release create "${{ github.ref_name }}" -F ./release_notes.md --title "${{ github.ref_name }}" \ - "./${LINUX_FILE}#Linux x86_64 static binary" \ - "./${WINDOWS_FILE}#Windows x86 GUI and CLI" \ - "./SHA256SUMS#SHA256 hashes for each release file" + "./release/${LINUX_FILE}#Linux x86_64 static binary" \ + "./release/${WINDOWS_FILE}#Windows x86 GUI and CLI" \ + "./release/SHA256SUMS#SHA256 hashes for each release file" From d09704d02f2944cb81b0cad929f29b7519152093 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Sun, 14 Jun 2026 18:46:33 -0700 Subject: [PATCH 77/80] test --- .github/workflows/release.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 48969e2..1491c2a 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -38,6 +38,7 @@ jobs: VERSION_PATCH: ${{ needs.build.outputs.version_patch }} run: | if [ ! -f ./CHANGELOG.md ]; then + echo "NO CHANGELOG" touch ./release_notes.md else awk -v ver="${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" \ @@ -68,7 +69,8 @@ jobs: LINUX_FILE: suffer2gether-${{ github.ref_name }}-linux-x86_64.tgz WINDOWS_FILE: suffer2gether-${{ github.ref_name }}-windows-x86.zip run: | + cat ./release_notes.md gh release create "${{ github.ref_name }}" -F ./release_notes.md --title "${{ github.ref_name }}" \ - "./release/${LINUX_FILE}#Linux x86_64 static binary" \ - "./release/${WINDOWS_FILE}#Windows x86 GUI and CLI" \ - "./release/SHA256SUMS#SHA256 hashes for each release file" + "./release/${LINUX_FILE}" \ + "./release/${WINDOWS_FILE}" \ + "./release/SHA256SUMS" From 339003669d8370db86191aa4fe87c1f698b8e7b3 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Sun, 14 Jun 2026 19:36:28 -0700 Subject: [PATCH 78/80] test --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b45ada..b957ad5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,9 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -## [1.2.0] - 2026-06-14 +## [1.2.1] - 2026-06-14 -1.2.0 is the first release to include a change log. The main focus of this release was a command line interface that +1.2.1 is the first release to include a change log. The main focus of this release was a command line interface that will work in Windows and multiple distros of Linux. The build system has been moved over to CMake and should be much easier to build from source on different systems. From f31f40d52d6e2d41f50b6ede2b7ceaa71ab740fe Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Sun, 14 Jun 2026 19:47:03 -0700 Subject: [PATCH 79/80] test --- .github/workflows/release.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 1491c2a..2042a66 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -42,7 +42,7 @@ jobs: touch ./release_notes.md else awk -v ver="${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" \ - '/^\[/ { if (found) { exit } if ($0 ~ "\\[" ver "\\]") { found=1 } } found' \ + '/^## \[/ { if (found) { exit } if ($0 ~ "\\[" ver "\\]") { found=1 } } found' \ ./CHANGELOG.md > ./release_notes.md fi From ad23fd0aa0b8b33d5d4485cf421ef1c42bc79d17 Mon Sep 17 00:00:00 2001 From: Nathan Martini Date: Sun, 14 Jun 2026 19:53:11 -0700 Subject: [PATCH 80/80] test --- .github/workflows/release.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 2042a66..91b829d 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -38,7 +38,6 @@ jobs: VERSION_PATCH: ${{ needs.build.outputs.version_patch }} run: | if [ ! -f ./CHANGELOG.md ]; then - echo "NO CHANGELOG" touch ./release_notes.md else awk -v ver="${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" \ @@ -69,7 +68,6 @@ jobs: LINUX_FILE: suffer2gether-${{ github.ref_name }}-linux-x86_64.tgz WINDOWS_FILE: suffer2gether-${{ github.ref_name }}-windows-x86.zip run: | - cat ./release_notes.md gh release create "${{ github.ref_name }}" -F ./release_notes.md --title "${{ github.ref_name }}" \ "./release/${LINUX_FILE}" \ "./release/${WINDOWS_FILE}" \