Skip to content

Upgrade llama.cpp from b9106 to b9134 #35

Upgrade llama.cpp from b9106 to b9134

Upgrade llama.cpp from b9106 to b9134 #35

Workflow file for this run

name: Publish
on:
push:
branches: [ main ]
tags: ['v*']
pull_request:
workflow_dispatch:
inputs:
release_to_maven_central:
description: 'Release to Maven Central (true/false)'
required: false
default: 'false'
enable_cuda_build:
description: 'Compile CUDA artifacts (slow — nvcc install + build). Auto-enabled on tag pushes.'
required: false
default: 'false'
env:
MODEL_URL: "https://huggingface.co/TheBloke/CodeLlama-7B-GGUF/resolve/main/codellama-7b.Q2_K.gguf"
MODEL_NAME: "codellama-7b.Q2_K.gguf"
RERANKING_MODEL_URL: "https://huggingface.co/gpustack/jina-reranker-v1-tiny-en-GGUF/resolve/main/jina-reranker-v1-tiny-en-Q4_0.gguf"
RERANKING_MODEL_NAME: "jina-reranker-v1-tiny-en-Q4_0.gguf"
DRAFT_MODEL_URL: "https://huggingface.co/QuantFactory/AMD-Llama-135m-code-GGUF/resolve/main/AMD-Llama-135m-code.Q2_K.gguf"
DRAFT_MODEL_NAME: "AMD-Llama-135m-code.Q2_K.gguf"
permissions:
contents: read
jobs:
# ---------------------------------------------------------------------------
# Cross-compile jobs (Docker / dockcross) — produce release artifacts, no testing
# ---------------------------------------------------------------------------
crosscompile-linux-x86_64-cuda:
name: Cross-Compile manylinux_2_28 x86_64 (CUDA)
runs-on: ubuntu-latest
outputs:
built: ${{ steps.build.outputs.built }}
steps:
- uses: actions/checkout@v6
- name: Display CPU Info
shell: bash
run: |
echo "=== Host CPU Information ==="
lscpu
echo ""
echo "=== CPU Details from /proc/cpuinfo ==="
cat /proc/cpuinfo
- name: Build libraries
id: build
shell: bash
run: |
if [[ "${{ startsWith(github.ref, 'refs/tags/v') }}" == "true" || "${{ github.event.inputs.enable_cuda_build }}" == "true" ]]; then
.github/dockcross/dockcross-manylinux_2_28-x64 .github/build_cuda_linux.sh "-DOS_NAME=Linux -DOS_ARCH=x86_64"
echo "built=true" >> "$GITHUB_OUTPUT"
else
echo "CUDA compilation skipped — set enable_cuda_build=true or trigger a release event to build CUDA artifacts"
echo "built=false" >> "$GITHUB_OUTPUT"
fi
- name: Upload artifacts
if: steps.build.outputs.built == 'true'
uses: actions/upload-artifact@v7
with:
name: linux-libraries-cuda
path: ${{ github.workspace }}/src/main/resources_linux_cuda/net/ladenthin/llama/
crosscompile-linux-x86_64:
name: Cross-Compile manylinux2014 x86_64
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Display CPU Info
shell: bash
run: |
echo "=== Host CPU Information ==="
lscpu
echo ""
echo "=== CPU Details from /proc/cpuinfo ==="
cat /proc/cpuinfo
- name: Build libraries
shell: bash
run: |
.github/dockcross/dockcross-manylinux2014-x64 .github/build.sh "-DOS_NAME=Linux -DOS_ARCH=x86_64"
- name: Upload artifacts
uses: actions/upload-artifact@v7
with:
name: Linux-x86_64-libraries
path: ${{ github.workspace }}/src/main/resources/net/ladenthin/llama/
crosscompile-linux-aarch64:
name: Cross-Compile Linux aarch64 (LTS)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Display CPU Info
shell: bash
run: |
echo "=== Host CPU Information ==="
lscpu
echo ""
echo "=== CPU Details from /proc/cpuinfo ==="
cat /proc/cpuinfo
- name: Build libraries
shell: bash
run: |
.github/dockcross/dockcross-linux-arm64-lts .github/build.sh "-DOS_NAME=Linux -DOS_ARCH=aarch64"
- name: Upload artifacts
uses: actions/upload-artifact@v7
with:
name: Linux-aarch64-libraries
path: ${{ github.workspace }}/src/main/resources/net/ladenthin/llama/
crosscompile-android-aarch64:
name: Cross-Compile Android aarch64
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Display CPU Info
shell: bash
run: |
echo "=== Host CPU Information ==="
lscpu
echo ""
echo "=== CPU Details from /proc/cpuinfo ==="
cat /proc/cpuinfo
- name: Build libraries
shell: bash
run: |
.github/dockcross/dockcross-android-arm64 .github/build.sh "-DANDROID_PLATFORM=android-24 -DOS_NAME=Linux-Android -DOS_ARCH=aarch64"
- name: Upload artifacts
uses: actions/upload-artifact@v7
with:
name: Linux-Android-aarch64-libraries
path: ${{ github.workspace }}/src/main/resources/net/ladenthin/llama/
# ---------------------------------------------------------------------------
# Native build jobs — produce release artifacts + run C++ unit tests
# ---------------------------------------------------------------------------
build-macos-arm64-no-metal:
name: Build and Test macOS 15 arm64 (no Metal)
runs-on: macos-15
steps:
- uses: actions/checkout@v6
- uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version: '8'
- name: Display CPU Info
shell: bash
run: |
echo "=== CPU Information ==="
sysctl hw.model hw.cachelinesize hw.cpufrequency hw.cachesize hw.physicalcpu hw.logicalcpu hw.packages hw.memsize hw.ncpu 2>/dev/null || true
echo ""
echo "=== Processor Details ==="
system_profiler SPHardwareDataType
- name: Build libraries
shell: bash
run: |
mvn compile
.github/build.sh -DLLAMA_METAL=OFF -DGGML_NATIVE=OFF -DBUILD_TESTING=ON
- name: Run C++ unit tests
run: ctest --test-dir build --output-on-failure
- name: Upload artifacts
uses: actions/upload-artifact@v7
with:
name: macos-15-libraries
path: ${{ github.workspace }}/src/main/resources/net/ladenthin/llama/
build-macos-arm64-metal:
name: Build and Test macOS 14 arm64 (Metal)
runs-on: macos-14
steps:
- uses: actions/checkout@v6
- uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version: '8'
- name: Display CPU Info
shell: bash
run: |
echo "=== CPU Information ==="
sysctl hw.model hw.cachelinesize hw.cpufrequency hw.cachesize hw.physicalcpu hw.logicalcpu hw.packages hw.memsize hw.ncpu 2>/dev/null || true
echo ""
echo "=== Processor Details ==="
system_profiler SPHardwareDataType
- name: Build libraries
shell: bash
run: |
mvn compile
.github/build.sh -DLLAMA_METAL_EMBED_LIBRARY=ON -DBUILD_TESTING=ON
- name: Run C++ unit tests
run: ctest --test-dir build --output-on-failure
- name: Upload artifacts
uses: actions/upload-artifact@v7
with:
name: macos-14-libraries
path: ${{ github.workspace }}/src/main/resources/net/ladenthin/llama/
build-windows-x86_64:
name: Build and Test Windows 2025 x86_64 (VS 2026)
runs-on: windows-2025-vs2026
steps:
- uses: actions/checkout@v6
- name: Display CPU Info
shell: pwsh
run: |
Write-Host "=== CPU Information (Get-CimInstance - All Properties) ==="
Get-CimInstance Win32_Processor | Select-Object * | Format-List
Write-Host ""
Write-Host "=== CPU Information (systeminfo) ==="
systeminfo | Select-String "Processor"
Write-Host ""
Write-Host "=== CPU Information (Get-ComputerInfo) ==="
Get-ComputerInfo -Property "CsProcessors*" 2>$null || Write-Host "Get-ComputerInfo not available"
- name: Build libraries
shell: cmd
run: |
.github\build.bat -G "Visual Studio 18 2026" -A "x64" -DOS_NAME=Windows -DOS_ARCH=x86_64 -DBUILD_TESTING=ON
- name: Run C++ unit tests
run: ctest --test-dir build --output-on-failure
- name: Upload artifacts
uses: actions/upload-artifact@v7
with:
name: Windows-x86_64-libraries
path: ${{ github.workspace }}/src/main/resources/net/ladenthin/llama/
build-windows-x86:
name: Build and Test Windows 2025 x86 (VS 2026)
runs-on: windows-2025-vs2026
steps:
- uses: actions/checkout@v6
- name: Display CPU Info
shell: pwsh
run: |
Write-Host "=== CPU Information (Get-CimInstance - All Properties) ==="
Get-CimInstance Win32_Processor | Select-Object * | Format-List
Write-Host ""
Write-Host "=== CPU Information (systeminfo) ==="
systeminfo | Select-String "Processor"
Write-Host ""
Write-Host "=== CPU Information (Get-ComputerInfo) ==="
Get-ComputerInfo -Property "CsProcessors*" 2>$null || Write-Host "Get-ComputerInfo not available"
- name: Build libraries
shell: cmd
run: |
.github\build.bat -G "Visual Studio 18 2026" -A "Win32" -DOS_NAME=Windows -DOS_ARCH=x86 -DBUILD_TESTING=ON
- name: Run C++ unit tests
run: ctest --test-dir build --output-on-failure
- name: Upload artifacts
uses: actions/upload-artifact@v7
with:
name: Windows-x86-libraries
path: ${{ github.workspace }}/src/main/resources/net/ladenthin/llama/
# ---------------------------------------------------------------------------
# CI-only jobs — no release artifact, purely for test coverage
# ---------------------------------------------------------------------------
test-cpp-linux-x86_64:
name: C++ Tests Ubuntu Latest x86_64
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version: '8'
- name: Display CPU Info
run: |
echo "=== CPU Information ==="
lscpu
echo ""
echo "=== CPU Details from /proc/cpuinfo ==="
cat /proc/cpuinfo
- name: Build libraries
run: |
mvn -q compile
.github/build.sh -DBUILD_TESTING=ON
- name: Run C++ unit tests
run: ctest --test-dir build --output-on-failure
test-macos-arm64-metal-15:
name: Build and Test macOS 15 arm64 (Metal)
runs-on: macos-15
steps:
- uses: actions/checkout@v6
- uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version: '8'
- name: Display CPU Info
shell: bash
run: |
echo "=== CPU Information ==="
sysctl hw.model hw.cachelinesize hw.cpufrequency hw.cachesize hw.physicalcpu hw.logicalcpu hw.packages hw.memsize hw.ncpu 2>/dev/null || true
echo ""
echo "=== Processor Details ==="
system_profiler SPHardwareDataType
- name: Build libraries
shell: bash
run: |
mvn compile
.github/build.sh -DLLAMA_METAL_EMBED_LIBRARY=ON -DGGML_NATIVE=OFF -DBUILD_TESTING=ON
- name: Run C++ unit tests
run: ctest --test-dir build --output-on-failure
- name: Download text generation model
run: curl -L --fail ${MODEL_URL} --create-dirs -o models/${MODEL_NAME}
- name: Download reranking model
run: curl -L --fail ${RERANKING_MODEL_URL} --create-dirs -o models/${RERANKING_MODEL_NAME}
- name: Download draft model
run: curl -L --fail ${DRAFT_MODEL_URL} --create-dirs -o models/${DRAFT_MODEL_NAME}
- name: List files in models directory
run: ls -l models/
- name: Validate model files
run: bash .github/validate-models.sh
- name: Enable core dumps
run: ulimit -c unlimited
- name: Run Java tests
run: mvn --no-transfer-progress test
- name: Memory after tests
if: always()
run: vm_stat && sysctl hw.memsize hw.physmem
- if: failure()
uses: actions/upload-artifact@v7
with:
name: error-log-macos-15-metal
path: |
${{ github.workspace }}/hs_err_pid*.log
${{ github.workspace }}/target/surefire-reports/*.dump
${{ github.workspace }}/target/surefire-reports/*.dumpstream
if-no-files-found: warn
# ---------------------------------------------------------------------------
# Java test jobs — download release artifact, run mvn test
# ---------------------------------------------------------------------------
test-java-linux-x86_64:
name: Java Tests Ubuntu Latest x86_64
needs: crosscompile-linux-x86_64
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Display CPU Info
shell: bash
run: |
echo "=== CPU Information ==="
lscpu
echo ""
echo "=== CPU Details from /proc/cpuinfo ==="
cat /proc/cpuinfo
- uses: actions/download-artifact@v8
with:
name: Linux-x86_64-libraries
path: ${{ github.workspace }}/src/main/resources/net/ladenthin/llama/
- name: Download text generation model
run: curl -L --fail ${MODEL_URL} --create-dirs -o models/${MODEL_NAME}
- name: Download reranking model
run: curl -L --fail ${RERANKING_MODEL_URL} --create-dirs -o models/${RERANKING_MODEL_NAME}
- name: Download draft model
run: curl -L --fail ${DRAFT_MODEL_URL} --create-dirs -o models/${DRAFT_MODEL_NAME}
- name: List files in models directory
run: ls -l models/
- name: Validate model files
run: bash .github/validate-models.sh
- uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version: '8'
- name: Memory before tests
run: free -h
- name: Enable core dumps
run: |
ulimit -c unlimited
echo "${{ github.workspace }}/core.%e.%p" | sudo tee /proc/sys/kernel/core_pattern
- name: Run tests
run: mvn --no-transfer-progress test
- uses: actions/upload-artifact@v7
if: success()
with:
name: jacoco-report
path: target/site/jacoco/jacoco.xml
if-no-files-found: ignore
- name: Memory after tests
if: always()
run: free -h
- if: failure()
uses: actions/upload-artifact@v7
with:
name: error-log-linux-x86_64
path: |
${{ github.workspace }}/hs_err_pid*.log
${{ github.workspace }}/core.*
${{ github.workspace }}/target/surefire-reports/*.dump
${{ github.workspace }}/target/surefire-reports/*.dumpstream
if-no-files-found: warn
test-java-macos-arm64-metal:
name: Java Tests macOS 14 arm64 (Metal)
needs: build-macos-arm64-metal
runs-on: macos-14
steps:
- uses: actions/checkout@v6
- name: Display CPU Info
shell: bash
run: |
echo "=== CPU Information ==="
sysctl hw.model hw.cachelinesize hw.cpufrequency hw.cachesize hw.physicalcpu hw.logicalcpu hw.packages hw.memsize hw.ncpu 2>/dev/null || true
echo ""
echo "=== Processor Details ==="
system_profiler SPHardwareDataType
- uses: actions/download-artifact@v8
with:
name: macos-14-libraries
path: ${{ github.workspace }}/src/main/resources/net/ladenthin/llama/
- name: Download text generation model
run: curl -L --fail ${MODEL_URL} --create-dirs -o models/${MODEL_NAME}
- name: Download reranking model
run: curl -L --fail ${RERANKING_MODEL_URL} --create-dirs -o models/${RERANKING_MODEL_NAME}
- name: Download draft model
run: curl -L --fail ${DRAFT_MODEL_URL} --create-dirs -o models/${DRAFT_MODEL_NAME}
- name: List files in models directory
run: ls -l models/
- name: Validate model files
run: bash .github/validate-models.sh
- uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version: '8'
- name: Memory before tests
run: vm_stat && sysctl hw.memsize hw.physmem
- name: Enable core dumps
run: ulimit -c unlimited
- name: Run tests
run: mvn --no-transfer-progress -Dnet.ladenthin.llama.test.ngl=0 test
- name: Memory after tests
if: always()
run: vm_stat && sysctl hw.memsize hw.physmem
- if: failure()
uses: actions/upload-artifact@v7
with:
name: error-log-macos-14-metal
path: |
${{ github.workspace }}/hs_err_pid*.log
${{ github.workspace }}/target/surefire-reports/*.dump
${{ github.workspace }}/target/surefire-reports/*.dumpstream
if-no-files-found: warn
test-java-macos-arm64-no-metal:
name: Java Tests macOS 15 arm64 (no Metal)
needs: build-macos-arm64-no-metal
runs-on: macos-15
steps:
- uses: actions/checkout@v6
- name: Display CPU Info
shell: bash
run: |
echo "=== CPU Information ==="
sysctl hw.model hw.cachelinesize hw.cpufrequency hw.cachesize hw.physicalcpu hw.logicalcpu hw.packages hw.memsize hw.ncpu 2>/dev/null || true
echo ""
echo "=== Processor Details ==="
system_profiler SPHardwareDataType
- uses: actions/download-artifact@v8
with:
name: macos-15-libraries
path: ${{ github.workspace }}/src/main/resources/net/ladenthin/llama/
- name: Download text generation model
run: curl -L --fail ${MODEL_URL} --create-dirs -o models/${MODEL_NAME}
- name: Download reranking model
run: curl -L --fail ${RERANKING_MODEL_URL} --create-dirs -o models/${RERANKING_MODEL_NAME}
- name: Download draft model
run: curl -L --fail ${DRAFT_MODEL_URL} --create-dirs -o models/${DRAFT_MODEL_NAME}
- name: List files in models directory
run: ls -l models/
- name: Validate model files
run: bash .github/validate-models.sh
- uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version: '8'
- name: Memory before tests
run: vm_stat && sysctl hw.memsize hw.physmem
- name: Enable core dumps
run: ulimit -c unlimited
- name: Run tests
run: mvn --no-transfer-progress test
- name: Memory after tests
if: always()
run: vm_stat && sysctl hw.memsize hw.physmem
- if: failure()
uses: actions/upload-artifact@v7
with:
name: error-log-macos-15-no-metal
path: |
${{ github.workspace }}/hs_err_pid*.log
${{ github.workspace }}/target/surefire-reports/*.dump
${{ github.workspace }}/target/surefire-reports/*.dumpstream
if-no-files-found: warn
test-java-windows-x86_64:
name: Java Tests Windows 2025 x86_64 (VS 2026)
needs: build-windows-x86_64
runs-on: windows-2025-vs2026
steps:
- uses: actions/checkout@v6
- name: Display CPU Info
shell: pwsh
run: |
Write-Host "=== CPU Information (Get-CimInstance - All Properties) ==="
Get-CimInstance Win32_Processor | Select-Object * | Format-List
Write-Host ""
Write-Host "=== CPU Information (systeminfo) ==="
systeminfo | Select-String "Processor"
Write-Host ""
Write-Host "=== CPU Information (Get-ComputerInfo) ==="
Get-ComputerInfo -Property "CsProcessors*" 2>$null || Write-Host "Get-ComputerInfo not available"
- uses: actions/download-artifact@v8
with:
name: Windows-x86_64-libraries
path: ${{ github.workspace }}/src/main/resources/net/ladenthin/llama/
- name: Download text generation model
run: curl -L --fail $env:MODEL_URL --create-dirs -o models/$env:MODEL_NAME
- name: Download reranking model
run: curl -L --fail $env:RERANKING_MODEL_URL --create-dirs -o models/$env:RERANKING_MODEL_NAME
- name: Download draft model
run: curl -L --fail $env:DRAFT_MODEL_URL --create-dirs -o models/$env:DRAFT_MODEL_NAME
- name: List files in models directory
run: ls -l models/
- name: Validate model files
run: .github\validate-models.bat
- uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version: '8'
- name: Memory before tests
run: Get-CimInstance Win32_OperatingSystem | Select-Object FreePhysicalMemory,TotalVisibleMemorySize | Format-List
shell: pwsh
- name: Run tests
run: mvn --no-transfer-progress test
- name: Memory after tests
if: always()
run: Get-CimInstance Win32_OperatingSystem | Select-Object FreePhysicalMemory,TotalVisibleMemorySize | Format-List
shell: pwsh
- if: failure()
uses: actions/upload-artifact@v7
with:
name: windows-output
path: |
${{ github.workspace }}\hs_err_pid*.log
${{ github.workspace }}\target\surefire-reports\*.dump
${{ github.workspace }}\target\surefire-reports\*.dumpstream
${{ github.workspace }}/src/main/resources/net/ladenthin/llama/**/*
if-no-files-found: warn
# ---------------------------------------------------------------------------
# Package and publish
# ---------------------------------------------------------------------------
package:
name: Package JARs
needs:
- crosscompile-linux-x86_64-cuda
- crosscompile-linux-aarch64
- crosscompile-android-aarch64
- build-windows-x86
- test-cpp-linux-x86_64
- test-macos-arm64-metal-15
- test-java-linux-x86_64
- test-java-macos-arm64-metal
- test-java-macos-arm64-no-metal
- test-java-windows-x86_64
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/download-artifact@v8
with:
pattern: "*-libraries"
merge-multiple: true
path: ${{ github.workspace }}/src/main/resources/net/ladenthin/llama/
- if: needs.crosscompile-linux-x86_64-cuda.outputs.built == 'true'
uses: actions/download-artifact@v8
with:
name: linux-libraries-cuda
path: ${{ github.workspace }}/src/main/resources_linux_cuda/net/ladenthin/llama/
- uses: actions/setup-java@v5
with:
distribution: 'zulu'
java-version: '8'
- name: Build JARs
run: mvn --batch-mode --no-transfer-progress -P release -Dmaven.test.skip=true -Dgpg.skip=true package
- name: Upload JARs
uses: actions/upload-artifact@v7
with:
name: llama-jars
path: target/*.jar
report:
name: Report
needs: [package]
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v6
- uses: actions/setup-java@v5
with: { java-version: '8', distribution: zulu }
- uses: actions/download-artifact@v8
with: { name: jacoco-report, path: target/site/jacoco/ }
continue-on-error: true
- uses: advanced-security/maven-dependency-submission-action@v5
- name: Coveralls
uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
file: target/site/jacoco/jacoco.xml
format: jacoco
continue-on-error: true
- name: Codecov
uses: codecov/codecov-action@v6
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: target/site/jacoco/jacoco.xml
continue-on-error: true
github-snapshot:
name: Update Snapshot Pre-release on GitHub
needs: [report]
if: >-
(github.event_name == 'push' && github.ref == 'refs/heads/main') ||
github.event_name == 'workflow_dispatch'
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/download-artifact@v8
with:
name: llama-jars
path: snapshot-assets/
- name: Update snapshot pre-release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release view snapshot --repo ${{ github.repository }} 2>/dev/null \
|| gh release create snapshot \
--repo ${{ github.repository }} \
--prerelease \
--title "Snapshot (latest)" \
--notes "Latest snapshot build from the main branch."
gh release upload snapshot snapshot-assets/* \
--repo ${{ github.repository }} \
--clobber
publish-snapshot:
name: Publish Snapshot to Central
needs: [github-snapshot]
if: >-
(github.event_name == 'push' && github.ref == 'refs/heads/main') ||
github.event_name == 'workflow_dispatch'
runs-on: ubuntu-latest
environment: maven-central
steps:
- uses: actions/checkout@v6
- uses: actions/download-artifact@v8
with:
name: llama-jars
path: snapshot-jars/
- uses: actions/setup-java@v5
with:
java-version: '8'
distribution: zulu
server-id: central
server-username: MAVEN_USERNAME
server-password: MAVEN_PASSWORD
- name: Deploy snapshot
run: |
VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
mvn --batch-mode deploy:deploy-file \
-Durl=https://central.sonatype.com/repository/maven-snapshots \
-DrepositoryId=central \
-Dfile=snapshot-jars/llama-${VERSION}.jar \
-DpomFile=pom.xml \
-Dsources=snapshot-jars/llama-${VERSION}-sources.jar \
-Djavadoc=snapshot-jars/llama-${VERSION}-javadoc.jar
env:
MAVEN_USERNAME: ${{ secrets.CENTRAL_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.CENTRAL_TOKEN }}
github-release:
name: Attach Binaries to GitHub Release
needs: [report]
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/download-artifact@v8
with:
name: llama-jars
path: release-assets/
- name: Upload release assets
uses: softprops/action-gh-release@v2
with:
files: release-assets/*
publish-release:
name: Publish Release to Central
if: startsWith(github.ref, 'refs/tags/v') || github.event.inputs.release_to_maven_central == 'true'
needs: [github-release, crosscompile-linux-x86_64-cuda]
runs-on: ubuntu-latest
environment: maven-central
steps:
- uses: actions/checkout@v6
- uses: actions/download-artifact@v8
with:
pattern: "*-libraries"
merge-multiple: true
path: ${{ github.workspace }}/src/main/resources/net/ladenthin/llama/
- if: needs.crosscompile-linux-x86_64-cuda.outputs.built == 'true'
uses: actions/download-artifact@v8
with:
name: linux-libraries-cuda
path: ${{ github.workspace }}/src/main/resources_linux_cuda/net/ladenthin/llama/
- name: Set up Maven Central Repository
uses: actions/setup-java@v5
with:
java-version: '17'
distribution: 'zulu'
server-id: central
server-username: MAVEN_USERNAME
server-password: MAVEN_PASSWORD
gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
gpg-passphrase: MAVEN_GPG_PASSPHRASE
- name: Publish release
run: mvn --batch-mode -P release -Dmaven.test.skip=true deploy
env:
MAVEN_USERNAME: ${{ secrets.CENTRAL_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.CENTRAL_TOKEN }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}