Skip to content

Test-CI

Test-CI #50

Workflow file for this run

name: Test-CI
on:
workflow_dispatch:
inputs:
create_release:
description: 'Create new release'
required: true
type: boolean
jobs:
#build linux lib
build-linux-lib:
runs-on: ubuntu-latest
steps:
- name: Dependencies
id: depends
run: |
sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install libopenblas-dev
sudo apt-get install libopenblas64-dev
- name: Checkout project
id: checkout_project
uses: actions/checkout@v4
- name: Build lib
id: build_lib
run: |
cd llama-java-core
/bin/bash build.sh
- name: Upload lib
uses: actions/upload-artifact@v4
with:
name: linux-libllama
path: llama-java-core/build/libllamajava.so
#build macos lib
build-macos-lib:
runs-on: macos-13
steps:
- name: Checkout project
id: checkout_project
uses: actions/checkout@v4
- name: Build lib
id: build_lib
run: |
cd llama-java-core
/bin/bash build.sh
- name: Upload lib
uses: actions/upload-artifact@v4
with:
name: macos-libllama
path: llama-java-core/build/libllamajava.dylib
- name: Upload metal lib
uses: actions/upload-artifact@v4
with:
name: macos-metallib
path: llama-java-core/build/bin/default.metallib
#build macos arm lib
build-macos-arm-lib:
runs-on: macos-latest
steps:
- name: Checkout project
id: checkout_project
uses: actions/checkout@v4
- name: Build lib
id: build_lib
run: |
cd llama-java-core
/bin/bash build.sh
- name: Upload lib
uses: actions/upload-artifact@v4
with:
name: macos-arm-libllama
path: llama-java-core/build/libllamajava.dylib
- name: Upload metal lib
uses: actions/upload-artifact@v4
with:
name: macos-arm-metallib
path: llama-java-core/build/bin/default.metallib
#build windows lib
build-windows-lib:
runs-on: windows-latest
env:
OPENBLAS_VERSION: 0.3.23
steps:
- name: Download OpenBLAS
id: get_openblas
run: |
curl.exe -o $env:RUNNER_TEMP/openblas.zip -L "https://github.com/xianyi/OpenBLAS/releases/download/v${env:OPENBLAS_VERSION}/OpenBLAS-${env:OPENBLAS_VERSION}-x64.zip"
curl.exe -o $env:RUNNER_TEMP/OpenBLAS.LICENSE.txt -L "https://github.com/xianyi/OpenBLAS/raw/v${env:OPENBLAS_VERSION}/LICENSE"
mkdir $env:RUNNER_TEMP/openblas
tar.exe -xvf $env:RUNNER_TEMP/openblas.zip -C $env:RUNNER_TEMP/openblas
$vcdir = $(vswhere -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath)
$msvc = $(join-path $vcdir $('VC\Tools\MSVC\'+$(gc -raw $(join-path $vcdir 'VC\Auxiliary\Build\Microsoft.VCToolsVersion.default.txt')).Trim()))
$lib = $(join-path $msvc 'bin\Hostx64\x64\lib.exe')
& $lib /machine:x64 "/def:${env:RUNNER_TEMP}/openblas/lib/libopenblas.def" "/out:${env:RUNNER_TEMP}/openblas/lib/openblas.lib" /name:openblas.dll
- name: Checkout project
id: checkout_project
uses: actions/checkout@v4
- name: Build lib
id: build_lib
run: |
cd llama-java-core
mkdir build
cd build
cmake.exe .. -DBLAS_INCLUDE_DIRS="$env:RUNNER_TEMP/openblas/include" -DBLAS_LIBRARIES="$env:RUNNER_TEMP/openblas/lib/openblas.lib"
cmake.exe --build . --config Release
cp $env:RUNNER_TEMP/openblas/bin/libopenblas.dll ./bin/Release/openblas.dll
cp $env:RUNNER_TEMP/OpenBLAS.LICENSE.txt ./bin/Release/OpenBLAS-${env:OPENBLAS_VERSION}.txt
- name: Upload lib
uses: actions/upload-artifact@v4
with:
name: windows-libllama
path: llama-java-core/build/bin/Release/llamajava.dll
- name: Upload openblas lib
uses: actions/upload-artifact@v4
with:
name: windows-openblas
path: llama-java-core/build/bin/Release/openblas.dll