From 38790a2ce980e6d3e7892eafa3c874d16e718ada Mon Sep 17 00:00:00 2001 From: Jaremy Creechley Date: Wed, 15 Apr 2026 20:51:07 +0300 Subject: [PATCH 01/15] simplify ci --- .github/workflows/build-full.yml | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/.github/workflows/build-full.yml b/.github/workflows/build-full.yml index 062df8e..bbb9d4c 100644 --- a/.github/workflows/build-full.yml +++ b/.github/workflows/build-full.yml @@ -80,25 +80,8 @@ jobs: key: ${{ runner.os }}-${{ hashFiles('siwin.nimble') }} - name: Install Deps - if: runner.os == 'Linux' - run: | - # sync deps - nimble install -y -d --feature:dev - nimble installTestDeps - - - name: Install Deps - if: runner.os == 'macOS' - run: | - # sync deps - nimble install -y -d --feature:dev - nimble installTestDeps - - - name: Install Deps - if: runner.os == 'Windows' run: | - # sync deps nimble install -y -d --feature:dev - nimble installTestDeps - name: Build Tests if: runner.os == 'Linux' @@ -111,7 +94,7 @@ jobs: VK_ICD_FILENAMES: "/usr/share/vulkan/icd.d/lvp_icd.x86_64.json" VK_DRIVER_FILES: "/usr/share/vulkan/icd.d/lvp_icd.x86_64.json" run: | - xvfb-run -a -s "-screen 0 1280x1024x24" nimble test + xvfb-run -a -s "-screen 0 1280x1024x24" nimble --feature:dev test # - name: Build Tests (Vulkan Compile Check) # if: runner.os == 'Linux' From 429c4c9cbe7d76506042c31fc8e118ef96f3ddee Mon Sep 17 00:00:00 2001 From: Jaremy Creechley Date: Wed, 15 Apr 2026 20:53:15 +0300 Subject: [PATCH 02/15] install newer nimble --- .github/workflows/build-full.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-full.yml b/.github/workflows/build-full.yml index bbb9d4c..23961f2 100644 --- a/.github/workflows/build-full.yml +++ b/.github/workflows/build-full.yml @@ -65,12 +65,15 @@ jobs: with: nim-version: ${{ matrix.nimversion }} - - name: Install Atlas + - name: Install Tools run: | - nimble install 'https://github.com/nim-lang/atlas@#head' + # nimble install 'https://github.com/nim-lang/atlas@#head' + nimble install 'https://github.com/nim-lang/nimble' echo "Nim:: " nim -v echo "Nimble:: " + nimble -v + echo "Atlas:: " atlas -v - name: Cache packages From d80c9cdbac9a845f62ba5596d7f7b20ade05fce8 Mon Sep 17 00:00:00 2001 From: Jaremy Creechley Date: Wed, 15 Apr 2026 20:54:41 +0300 Subject: [PATCH 03/15] cache nimble files --- .github/workflows/build-full.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-full.yml b/.github/workflows/build-full.yml index 23961f2..cb63e6f 100644 --- a/.github/workflows/build-full.yml +++ b/.github/workflows/build-full.yml @@ -79,7 +79,9 @@ jobs: - name: Cache packages uses: actions/cache@v3 with: - path: deps/ + path: | + deps/ + ~/.nimble/ key: ${{ runner.os }}-${{ hashFiles('siwin.nimble') }} - name: Install Deps From 0e0115fbdb4f1e510ddff5696e9a24d48a725ea1 Mon Sep 17 00:00:00 2001 From: Jaremy Creechley Date: Wed, 15 Apr 2026 20:57:17 +0300 Subject: [PATCH 04/15] try nimble feature on all test --- .github/workflows/build-full.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-full.yml b/.github/workflows/build-full.yml index cb63e6f..430ef7b 100644 --- a/.github/workflows/build-full.yml +++ b/.github/workflows/build-full.yml @@ -111,14 +111,14 @@ jobs: - name: Build Tests if: runner.os == 'macOS' run: | - nimble test + nimble --feature:dev test - name: Build Tests if: runner.os == 'Windows' env: NIMFLAGS: "-d:siwin.vulkan=off" run: | - nimble test + nimble --feature:dev test - name: Build Tests (Vulkan Run Check) if: runner.os == 'Windows' From 2d24f22ea2e0eff4b92bb13e21aa127c7f028bcc Mon Sep 17 00:00:00 2001 From: Jaremy Creechley Date: Wed, 15 Apr 2026 21:02:19 +0300 Subject: [PATCH 05/15] try nimble feature on all test --- .github/workflows/build-full.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-full.yml b/.github/workflows/build-full.yml index 430ef7b..a5643bd 100644 --- a/.github/workflows/build-full.yml +++ b/.github/workflows/build-full.yml @@ -67,8 +67,11 @@ jobs: - name: Install Tools run: | - # nimble install 'https://github.com/nim-lang/atlas@#head' - nimble install 'https://github.com/nim-lang/nimble' + # nimble install "https://github.com/nim-lang/atlas@#head" + nimble install "https://github.com/nim-lang/nimble@#head" + + - name: Tool Versions + run: | echo "Nim:: " nim -v echo "Nimble:: " From 02802968c8b6d4ea56dd79eb9453936ceadd490f Mon Sep 17 00:00:00 2001 From: Jaremy Creechley Date: Wed, 15 Apr 2026 21:03:37 +0300 Subject: [PATCH 06/15] try nimble feature on all test --- .github/workflows/build-full.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-full.yml b/.github/workflows/build-full.yml index a5643bd..446a804 100644 --- a/.github/workflows/build-full.yml +++ b/.github/workflows/build-full.yml @@ -89,7 +89,7 @@ jobs: - name: Install Deps run: | - nimble install -y -d --feature:dev + nimble install -y -d --features:dev - name: Build Tests if: runner.os == 'Linux' @@ -102,7 +102,7 @@ jobs: VK_ICD_FILENAMES: "/usr/share/vulkan/icd.d/lvp_icd.x86_64.json" VK_DRIVER_FILES: "/usr/share/vulkan/icd.d/lvp_icd.x86_64.json" run: | - xvfb-run -a -s "-screen 0 1280x1024x24" nimble --feature:dev test + xvfb-run -a -s "-screen 0 1280x1024x24" nimble --features:dev test # - name: Build Tests (Vulkan Compile Check) # if: runner.os == 'Linux' @@ -114,14 +114,14 @@ jobs: - name: Build Tests if: runner.os == 'macOS' run: | - nimble --feature:dev test + nimble --features:dev test - name: Build Tests if: runner.os == 'Windows' env: NIMFLAGS: "-d:siwin.vulkan=off" run: | - nimble --feature:dev test + nimble --features:dev test - name: Build Tests (Vulkan Run Check) if: runner.os == 'Windows' From 81c972e74ed97e462a3a4cb6224f4ec4bedac480 Mon Sep 17 00:00:00 2001 From: Jaremy Creechley Date: Wed, 15 Apr 2026 21:09:21 +0300 Subject: [PATCH 07/15] paths --- .github/workflows/build-full.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-full.yml b/.github/workflows/build-full.yml index 446a804..3ba4409 100644 --- a/.github/workflows/build-full.yml +++ b/.github/workflows/build-full.yml @@ -50,8 +50,8 @@ jobs: if: runner.os != 'Windows' run: | curl -fsSL https://codeberg.org/janAkali/grabnim/raw/branch/master/misc/install.sh | sh - echo "$HOME/.local/share/grabnim/current/bin" >> $GITHUB_PATH echo "$HOME/.nimble/bin" >> $GITHUB_PATH + echo "$HOME/.local/share/grabnim/current/bin" >> $GITHUB_PATH - name: Install Nim if: runner.os != 'Windows' From b4d35c5724a31b5594964e9846b159bf9758a80d Mon Sep 17 00:00:00 2001 From: Jaremy Creechley Date: Wed, 15 Apr 2026 21:12:59 +0300 Subject: [PATCH 08/15] tool setup --- .github/workflows/build-full.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-full.yml b/.github/workflows/build-full.yml index 3ba4409..b826768 100644 --- a/.github/workflows/build-full.yml +++ b/.github/workflows/build-full.yml @@ -50,8 +50,7 @@ jobs: if: runner.os != 'Windows' run: | curl -fsSL https://codeberg.org/janAkali/grabnim/raw/branch/master/misc/install.sh | sh - echo "$HOME/.nimble/bin" >> $GITHUB_PATH - echo "$HOME/.local/share/grabnim/current/bin" >> $GITHUB_PATH + echo "PATH=$HOME/.nimble/bin:$HOME/.local/share/grabnim/current/bin:$PATH" >> $GITHUB_ENV - name: Install Nim if: runner.os != 'Windows' @@ -65,6 +64,11 @@ jobs: with: nim-version: ${{ matrix.nimversion }} + - name: Add Nimble Bin To PATH + if: runner.os == 'Windows' + run: | + echo "PATH=$HOME/.nimble/bin:$PATH" >> $GITHUB_ENV + - name: Install Tools run: | # nimble install "https://github.com/nim-lang/atlas@#head" @@ -76,6 +80,8 @@ jobs: nim -v echo "Nimble:: " nimble -v + echo "Nimble::path " + which `nimble` echo "Atlas:: " atlas -v From 08e35ff1a7e212c28478926e62c745d8de46ed5a Mon Sep 17 00:00:00 2001 From: Jaremy Creechley Date: Wed, 15 Apr 2026 21:13:49 +0300 Subject: [PATCH 09/15] tool setup --- .github/workflows/build-full.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-full.yml b/.github/workflows/build-full.yml index b826768..2c6b7de 100644 --- a/.github/workflows/build-full.yml +++ b/.github/workflows/build-full.yml @@ -13,6 +13,7 @@ jobs: run: shell: bash strategy: + fail-fast: false matrix: nimversion: - '2.2.8' From ffc42b6f311313a4f23dfd45cdbbcff03b403de2 Mon Sep 17 00:00:00 2001 From: Jaremy Creechley Date: Wed, 15 Apr 2026 21:14:58 +0300 Subject: [PATCH 10/15] tool setup --- .github/workflows/build-full.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/build-full.yml b/.github/workflows/build-full.yml index 2c6b7de..5a5cad0 100644 --- a/.github/workflows/build-full.yml +++ b/.github/workflows/build-full.yml @@ -81,8 +81,7 @@ jobs: nim -v echo "Nimble:: " nimble -v - echo "Nimble::path " - which `nimble` + echo "Nimble::path " $(which nimble) echo "Atlas:: " atlas -v From c9c5ef455b473782309599e19a49481a1b1898da Mon Sep 17 00:00:00 2001 From: Jaremy Creechley Date: Wed, 15 Apr 2026 21:18:13 +0300 Subject: [PATCH 11/15] fix windows --- .github/workflows/build-full.yml | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-full.yml b/.github/workflows/build-full.yml index 5a5cad0..6428ba9 100644 --- a/.github/workflows/build-full.yml +++ b/.github/workflows/build-full.yml @@ -65,15 +65,25 @@ jobs: with: nim-version: ${{ matrix.nimversion }} + - name: Install GCC (Windows) + if: runner.os == 'Windows' + id: msys2 + uses: msys2/setup-msys2@v2 + with: + msystem: UCRT64 + update: true + install: >- + mingw-w64-ucrt-x86_64-gcc + - name: Add Nimble Bin To PATH if: runner.os == 'Windows' run: | - echo "PATH=$HOME/.nimble/bin:$PATH" >> $GITHUB_ENV + echo "PATH=$HOME/.nimble/bin:${{ steps.msys2.outputs.msys2-location }}/ucrt64/bin:$PATH" >> $GITHUB_ENV - name: Install Tools run: | # nimble install "https://github.com/nim-lang/atlas@#head" - nimble install "https://github.com/nim-lang/nimble@#head" + nimble install "https://github.com/nim-lang/nimble" - name: Tool Versions run: | From dade752b5fb5ca03ac55f11b1a1284d647b2ce45 Mon Sep 17 00:00:00 2001 From: Jaremy Creechley Date: Wed, 15 Apr 2026 21:22:52 +0300 Subject: [PATCH 12/15] fix windows --- .github/workflows/build-full.yml | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build-full.yml b/.github/workflows/build-full.yml index 6428ba9..292368f 100644 --- a/.github/workflows/build-full.yml +++ b/.github/workflows/build-full.yml @@ -65,25 +65,19 @@ jobs: with: nim-version: ${{ matrix.nimversion }} - - name: Install GCC (Windows) - if: runner.os == 'Windows' - id: msys2 - uses: msys2/setup-msys2@v2 - with: - msystem: UCRT64 - update: true - install: >- - mingw-w64-ucrt-x86_64-gcc - - name: Add Nimble Bin To PATH if: runner.os == 'Windows' run: | - echo "PATH=$HOME/.nimble/bin:${{ steps.msys2.outputs.msys2-location }}/ucrt64/bin:$PATH" >> $GITHUB_ENV + echo "$HOME/.nimble/bin" >> $GITHUB_PATH - name: Install Tools run: | # nimble install "https://github.com/nim-lang/atlas@#head" - nimble install "https://github.com/nim-lang/nimble" + if [ "$RUNNER_OS" = "Windows" ]; then + nimble install --nim:"nim --cc:vcc" "https://github.com/nim-lang/nimble@#head" + else + nimble install "https://github.com/nim-lang/nimble@#head" + fi - name: Tool Versions run: | From 48851d4df3a4e9629893f92c1206d3974ea33644 Mon Sep 17 00:00:00 2001 From: Jaremy Creechley Date: Wed, 15 Apr 2026 21:28:42 +0300 Subject: [PATCH 13/15] fix windows --- .github/workflows/build-full.yml | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-full.yml b/.github/workflows/build-full.yml index 292368f..9bb755e 100644 --- a/.github/workflows/build-full.yml +++ b/.github/workflows/build-full.yml @@ -71,13 +71,16 @@ jobs: echo "$HOME/.nimble/bin" >> $GITHUB_PATH - name: Install Tools + if: runner.os != 'Windows' + run: | + # nimble install "https://github.com/nim-lang/atlas@#head" + nimble install "https://github.com/nim-lang/nimble@#head" + + - name: Install Tools (Windows) + if: runner.os == 'Windows' run: | # nimble install "https://github.com/nim-lang/atlas@#head" - if [ "$RUNNER_OS" = "Windows" ]; then - nimble install --nim:"nim --cc:vcc" "https://github.com/nim-lang/nimble@#head" - else - nimble install "https://github.com/nim-lang/nimble@#head" - fi + nimble install --passNim:--cc:vcc "https://github.com/nim-lang/nimble@#head" - name: Tool Versions run: | @@ -98,6 +101,8 @@ jobs: key: ${{ runner.os }}-${{ hashFiles('siwin.nimble') }} - name: Install Deps + env: + NIMFLAGS: ${{ runner.os == 'Windows' && '--cc:vcc' || '' }} run: | nimble install -y -d --features:dev @@ -129,14 +134,14 @@ jobs: - name: Build Tests if: runner.os == 'Windows' env: - NIMFLAGS: "-d:siwin.vulkan=off" + NIMFLAGS: "--cc:vcc -d:siwin.vulkan=off" run: | nimble --features:dev test - name: Build Tests (Vulkan Run Check) if: runner.os == 'Windows' env: - NIMFLAGS: "-d:siwin.vulkan=on" + NIMFLAGS: "--cc:vcc -d:siwin.vulkan=on" run: | nimble test From 5239b4c70ddaee94745eae3148ec1aa9c70356a9 Mon Sep 17 00:00:00 2001 From: Jaremy Creechley Date: Wed, 15 Apr 2026 21:37:19 +0300 Subject: [PATCH 14/15] cleanup --- .github/workflows/build-full.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/build-full.yml b/.github/workflows/build-full.yml index 9bb755e..6ea4fa4 100644 --- a/.github/workflows/build-full.yml +++ b/.github/workflows/build-full.yml @@ -73,13 +73,11 @@ jobs: - name: Install Tools if: runner.os != 'Windows' run: | - # nimble install "https://github.com/nim-lang/atlas@#head" nimble install "https://github.com/nim-lang/nimble@#head" - name: Install Tools (Windows) if: runner.os == 'Windows' run: | - # nimble install "https://github.com/nim-lang/atlas@#head" nimble install --passNim:--cc:vcc "https://github.com/nim-lang/nimble@#head" - name: Tool Versions From 861ab569ee548bd54e543f48a980aa79e336fd41 Mon Sep 17 00:00:00 2001 From: Jaremy Creechley Date: Wed, 15 Apr 2026 21:46:31 +0300 Subject: [PATCH 15/15] fix windows --- .github/workflows/build-full.yml | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/.github/workflows/build-full.yml b/.github/workflows/build-full.yml index 6ea4fa4..021ba74 100644 --- a/.github/workflows/build-full.yml +++ b/.github/workflows/build-full.yml @@ -9,6 +9,8 @@ on: jobs: tests: runs-on: ${{ matrix.os }} + env: + NIMBLE_BIN: nimble defaults: run: shell: bash @@ -65,28 +67,27 @@ jobs: with: nim-version: ${{ matrix.nimversion }} - - name: Add Nimble Bin To PATH - if: runner.os == 'Windows' - run: | - echo "$HOME/.nimble/bin" >> $GITHUB_PATH - - name: Install Tools if: runner.os != 'Windows' run: | nimble install "https://github.com/nim-lang/nimble@#head" - - name: Install Tools (Windows) + - name: Build Nimble (Windows) if: runner.os == 'Windows' run: | - nimble install --passNim:--cc:vcc "https://github.com/nim-lang/nimble@#head" + git clone --depth 1 https://github.com/nim-lang/nimble "$RUNNER_TEMP/nimble-head" + cd "$RUNNER_TEMP/nimble-head" + git submodule update --init + nim c --cc:vcc -d:release -o:"$HOME/.nimble/bin/nimble-head.exe" src/nimble.nim + echo "NIMBLE_BIN=$HOME/.nimble/bin/nimble-head.exe" >> $GITHUB_ENV - name: Tool Versions run: | echo "Nim:: " nim -v echo "Nimble:: " - nimble -v - echo "Nimble::path " $(which nimble) + "$NIMBLE_BIN" -v + echo "Nimble::path $NIMBLE_BIN" echo "Atlas:: " atlas -v @@ -102,7 +103,7 @@ jobs: env: NIMFLAGS: ${{ runner.os == 'Windows' && '--cc:vcc' || '' }} run: | - nimble install -y -d --features:dev + "$NIMBLE_BIN" install -y -d --features:dev - name: Build Tests if: runner.os == 'Linux' @@ -115,7 +116,7 @@ jobs: VK_ICD_FILENAMES: "/usr/share/vulkan/icd.d/lvp_icd.x86_64.json" VK_DRIVER_FILES: "/usr/share/vulkan/icd.d/lvp_icd.x86_64.json" run: | - xvfb-run -a -s "-screen 0 1280x1024x24" nimble --features:dev test + xvfb-run -a -s "-screen 0 1280x1024x24" "$NIMBLE_BIN" --features:dev test # - name: Build Tests (Vulkan Compile Check) # if: runner.os == 'Linux' @@ -127,21 +128,21 @@ jobs: - name: Build Tests if: runner.os == 'macOS' run: | - nimble --features:dev test + "$NIMBLE_BIN" --features:dev test - name: Build Tests if: runner.os == 'Windows' env: NIMFLAGS: "--cc:vcc -d:siwin.vulkan=off" run: | - nimble --features:dev test + "$NIMBLE_BIN" --features:dev test - name: Build Tests (Vulkan Run Check) if: runner.os == 'Windows' env: NIMFLAGS: "--cc:vcc -d:siwin.vulkan=on" run: | - nimble test + "$NIMBLE_BIN" test - name: Upload Test Output (on failure) if: failure()