name: CI on: [push, pull_request] jobs: ubuntu-latest-make: runs-on: ubuntu-latest steps: - name: Clone uses: actions/checkout@v1 - name: Dependencies run: | sudo apt-get update sudo apt-get install build-essential - name: Build run: | make ubuntu-latest-cmake: runs-on: ubuntu-latest steps: - name: Clone uses: actions/checkout@v1 - name: Dependencies run: | sudo apt-get update sudo apt-get install build-essential - name: Build run: | mkdir build cd build cmake .. cmake --build . --config Release macOS-latest-make: runs-on: macos-latest steps: - name: Clone uses: actions/checkout@v1 - name: Dependencies run: | brew update - name: Build run: | make macOS-latest-cmake: runs-on: macOS-latest steps: - name: Clone uses: actions/checkout@v1 - name: Dependencies run: | brew update - name: Build run: | mkdir build cd build cmake .. cmake --build . --config Release windows-latest-cmake: runs-on: windows-latest steps: - name: Clone uses: actions/checkout@v1 - name: Build run: | mkdir build cd build cmake .. cmake --build . --config Release # ubuntu-latest-gcc: # runs-on: ubuntu-latest # # strategy: # matrix: # build: [Debug, Release] # # steps: # - name: Clone # uses: actions/checkout@v1 # # - name: Dependencies # run: | # sudo apt-get update # sudo apt-get install build-essential # sudo apt-get install cmake # # - name: Configure # run: cmake . -DCMAKE_BUILD_TYPE=${{ matrix.build }} # # - name: Build # run: | # make # # ubuntu-latest-clang: # runs-on: ubuntu-latest # # strategy: # matrix: # build: [Debug, Release] # # steps: # - name: Clone # uses: actions/checkout@v1 # # - name: Dependencies # run: | # sudo apt-get update # sudo apt-get install build-essential # sudo apt-get install cmake # # - name: Configure # run: cmake . -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang # # - name: Build # run: | # make # # ubuntu-latest-gcc-sanitized: # runs-on: ubuntu-latest # # strategy: # matrix: # sanitizer: [ADDRESS, THREAD, UNDEFINED] # # steps: # - name: Clone # uses: actions/checkout@v1 # # - name: Dependencies # run: | # sudo apt-get update # sudo apt-get install build-essential # sudo apt-get install cmake # # - name: Configure # run: cmake . -DCMAKE_BUILD_TYPE=Debug -DLLAMA_SANITIZE_${{ matrix.sanitizer }}=ON # # - name: Build # run: | # make # # windows: # runs-on: windows-latest # # strategy: # matrix: # build: [Release] # arch: [Win32, x64] # include: # - arch: Win32 # s2arc: x86 # - arch: x64 # s2arc: x64 # # steps: # - name: Clone # uses: actions/checkout@v1 # # - name: Add msbuild to PATH # uses: microsoft/setup-msbuild@v1 # # - name: Configure # run: > # cmake -S . -B ./build -A ${{ matrix.arch }} # -DCMAKE_BUILD_TYPE=${{ matrix.build }} # # - name: Build # run: | # cd ./build # msbuild ALL_BUILD.vcxproj -t:build -p:configuration=${{ matrix.build }} -p:platform=${{ matrix.arch }} # # - name: Upload binaries # uses: actions/upload-artifact@v1 # with: # name: llama-bin-${{ matrix.arch }} # path: build/bin/${{ matrix.build }} # # windows-blas: # runs-on: windows-latest # # strategy: # matrix: # build: [Release] # arch: [Win32, x64] # blas: [ON] # include: # - arch: Win32 # obzip: https://github.com/xianyi/OpenBLAS/releases/download/v0.3.21/OpenBLAS-0.3.21-x86.zip # s2arc: x86 # - arch: x64 # obzip: https://github.com/xianyi/OpenBLAS/releases/download/v0.3.21/OpenBLAS-0.3.21-x64.zip # s2arc: x64 # # steps: # - name: Clone # uses: actions/checkout@v1 # # - name: Add msbuild to PATH # uses: microsoft/setup-msbuild@v1 # # - name: Fetch OpenBLAS # if: matrix.blas == 'ON' # run: | # C:/msys64/usr/bin/wget.exe -qO blas.zip ${{ matrix.obzip }} # 7z x blas.zip -oblas -y # copy blas/include/cblas.h . # copy blas/include/openblas_config.h . # echo "blasdir=$env:GITHUB_WORKSPACE/blas" >> $env:GITHUB_ENV # # - name: Configure # run: > # cmake -S . -B ./build -A ${{ matrix.arch }} # -DCMAKE_BUILD_TYPE=${{ matrix.build }} # -DLLAMA_SUPPORT_OPENBLAS=${{ matrix.blas }} # -DCMAKE_LIBRARY_PATH="$env:blasdir/lib" # # - name: Build # run: | # cd ./build # msbuild ALL_BUILD.vcxproj -t:build -p:configuration=${{ matrix.build }} -p:platform=${{ matrix.arch }} # # - name: Copy libopenblas.dll # if: matrix.blas == 'ON' # run: copy "$env:blasdir/bin/libopenblas.dll" build/bin/${{ matrix.build }} # # - name: Upload binaries # if: matrix.blas == 'ON' # uses: actions/upload-artifact@v1 # with: # name: llama-blas-bin-${{ matrix.arch }} # path: build/bin/${{ matrix.build }} # # emscripten: # runs-on: ubuntu-latest # # strategy: # matrix: # build: [Release] # # steps: # - name: Clone # uses: actions/checkout@v1 # # - name: Dependencies # run: | # wget -q https://github.com/emscripten-core/emsdk/archive/master.tar.gz # tar -xvf master.tar.gz # emsdk-master/emsdk update # emsdk-master/emsdk install latest # emsdk-master/emsdk activate latest # # - name: Configure # run: echo "tmp" # # - name: Build # run: | # pushd emsdk-master # source ./emsdk_env.sh # popd # emcmake cmake . -DCMAKE_BUILD_TYPE=${{ matrix.build }} # make