Skip to content

Commit

Permalink
Merge b40dc44 into d87daed
Browse files Browse the repository at this point in the history
  • Loading branch information
okdshin authored Dec 10, 2023
2 parents d87daed + b40dc44 commit fd95099
Show file tree
Hide file tree
Showing 2 changed files with 105 additions and 5 deletions.
108 changes: 104 additions & 4 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,95 @@ jobs:
name: flatline_lsp_ubuntu2004_${{ matrix.build }}.zip
path: dist/flatline_lsp_ubuntu2004_${{ matrix.build }}.zip

build-release-windows-latest:
runs-on: windows-latest

env:
OPENBLAS_VERSION: 0.3.23

strategy:
matrix:
include:
- build: 'openblas'
defines: '-DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS -DBLAS_INCLUDE_DIRS="$env:RUNNER_TEMP/openblas/include" -DBLAS_LIBRARIES="$env:RUNNER_TEMP/openblas/lib/openblas.lib"'

steps:
- name: Clone
id: checkout
uses: actions/checkout@v1

- name: Common dependencies
id: depends
run: |
python3 -m pip install cmake
python3 -m pip install torch --index-url https://download.pytorch.org/whl/cpu
python3 -m pip install transformers==4.33.3 tiktoken pygls pyinstaller
- name: Download OpenBLAS
id: get_openblas
if: ${{ matrix.build == '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: Build backend server
id: cmake_build_backend_server
run: |
cmake -B build_backend_server -S . -DLLAMA_NATIVE=OFF ${{ matrix.defines }}
cmake --build build_backend_server --config Release
- name: Add libopenblas.dll
id: add_libopenblas_dll
if: ${{ matrix.build == 'openblas' }}
run: |
cp $env:RUNNER_TEMP/openblas/bin/libopenblas.dll ./build_backend_server/bin/Release/openblas.dll
cp $env:RUNNER_TEMP/OpenBLAS.LICENSE.txt ./build_backend_server/bin/Release/OpenBLAS-${env:OPENBLAS_VERSION}.txt
- name: Build lsp server
id: pyinstaller_build_lsp_server
shell: bash
run: |
pyinstaller flatline_lsp.py \
--copy-metadata tqdm \
--copy-metadata regex \
--copy-metadata requests \
--copy-metadata packaging \
--copy-metadata filelock \
--copy-metadata numpy \
--copy-metadata tokenizers \
--copy-metadata huggingface-hub \
--copy-metadata safetensors \
--copy-metadata pyyaml \
--copy-metadata torch \
--hidden-import=tiktoken_ext.openai_public \
--hidden-import=tiktoken_ext \
;
- name: Make package
id: make_package
shell: bash
run: |
mkdir -p ./dist/flatline_lsp/_internal/flatline/model_data
mkdir -p ./dist/flatline_lsp/_internal/flatline/backend_server
mv build_backend_server/bin/flatline-server ./dist/flatline_lsp/_internal/flatline/backend_server/flatline-server
mkdir -p ./dist/flatline_lsp/license
find build_backend_server/bin -name \*.LICENSE.txt | xargs -I{} cp {} ./dist/flatline_lsp/license/
cd dist
7z a flatline_lsp_windows_${{ matrix.build }}.zip flatline_lsp
- name: Upload package
id: upload_package
uses: actions/upload-artifact@v3
with:
name: flatline_lsp_windows_${{ matrix.build }}.zip
path: dist/flatline_lsp_windows_${{ matrix.build }}.zip

create-release:
runs-on: ubuntu-latest
needs: [build-release-ubuntu-2004]
Expand Down Expand Up @@ -121,8 +210,8 @@ jobs:
draft: false
prerelease: true

- name: Upload release openblas asset
id: upload_release_openblas_asset
- name: Upload release ubuntu2004 openblas asset
id: upload_release_ubuntu2004_openblas_asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand All @@ -132,8 +221,8 @@ jobs:
asset_name: flatline_lsp_ubuntu2004_openblas.zip
asset_content_type: application/zip

- name: Upload release cublas asset
id: upload_release_cublas_asset
- name: Upload release ubuntu2004 cublas asset
id: upload_release_ubuntu2004_cublas_asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand All @@ -143,6 +232,17 @@ jobs:
asset_name: flatline_lsp_ubuntu2004_cublas.zip
asset_content_type: application/zip

- name: Upload release windows openblas asset
id: upload_release_windows_openblas_asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: flatline_lsp_windows_openblas.zip/flatline_lsp_windows_openblas.zip
asset_name: flatline_lsp_windows_openblas.zip
asset_content_type: application/zip

test-on-ubuntu-2004:
runs-on: ubuntu-20.04
needs: [create-release]
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ target_link_libraries(httplib INTERFACE Threads::Threads)
add_executable(${PROJECT_NAME}-server
${CMAKE_CURRENT_SOURCE_DIR}/flatline_server.cpp)
set_target_properties(${PROJECT_NAME}-server PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin")
target_link_libraries(${PROJECT_NAME}-server PRIVATE llama ggml httplib jsoncpp_static structopt spdlog::spdlog "stdc++fs")
target_link_libraries(${PROJECT_NAME}-server PRIVATE llama ggml httplib jsoncpp_static structopt spdlog::spdlog)
add_custom_command(
TARGET ${PROJECT_NAME}-server
POST_BUILD
Expand Down

0 comments on commit fd95099

Please sign in to comment.