version: 2.1 orbs: win: circleci/windows@5.0 python: circleci/python@1.2 jobs: build-linux: docker: - image: circleci/python:3.8 steps: - checkout - run: name: Install dependencies command: | sudo apt-get update sudo apt-get install -y cmake build-essential pip install setuptools wheel cmake - run: name: Build C library command: | git submodule init git submodule update cd gpt4all-backend mkdir build cd build cmake .. cmake --build . --parallel - run: name: Build wheel command: | cd gpt4all-bindings/python/ python setup.py bdist_wheel --plat-name=manylinux1_x86_64 - persist_to_workspace: root: gpt4all-bindings/python/dist paths: - "*.whl" build-macos: macos: xcode: "14.2.0" resource_class: macos.m1.large.gen1 steps: - checkout - run: name: Install dependencies command: | brew install cmake pip install setuptools wheel cmake - run: name: Build C library command: | git submodule init git submodule update cd gpt4all-backend mkdir build cd build cmake .. -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" cmake --build . --parallel - run: name: Build wheel command: | cd gpt4all-bindings/python python setup.py bdist_wheel --plat-name=macosx_10_9_universal2 - persist_to_workspace: root: gpt4all-bindings/python/dist paths: - "*.whl" # build-linux: # docker: # - image: circleci/python:3.8 # steps: # - checkout # - run: # name: Install dependencies # command: | # sudo apt-get update # sudo apt-get install -y cmake build-essential # pip install setuptools wheel cmake # - run: # name: Install MingW # command: sudo apt-get install -y mingw-w64 # - run: # name: Build C library # command: | # git submodule init # git submodule update # cd llmodel # mkdir build # cd build # cmake \ # -DCMAKE_SYSTEM_NAME=Windows \ # -DCMAKE_C_COMPILER=x86_64-w64-mingw32-gcc \ # -DCMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++ \ # -DCMAKE_EXECUTABLE_SUFFIX=".exe" \ # -DCMAKE_SHARED_LIBRARY_SUFFIX=".dll" \ # .. # cmake --build . --parallel # - run: # name: Build wheel # command: | # cd bindings/python/ # python setup.py bdist_wheel --plat-name=manylinux1_x86_64 # - persist_to_workspace: # root: bindings/python/dist # paths: # - "*.whl" build-windows: executor: name: win/default steps: - checkout - run: name: Install MinGW64 command: choco install -y mingw --force --no-progress - run: name: Add MinGW64 to PATH command: $env:Path += ";C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\bin" - run: name: Install dependencies command: choco install -y cmake --installargs 'ADD_CMAKE_TO_PATH=System' - run: name: Install Python dependencies command: pip install setuptools wheel cmake - run: name: Build C library command: | git submodule init git submodule update cd gpt4all-backend mkdir build cd build cmake -G "MinGW Makefiles" .. cmake --build . --parallel - run: name: Build wheel command: | cd gpt4all-bindings/python python setup.py bdist_wheel --plat-name=win_amd64 - persist_to_workspace: root: gpt4all-bindings/python/dist paths: - "*.whl" store-and-upload-wheels: docker: - image: circleci/python:3.8 steps: - setup_remote_docker - attach_workspace: at: /tmp/workspace - run: name: Install dependencies command: | sudo apt-get update sudo apt-get install -y cmake build-essential pip install setuptools wheel twine # - run: # name: Upload Python package # command: | # twine upload /tmp/workspace/*.whl --username __token__ --password $PYPI_CRED - store_artifacts: path: /tmp/workspace workflows: version: 2 build-deploy: jobs: #- build-linux #- build-macos - build-windows filters: branches: only: main - store-and-upload-wheels: requires: - build-windows # - build-linux # - build-macos filters: branches: only: main