Skip to content

turn threadding off for now #82

turn threadding off for now

turn threadding off for now #82

Workflow file for this run

# This is a basic workflow to help you get started with Actions
name: CI
# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the master branch
on:
push:
branches: [ master, main ]
tags:
- '*'
pull_request:
branches: [ master, main ]
jobs:
build_windows:
name: Windows (TBB:${{matrix.parallelization}}, SHARED:${{matrix.shared}})
timeout-minutes: 30
strategy:
matrix:
parallelization: [ NONE]
shared: [ ON]
runs-on: windows-2025
steps:
- uses: actions/checkout@v4
- uses: jwlawson/actions-setup-cmake@v2
with:
cmake-version: 4.0.2
- uses: ilammy/msvc-dev-cmd@v1
- name: Build ${{matrix.parallelization}}
shell: powershell
run: |
cmake . -DCMAKE_BUILD_TYPE=Release -DCMAKE_POLICY_VERSION_MINIMUM="3.5" -DBUILD_SHARED_LIBS=${{matrix.shared}} -DMANIFOLD_STRICT=ON -DMANIFOLD_USE_BUILTIN_TBB=ON -DMANIFOLD_DEBUG=ON -DMANIFOLD_ASSERT=ON -DMANIFOLD_PAR=${{matrix.parallelization}} -A x64 -B build
cd build
cmake --build . --target ALL_BUILD --config Release
- name: Test dll location
if: matrix.shared == 'ON'
shell: bash
run: |
ls ./build/lib/Release
[ -f ./build/lib/Release/manifold.dll ]
[ -f ./build/lib/Release/manifoldc.dll ]
- name: Test
shell: bash
run: |
cp ./build/lib/Release/* ./build/bin/Release
cd build/bin/Release
./manifold_test.exe
cd ../../
- name: test cmake consumer
run: |
cd build
cmake --install .
cd ..
./scripts/test-cmake.sh
build_mac:
timeout-minutes: 30
strategy:
matrix:
parallel_backend: [ON]
runs-on: macos-14
if: github.event.pull_request.draft == false || startsWith(github.ref, 'refs/tags/')
steps:
- name: Install Python 3.12
run: |
brew update
brew install python@3.12
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
- name: Configure Python 3.12 Environment
run: |
echo "PATH=$(brew --prefix python@3.12)/bin:/opt/homebrew/opt/python@3.12/libexec/bin:$PATH" >> $GITHUB_ENV
- name: Install common dependencies
run: |
python3 -m venv .venv
brew install pkg-config assimp
- name: Install TBB
run: brew install tbb
- name: Install Java and Maven
run: |
brew install openjdk@21
export PATH="$(brew --prefix openjdk@21)/bin:$PATH"
echo "PATH=$(brew --prefix openjdk@21)/bin:$PATH" >> $GITHUB_ENV
brew install --ignore-dependencies maven
echo "JAVA_HOME=$(brew --prefix openjdk@21)" >> $GITHUB_ENV
- name: Check Java version
run: java -version
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 2
- uses: jwlawson/actions-setup-cmake@v1.12
- name: Build
run: |
bash ./scripts/buildC.sh
shell: bash
- name: Find Libs
run: |
find . -name "*.dylib"
shell: bash
- name: Build Java package
shell: bash
run: |
export PATH="/usr/local/opt/openjdk@21/bin:$PATH"
cd bindings/java
JAVA_PACKAGE_VERSION=$(cat version.txt)
echo "JAVA_PACKAGE_VERSION=$JAVA_PACKAGE_VERSION" >> $GITHUB_ENV
mvn versions:set -DnewVersion=$JAVA_PACKAGE_VERSION --file pom.xml
mvn package -Dos.classifier=mac-arm64
find ./target/classes/ -name "*.class" -delete
# - name: Test
# run: |
# cd build/test
# ./manifold_test
- name: Upload artifact
uses: actions/upload-artifact@v4 # updated from v3
with:
name: manifold_java_bindings_mac_${{env.JAVA_PACKAGE_VERSION}}
path: bindings/java/target/classes/
- name: Find Libs
if: failure() # This step will run only if the previous steps failed
run: |
find . -name "*.dylib"
shell: bash
- name: Upload Surefire Reports
if: failure() # This step will run only if the previous steps failed
uses: actions/upload-artifact@v4 # updated from v3
with:
name: surefire-reports
path: |
/Users/runner/work/manifold/manifold/bindings/java/target/surefire-reports
/Users/runner/work/manifold/manifold/bindings/java/target/*.dump
/Users/runner/work/manifold/manifold/bindings/java/target/*-jvmRun*.dump
/Users/runner/work/manifold/manifold/bindings/java/target/*.dumpstream
deploy_jars:
runs-on: ubuntu-latest
needs: [ build_mac,build_windows]
container:
image: docker://nvidia/cuda:12.0.1-devel-ubuntu22.04
steps:
- name: Install dependencies
run: |
apt-get -y update
DEBIAN_FRONTEND=noninteractive apt install -y maven libomp-dev libassimp-dev git libtbb-dev pkg-config libpython3-dev python3 python3-distutils python3-pip lcov
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 2
- uses: jwlawson/actions-setup-cmake@v1.12
- name: Setup Java
uses: actions/setup-java@v2
with:
java-version: '21'
distribution: 'adopt'
- name: Cache Maven packages
uses: actions/cache@v3
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Build C code
run: |
bash ./scripts/buildC.sh
- name: Get version
id: get_version
run: echo "VERSION=$(cat bindings/java/version.txt)" >> $GITHUB_ENV
shell: bash
- name: Download Artifacts
uses: actions/download-artifact@v4 # updated from v3
with:
name: manifold_java_bindings_mac_${{env.VERSION}}
path: mac-jar
- name: Setup libraries
shell: bash
run: |
VERSION=$(cat bindings/java/version.txt)
mkdir -p ./bindings/java/target/classes/
cp -r mac-jar/* ./bindings/java/target/classes/
find . -name "*.jar"
find . -name "*.dylib"
find . -name "*.so"
- name: Make Jar
shell: bash
run: |
bash scripts/makeJars.sh
- name: Upload artifact
uses: actions/upload-artifact@v4 # updated from v3
with:
name: manifold3d-${{env.VERSION}}.jar
path: ./bindings/java/target/manifold3d-${{env.VERSION}}.jar
- name: Deploy Jar
if: startsWith(github.ref, 'refs/tags/') && github.ref_name == env.VERSION
shell: bash
run: |
bash scripts/clojar.sh
env:
CLOJARS_USERNAME: ${{ secrets.CLOJARS_USERNAME }}
CLOJARS_TOKEN: ${{ secrets.CLOJARS_TOKEN }}