Skip to content

vecdb caps support #221

vecdb caps support

vecdb caps support #221

Workflow file for this run

name: CI build
on:
# Trigger the workflow on pushes to only the 'main' branch (this avoids duplicate checks being run e.g. for dependabot pull requests)
push:
branches: [main]
# Trigger the workflow on any pull request
pull_request:
workflow_dispatch:
env:
CARGO_INCREMENTAL: 0
CARGO_NET_RETRY: 10
# RUSTFLAGS: "-D warnings -W unreachable-pub"
RUSTUP_MAX_RETRIES: 10
FETCH_DEPTH: 0 # pull in the tags for the version string
MACOSX_DEPLOYMENT_TARGET: 10.15
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc
CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_LINKER: arm-linux-gnueabihf-gcc
jobs:
dist:
strategy:
matrix:
include:
- os: windows-latest
target: x86_64-pc-windows-msvc
code-target: win32-x64
- os: windows-latest
target: i686-pc-windows-msvc
code-target: win32-ia32
- os: windows-latest
target: aarch64-pc-windows-msvc
code-target: win32-arm64
- os: ubuntu-22.04
target: x86_64-unknown-linux-gnu
code-target: linux-x64
container: ubuntu:18.04
- os: ubuntu-22.04
target: aarch64-unknown-linux-gnu
code-target: linux-arm64
- os: ubuntu-22.04
target: arm-unknown-linux-gnueabihf
code-target: linux-armhf
- os: macos-11
target: x86_64-apple-darwin
code-target: darwin-x64
- os: macos-11
target: aarch64-apple-darwin
code-target: darwin-arm64
env:
LLM_LS_TARGET: ${{ matrix.target }}
name: dist (${{ matrix.target }})
runs-on: ${{ matrix.os }}
container: ${{ matrix.container }}
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: ${{ env.FETCH_DEPTH }}
- name: Install toolchain dependencies
if: matrix.container == 'ubuntu:18.04'
shell: bash
run: |
apt-get update && apt install -y build-essential manpages-dev software-properties-common
add-apt-repository ppa:ubuntu-toolchain-r/test
apt-get install -y sudo build-essential curl libssl-dev pkg-config wget git zlib1g zlib1g-dev gcc-11 g++-11
unlink /usr/bin/gcc && ln -s /usr/bin/gcc-11 /usr/bin/gcc && unlink /usr/bin/g++ && ln -s /usr/bin/g++-11 /usr/bin/g++
wget https://github.com/Kitware/CMake/releases/download/v3.20.0/cmake-3.20.0.tar.gz
tar -zxvf cmake-3.20.0.tar.gz && cd cmake-3.20.0 && ./bootstrap && make && make install && cd.. && cmake --version
curl --proto '=https' --tlsv1.2 --retry 10 --retry-connrefused -fsSL "https://sh.rustup.rs" | sh -s -- --profile minimal --default-toolchain none -y
echo "${CARGO_HOME:-$HOME/.cargo}/bin" >> $GITHUB_PATH
- name: Install Rust toolchain
run: |
rustup update --no-self-update stable
rustup target add ${{ matrix.target }}
rustup component add rust-src
- name: Update apt repositories
if: matrix.target == 'aarch64-unknown-linux-gnu' || matrix.target == 'arm-unknown-linux-gnueabihf'
run: sudo apt-get update
- name: Install AArch64 target toolchain
if: matrix.target == 'aarch64-unknown-linux-gnu'
run: sudo apt-get install gcc-aarch64-linux-gnu
- name: Install ARM target toolchain
if: matrix.target == 'arm-unknown-linux-gnueabihf'
run: sudo apt-get install gcc-arm-linux-gnueabihf
- name: Install toolchain dependencies (MacOS)
if: startsWith(matrix.os, 'macos')
run: brew install protobuf
- name: Install toolchain dependencies (Windows)
if: startsWith(matrix.os, 'windows')
run: choco install protoc
- name: Build and install protobuf library
if: matrix.target == 'arm-unknown-linux-gnueabihf' || matrix.target == 'x86_64-unknown-linux-gnu' || matrix.target == 'aarch64-unknown-linux-gnu' || matrix.target == 'x86_64-unknown-linux-musl'
run: |
git clone --depth=1 --recursive -b v25.1 https://github.com/protocolbuffers/protobuf
cd protobuf && cmake . && cmake --build . --parallel 10 && sudo cmake --install .
- name: Build artifact
if: matrix.target == 'x86_64-unknown-linux-gnu'
run: OPENSSL_STATIC=1 OPENSSL_LIB_DIR=/usr/lib/x86_64-linux-gnu OPENSSL_INCLUDE_DIR=/usr/include/openssl cargo build --release --target-dir dist/
- name: Build artifact
if: matrix.target != 'x86_64-unknown-linux-gnu'
run: cargo build --release --target-dir dist/
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: dist-${{ matrix.target }}
if-no-files-found: ignore
path: |
./dist/release/refact-lsp
./dist/release/refact-lsp.exe
dist-x86_64-unknown-linux-musl:
name: dist (x86_64-unknown-linux-musl)
runs-on: ubuntu-latest
env:
LLM_LS_TARGET: x86_64-unknown-linux-musl
# For some reason `-crt-static` is not working for clang without lld
RUSTFLAGS: "-C link-arg=-fuse-ld=lld -C target-feature=-crt-static"
container:
image: rust:alpine
volumes:
- /usr/local/cargo/registry:/usr/local/cargo/registry
steps:
- name: Install dependencies
run: apk add --no-cache sudo git clang lld musl-dev nodejs npm openssl-dev pkgconfig g++ make cmake zlib linux-headers
- name: Build and install protobuf library
run: |
git clone --depth=1 --recursive -b v25.1 https://github.com/protocolbuffers/protobuf
cd protobuf && cmake . && cmake --build . --parallel 10 && sudo cmake --install .
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: ${{ env.FETCH_DEPTH }}
- name: Dist
run: cargo build --release --target-dir dist/
- name: Upload artifacts
uses: actions/upload-artifact@v1
with:
name: dist-x86_64-unknown-linux-musl
path: ./dist/release/refact-lsp
# dist-arm64-unknown-linux-musl:
# name: dist (arm64-unknown-linux-musl)
# runs-on: ubuntu-latest
# steps:
# - name: Checkout repository
# uses: actions/checkout@v3
# with:
# fetch-depth: ${{ env.FETCH_DEPTH }}
# - uses: uraimo/run-on-arch-action@v2
# name: Build artifact
# id: build
# with:
# arch: aarch64
# distro: rust:alpine
# dockerRunArgs: |
# --volume "${PWD}:/data"
# env: |
# RUSTFLAGS: "-C link-arg=-fuse-ld=lld -C target-feature=-crt-static"
# shell: /bin/sh
# install: |
# apk add --no-cache git clang lld musl-dev nodejs npm openssl-dev pkgconfig g++
# run: |
# cd /data
# cargo build --release --target-dir dist/
# - name: Upload artifacts
# uses: actions/upload-artifact@v1
# with:
# name: dist-arm64-unknown-linux-musl
# path: ./dist/release/refact-lsp