Automatically generate Linux Binaries (#564)

* .sh script V1

* koboldcpp.sh polish

* koboldcpp.sh dist generator

* Include html's in dist

* RWKV in Linux Dist

* Lower dependency requirements

* Eliminate wget dependency

* More distinct binary name

I know its technically amd64, but I don't want to cause confusion among nvidia users.

* Use System OpenCL

Unsure how this will behave in the pyinstaller build, but pocl ended up CPU only. With a bit of luck the pyinstaller uses the one from the actual system if compiled in a system without opencl, while conda now includes it for that specific system.

* Add cblas dependency

Missing this causes compile failures on some system's

* ICD workaround

Ideally we find a better solution, but conda forces ICD and needs this for the successful compile. However, pyinstaller then embeds the ICD causing it to be limited to the system it was compiled for. By temporarily removing the ICD pyinstaller can't find it and everything remains functional. Ideally we do this on a pyinstaller level, but I could not find any good options to do so yet.

* Fix & Nocuda

* Automatically build Linux Binary

* Auto build on v tag

* Better on release

* Fix missing jobs:

* More distinct name

* I am to retro...

* Fix release upload

* Another upload attempt

* Another upload attempt

* Also rebuild on release edit

* Placebo commit to maybe fix CI

---------

Co-authored-by: root <root@DESKTOP-DQ1QRAG>
This commit is contained in:
henk717 2023-12-14 07:48:22 +01:00 committed by GitHub
parent 8dd975653d
commit 146e3bb3aa
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -0,0 +1,35 @@
name: Koboldcpp Builder
on:
release:
types:
- created
- edited
env:
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
jobs:
linux:
runs-on: ubuntu-20.04
steps:
- name: Clone
id: checkout
uses: actions/checkout@v3
- name: Dependencies
id: depends
run: |
sudo apt-get update
sudo apt-get install git curl bzip2
- name: Build
id: make_build
run: |
./koboldcpp.sh dist
- name: Upload release binaries
uses: alexellis/upload-assets@0.4.0
env:
GITHUB_TOKEN: ${{ github.token }}
with:
asset_paths: '["./dist/*"]'