test reducing windows dead weight #170
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build | |
| on: | |
| push: | |
| # pull_request: | |
| release: | |
| types: | |
| - created | |
| # workflow_dispatch: | |
| jobs: | |
| build: | |
| runs-on: ${{ matrix.os }} | |
| env: | |
| CLOJARS_USERNAME: ${{secrets.CLOJARS_USERNAME}} | |
| CLOJARS_PASSWORD: ${{secrets.CLOJARS_PASSWORD}} | |
| strategy: | |
| matrix: | |
| include: | |
| # - os: macos-14 | |
| # platform: macosx-arm64 | |
| # - os: ubuntu-22.04 | |
| # platform: linux-x86_64 | |
| # - os: ubuntu-24.04-arm | |
| # platform: linux-arm64 | |
| - os: windows-latest | |
| platform: windows-x86_64 | |
| steps: | |
| - name: Checkout repository and submodules | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Set up JDK 21 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '21' | |
| distribution: 'temurin' | |
| - name: Cache embedding model | |
| uses: actions/cache@v4 | |
| with: | |
| path: target/embedding-models | |
| key: ${{ runner.os }}-${{ matrix.platform }}-multilingual-e5-small-q8_0-v1 | |
| - name: Install Lein (Unix) | |
| if: runner.os != 'Windows' | |
| uses: knicknic/os-specific-run@v1.0.3 | |
| with: | |
| macos: brew install leiningen | |
| linux: | | |
| curl -O https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein | |
| chmod a+x lein | |
| sudo mv lein /usr/local/bin/ | |
| - name: Install Lein (Windows) | |
| if: runner.os == 'Windows' | |
| run: | | |
| Invoke-WebRequest -Uri "https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein.bat" -OutFile "lein.bat" | |
| .\lein.bat self-install | |
| # macOS ARM64 build | |
| - name: Build macOS ARM64 | |
| if: matrix.platform == 'macosx-arm64' | |
| run: | | |
| mkdir -p src/java/datalevin/dtlvnative/macosx-arm64 | |
| mkdir -p macosx-arm64/resources/datalevin/dtlvnative/macosx-arm64 | |
| brew install libomp llvm | |
| script/build-macos | |
| cp src/*.dylib macosx-arm64/resources/datalevin/dtlvnative/macosx-arm64/ | |
| cd macosx-arm64 | |
| lein deps | |
| cd ../src/java | |
| java -jar ~/.m2/repository/org/bytedeco/javacpp/1.5.13/javacpp-1.5.13.jar datalevin/dtlvnative/DTLV.java | |
| # Fix libjniDTLV.dylib to use @loader_path for libdtlv.dylib reference | |
| cd datalevin/dtlvnative/macosx-arm64 | |
| install_name_tool -change libdtlv.dylib @loader_path/libdtlv.dylib libjniDTLV.dylib | |
| codesign -f -s - libjniDTLV.dylib | |
| cd ../../../../.. | |
| cp src/java/datalevin/dtlvnative/macosx-arm64/*.dylib macosx-arm64/resources/datalevin/dtlvnative/macosx-arm64/ | |
| cd macosx-arm64 | |
| lein run | |
| if [ "${{ github.event_name }}" = "release" ]; then | |
| lein deploy clojars | |
| fi | |
| # Linux x86_64 build | |
| - name: Build Linux x86_64 | |
| if: matrix.platform == 'linux-x86_64' | |
| run: | | |
| export CC=/usr/bin/gcc-12 | |
| export CXX=/usr/bin/g++-12 | |
| sudo apt-get update | |
| sudo apt-get install -y gcc-12 g++-12 | |
| mkdir -p linux-x86_64/resources/datalevin/dtlvnative/linux-x86_64 | |
| mkdir -p src/java/datalevin/dtlvnative/linux-x86_64 | |
| script/build | |
| cp src/*.so linux-x86_64/resources/datalevin/dtlvnative/linux-x86_64 | |
| cd linux-x86_64 | |
| lein deps | |
| cd ../src/java | |
| java -jar ~/.m2/repository/org/bytedeco/javacpp/1.5.13/javacpp-1.5.13.jar datalevin/dtlvnative/DTLV.java | |
| cd ../.. | |
| cp src/java/datalevin/dtlvnative/linux-x86_64/*.so linux-x86_64/resources/datalevin/dtlvnative/linux-x86_64/ | |
| cd linux-x86_64 | |
| lein run | |
| if [ "${{ github.event_name }}" = "release" ]; then | |
| lein deploy clojars | |
| fi | |
| # Linux ARM64 build | |
| - name: Build Linux ARM64 | |
| if: matrix.platform == 'linux-arm64' | |
| run: | | |
| export CC=/usr/bin/gcc-12 | |
| export CXX=/usr/bin/g++-12 | |
| sudo apt-get update | |
| sudo apt-get install -y gcc-12 g++-12 cmake | |
| mkdir -p src/java/datalevin/dtlvnative/linux-arm64 | |
| mkdir -p linux-arm64/resources/datalevin/dtlvnative/linux-arm64 | |
| script/build | |
| cp src/*.so linux-arm64/resources/datalevin/dtlvnative/linux-arm64/ | |
| cd linux-arm64 | |
| lein deps | |
| cd ../src/java | |
| java -jar ~/.m2/repository/org/bytedeco/javacpp/1.5.13/javacpp-1.5.13.jar datalevin/dtlvnative/DTLV.java | |
| cd ../.. | |
| cp src/java/datalevin/dtlvnative/linux-arm64/*.so linux-arm64/resources/datalevin/dtlvnative/linux-arm64/ | |
| cd linux-arm64 | |
| lein run | |
| if [ "${{ github.event_name }}" = "release" ]; then | |
| lein deploy clojars | |
| fi | |
| # Windows x86_64 build | |
| - name: Setup Visual Studio shell | |
| if: runner.os == 'Windows' | |
| uses: ilammy/msvc-dev-cmd@v1 | |
| - name: Build Windows x86_64 | |
| if: matrix.platform == 'windows-x86_64' | |
| shell: cmd | |
| run: | | |
| mkdir windows-x86_64\resources\datalevin\dtlvnative\windows-x86_64 | |
| cd windows-x86_64 | |
| if not exist project.clj exit /b 1 | |
| call ..\lein.bat deps | |
| if errorlevel 1 exit /b %errorlevel% | |
| cd .. | |
| call script\build.bat | |
| if errorlevel 1 exit /b %errorlevel% | |
| cd windows-x86_64 | |
| if not exist project.clj exit /b 1 | |
| call ..\lein.bat run | |
| if errorlevel 1 exit /b %errorlevel% | |
| if "%GITHUB_EVENT_NAME%"=="release" call ..\lein.bat deploy clojars |