| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- # Server build and tests
- name: Server
- on:
- workflow_dispatch: # allows manual triggering
- push:
- branches:
- - master
- paths: ['.github/workflows/server.yml', '**/CMakeLists.txt', '**/Makefile', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp', '**/*.cu', '**/*.swift', '**/*.m', 'examples/server/tests/**.*']
- pull_request:
- types: [opened, synchronize, reopened]
- paths: ['.github/workflows/server.yml', '**/CMakeLists.txt', '**/Makefile', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp', '**/*.cu', '**/*.swift', '**/*.m', 'examples/server/tests/**.*']
- schedule:
- - cron: '00 0 * * *'
- jobs:
- server:
- runs-on: ubuntu-latest
- strategy:
- matrix:
- sanitizer: [ADDRESS, THREAD, UNDEFINED]
- build_type: [Debug, Release]
- include:
- - build_type: Release
- sanitizer: ""
- exclude:
- - build_type: Release
- sanitizer: ADDRESS
- - build_type: Release
- sanitizer: THREAD
- - build_type: Release
- sanitizer: UNDEFINED
- container:
- image: ubuntu:latest
- ports:
- - 8888
- options: --cpus 4
- steps:
- - name: Clone
- id: checkout
- uses: actions/checkout@v3
- - name: Dependencies
- id: depends
- run: |
- apt-get update
- apt-get -y install \
- build-essential \
- git \
- cmake \
- python3-pip \
- wget \
- psmisc
- - name: Build
- id: cmake_build
- run: |
- mkdir build
- cd build
- cmake .. \
- -DLLAMA_NATIVE=OFF \
- -DLLAMA_BUILD_SERVER=ON \
- -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
- -DLLAMA_SANITIZE_${{ matrix.sanitizer }}=ON ;
- cmake --build . --config ${{ matrix.build_type }} -j $(nproc) --target server
- - name: Tests dependencies
- id: test_dependencies
- run: |
- pip install -r examples/server/tests/requirements.txt
- - name: Tests
- id: server_integration_tests
- run: |
- cd examples/server/tests
- PORT=8888 ./tests.sh
- - name: Slow tests
- id: server_integration_tests_slow
- if: github.event.schedule != ''
- run: |
- cd examples/server/tests
- PORT=8888 ./tests.sh --stop --no-skipped --no-capture --tags slow
|