@@ -586,22 +586,31 @@ jobs:
586586 with :
587587 name : Linux-x86_64-libraries
588588 path : ${{ github.workspace }}/src/main/resources/net/ladenthin/llama/
589+ - name : Cache GGUF models (GitHub Actions cache; avoids re-downloading from HuggingFace)
590+ uses : actions/cache@v5
591+ with :
592+ path : models/
593+ # Shared, stable key across all test jobs (GGUF files are platform-independent, so
594+ # ubuntu + macOS share one entry). Bump the suffix when the model set/URLs change.
595+ # Uses GitHub's free 10 GB/repo cache — NOT Depot: these are GB-scale blobs and Depot
596+ # is usage-priced + its file cache needs Depot-hosted runners (see CLAUDE.md).
597+ key : gguf-models-v1
589598 - name : Download text generation model
590- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${MODEL_URL} --create-dirs -o models/${MODEL_NAME}
599+ run : test -f models/${MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${MODEL_URL} --create-dirs -o models/${MODEL_NAME}
591600 - name : Download reranking model
592- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${RERANKING_MODEL_URL} --create-dirs -o models/${RERANKING_MODEL_NAME}
601+ run : test -f models/${RERANKING_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${RERANKING_MODEL_URL} --create-dirs -o models/${RERANKING_MODEL_NAME}
593602 - name : Download draft model
594- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${DRAFT_MODEL_URL} --create-dirs -o models/${DRAFT_MODEL_NAME}
603+ run : test -f models/${DRAFT_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${DRAFT_MODEL_URL} --create-dirs -o models/${DRAFT_MODEL_NAME}
595604 - name : Download reasoning model
596- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${REASONING_MODEL_URL} --create-dirs -o models/${REASONING_MODEL_NAME}
605+ run : test -f models/${REASONING_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${REASONING_MODEL_URL} --create-dirs -o models/${REASONING_MODEL_NAME}
597606 - name : Download tool-calling model
598- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${TOOL_MODEL_URL} --create-dirs -o models/${TOOL_MODEL_NAME}
607+ run : test -f models/${TOOL_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${TOOL_MODEL_URL} --create-dirs -o models/${TOOL_MODEL_NAME}
599608 - name : Download nomic embedding model (issue # 98 regression)
600- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${NOMIC_EMBED_MODEL_URL} --create-dirs -o models/${NOMIC_EMBED_MODEL_NAME}
609+ run : test -f models/${NOMIC_EMBED_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${NOMIC_EMBED_MODEL_URL} --create-dirs -o models/${NOMIC_EMBED_MODEL_NAME}
601610 - name : Download vision model (issues # 103 / #34)
602- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${VISION_MODEL_URL} --create-dirs -o models/${VISION_MODEL_NAME}
611+ run : test -f models/${VISION_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${VISION_MODEL_URL} --create-dirs -o models/${VISION_MODEL_NAME}
603612 - name : Download vision mmproj
604- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${VISION_MMPROJ_URL} --create-dirs -o models/${VISION_MMPROJ_NAME}
613+ run : test -f models/${VISION_MMPROJ_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${VISION_MMPROJ_URL} --create-dirs -o models/${VISION_MMPROJ_NAME}
605614 - name : List files in models directory
606615 run : ls -l models/
607616 - name : Validate model files
@@ -710,20 +719,29 @@ jobs:
710719 with :
711720 name : macos-14-libraries
712721 path : ${{ github.workspace }}/src/main/resources/net/ladenthin/llama/
722+ - name : Cache GGUF models (GitHub Actions cache; avoids re-downloading from HuggingFace)
723+ uses : actions/cache@v5
724+ with :
725+ path : models/
726+ # Shared, stable key across all test jobs (GGUF files are platform-independent, so
727+ # ubuntu + macOS share one entry). Bump the suffix when the model set/URLs change.
728+ # Uses GitHub's free 10 GB/repo cache — NOT Depot: these are GB-scale blobs and Depot
729+ # is usage-priced + its file cache needs Depot-hosted runners (see CLAUDE.md).
730+ key : gguf-models-v1
713731 - name : Download text generation model
714- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${MODEL_URL} --create-dirs -o models/${MODEL_NAME}
732+ run : test -f models/${MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${MODEL_URL} --create-dirs -o models/${MODEL_NAME}
715733 - name : Download reranking model
716- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${RERANKING_MODEL_URL} --create-dirs -o models/${RERANKING_MODEL_NAME}
734+ run : test -f models/${RERANKING_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${RERANKING_MODEL_URL} --create-dirs -o models/${RERANKING_MODEL_NAME}
717735 - name : Download draft model
718- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${DRAFT_MODEL_URL} --create-dirs -o models/${DRAFT_MODEL_NAME}
736+ run : test -f models/${DRAFT_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${DRAFT_MODEL_URL} --create-dirs -o models/${DRAFT_MODEL_NAME}
719737 - name : Download reasoning model
720- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${REASONING_MODEL_URL} --create-dirs -o models/${REASONING_MODEL_NAME}
738+ run : test -f models/${REASONING_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${REASONING_MODEL_URL} --create-dirs -o models/${REASONING_MODEL_NAME}
721739 - name : Download tool-calling model
722- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${TOOL_MODEL_URL} --create-dirs -o models/${TOOL_MODEL_NAME}
740+ run : test -f models/${TOOL_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${TOOL_MODEL_URL} --create-dirs -o models/${TOOL_MODEL_NAME}
723741 - name : Download vision model (issues # 103 / #34)
724- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${VISION_MODEL_URL} --create-dirs -o models/${VISION_MODEL_NAME}
742+ run : test -f models/${VISION_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${VISION_MODEL_URL} --create-dirs -o models/${VISION_MODEL_NAME}
725743 - name : Download vision mmproj
726- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${VISION_MMPROJ_URL} --create-dirs -o models/${VISION_MMPROJ_NAME}
744+ run : test -f models/${VISION_MMPROJ_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${VISION_MMPROJ_URL} --create-dirs -o models/${VISION_MMPROJ_NAME}
727745 - name : List files in models directory
728746 run : ls -l models/
729747 - name : Validate model files
@@ -777,20 +795,29 @@ jobs:
777795 with :
778796 name : macos-15-libraries
779797 path : ${{ github.workspace }}/src/main/resources/net/ladenthin/llama/
798+ - name : Cache GGUF models (GitHub Actions cache; avoids re-downloading from HuggingFace)
799+ uses : actions/cache@v5
800+ with :
801+ path : models/
802+ # Shared, stable key across all test jobs (GGUF files are platform-independent, so
803+ # ubuntu + macOS share one entry). Bump the suffix when the model set/URLs change.
804+ # Uses GitHub's free 10 GB/repo cache — NOT Depot: these are GB-scale blobs and Depot
805+ # is usage-priced + its file cache needs Depot-hosted runners (see CLAUDE.md).
806+ key : gguf-models-v1
780807 - name : Download text generation model
781- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${MODEL_URL} --create-dirs -o models/${MODEL_NAME}
808+ run : test -f models/${MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${MODEL_URL} --create-dirs -o models/${MODEL_NAME}
782809 - name : Download reranking model
783- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${RERANKING_MODEL_URL} --create-dirs -o models/${RERANKING_MODEL_NAME}
810+ run : test -f models/${RERANKING_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${RERANKING_MODEL_URL} --create-dirs -o models/${RERANKING_MODEL_NAME}
784811 - name : Download draft model
785- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${DRAFT_MODEL_URL} --create-dirs -o models/${DRAFT_MODEL_NAME}
812+ run : test -f models/${DRAFT_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${DRAFT_MODEL_URL} --create-dirs -o models/${DRAFT_MODEL_NAME}
786813 - name : Download reasoning model
787- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${REASONING_MODEL_URL} --create-dirs -o models/${REASONING_MODEL_NAME}
814+ run : test -f models/${REASONING_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${REASONING_MODEL_URL} --create-dirs -o models/${REASONING_MODEL_NAME}
788815 - name : Download tool-calling model
789- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${TOOL_MODEL_URL} --create-dirs -o models/${TOOL_MODEL_NAME}
816+ run : test -f models/${TOOL_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${TOOL_MODEL_URL} --create-dirs -o models/${TOOL_MODEL_NAME}
790817 - name : Download vision model (issues # 103 / #34)
791- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${VISION_MODEL_URL} --create-dirs -o models/${VISION_MODEL_NAME}
818+ run : test -f models/${VISION_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${VISION_MODEL_URL} --create-dirs -o models/${VISION_MODEL_NAME}
792819 - name : Download vision mmproj
793- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${VISION_MMPROJ_URL} --create-dirs -o models/${VISION_MMPROJ_NAME}
820+ run : test -f models/${VISION_MMPROJ_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${VISION_MMPROJ_URL} --create-dirs -o models/${VISION_MMPROJ_NAME}
794821 - name : List files in models directory
795822 run : ls -l models/
796823 - name : Validate model files
@@ -844,20 +871,29 @@ jobs:
844871 with :
845872 name : macos-15-metal-libraries
846873 path : ${{ github.workspace }}/src/main/resources/net/ladenthin/llama/
874+ - name : Cache GGUF models (GitHub Actions cache; avoids re-downloading from HuggingFace)
875+ uses : actions/cache@v5
876+ with :
877+ path : models/
878+ # Shared, stable key across all test jobs (GGUF files are platform-independent, so
879+ # ubuntu + macOS share one entry). Bump the suffix when the model set/URLs change.
880+ # Uses GitHub's free 10 GB/repo cache — NOT Depot: these are GB-scale blobs and Depot
881+ # is usage-priced + its file cache needs Depot-hosted runners (see CLAUDE.md).
882+ key : gguf-models-v1
847883 - name : Download text generation model
848- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${MODEL_URL} --create-dirs -o models/${MODEL_NAME}
884+ run : test -f models/${MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${MODEL_URL} --create-dirs -o models/${MODEL_NAME}
849885 - name : Download reranking model
850- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${RERANKING_MODEL_URL} --create-dirs -o models/${RERANKING_MODEL_NAME}
886+ run : test -f models/${RERANKING_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${RERANKING_MODEL_URL} --create-dirs -o models/${RERANKING_MODEL_NAME}
851887 - name : Download draft model
852- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${DRAFT_MODEL_URL} --create-dirs -o models/${DRAFT_MODEL_NAME}
888+ run : test -f models/${DRAFT_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${DRAFT_MODEL_URL} --create-dirs -o models/${DRAFT_MODEL_NAME}
853889 - name : Download reasoning model
854- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${REASONING_MODEL_URL} --create-dirs -o models/${REASONING_MODEL_NAME}
890+ run : test -f models/${REASONING_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${REASONING_MODEL_URL} --create-dirs -o models/${REASONING_MODEL_NAME}
855891 - name : Download tool-calling model
856- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${TOOL_MODEL_URL} --create-dirs -o models/${TOOL_MODEL_NAME}
892+ run : test -f models/${TOOL_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${TOOL_MODEL_URL} --create-dirs -o models/${TOOL_MODEL_NAME}
857893 - name : Download vision model (issues # 103 / #34)
858- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${VISION_MODEL_URL} --create-dirs -o models/${VISION_MODEL_NAME}
894+ run : test -f models/${VISION_MODEL_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${VISION_MODEL_URL} --create-dirs -o models/${VISION_MODEL_NAME}
859895 - name : Download vision mmproj
860- run : curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${VISION_MMPROJ_URL} --create-dirs -o models/${VISION_MMPROJ_NAME}
896+ run : test -f models/${VISION_MMPROJ_NAME} || curl -L --proto =https --proto-redir =https --fail --retry 5 --retry-all-errors ${VISION_MMPROJ_URL} --create-dirs -o models/${VISION_MMPROJ_NAME}
861897 - name : List files in models directory
862898 run : ls -l models/
863899 - name : Validate model files
0 commit comments