diff --git a/.gitea/workflows/lsp-server-ci.yml b/.gitea/workflows/lsp-server-ci.yml new file mode 100644 index 0000000..3be475c --- /dev/null +++ b/.gitea/workflows/lsp-server-ci.yml @@ -0,0 +1,45 @@ +name: lsp-server ci + +on: + push: + branches: + - lsp-server + +jobs: + build-and-test: + runs-on: buildx-archlinux + defaults: + run: + shell: bash + working-directory: lsp-server + env: + CONAN_HOME: /tmp/conan-home + BUILD_DIR_LINUX: build/clang-linux + BUILD_DIR_CROSS: build/clang-cross + steps: + - name: Verify workspace + run: | + if [ ! -f conanfile.txt ]; then + echo "Missing lsp-server workspace (conanfile.txt not found)" + exit 1 + fi + + - name: Build linux + run: | + conan install . -pr:h=conan/profiles/linux-x86_64-clang -pr:b=conan/profiles/linux-x86_64-clang -of "$BUILD_DIR_LINUX" --build=missing + cmake -S . -B "$BUILD_DIR_LINUX/Release" \ + -DCMAKE_TOOLCHAIN_FILE="$PWD/$BUILD_DIR_LINUX/Release/generators/conan_toolchain.cmake" \ + -DBUILD_TESTS=ON + cmake --build "$BUILD_DIR_LINUX/Release" + + - name: Build cross + run: | + conan install . -pr:b=conan/profiles/linux-x86_64-clang -pr:h=conan/profiles/windows-x86_64-clang-cross -of "$BUILD_DIR_CROSS" --build=missing + cmake -S . -B "$BUILD_DIR_CROSS/Release" \ + -DCMAKE_TOOLCHAIN_FILE="$PWD/$BUILD_DIR_CROSS/Release/generators/conan_toolchain.cmake" \ + -DBUILD_TESTS=OFF + cmake --build "$BUILD_DIR_CROSS/Release" + + - name: Unit tests + run: | + ctest --test-dir "$BUILD_DIR_LINUX/Release" --output-on-failure