diff --git a/.github/actions/alembic-install-dep/action.yml b/.github/actions/alembic-install-dep/action.yml index b2f56e455f..13876b450d 100644 --- a/.github/actions/alembic-install-dep/action.yml +++ b/.github/actions/alembic-install-dep/action.yml @@ -15,7 +15,7 @@ runs: uses: actions/cache@v4 with: path: dependencies/alembic_install - key: alembic-v1.8.5-${{runner.os}}-${{inputs.cpu}}-2 + key: alembic-v1.8.5-${{runner.os}}-${{inputs.cpu}}-3 - name: Checkout Alembic if: steps.cache-alembic.outputs.cache-hit != 'true' diff --git a/.github/actions/assimp-install-dep/action.yml b/.github/actions/assimp-install-dep/action.yml index 5291731451..0e2703757b 100644 --- a/.github/actions/assimp-install-dep/action.yml +++ b/.github/actions/assimp-install-dep/action.yml @@ -15,7 +15,7 @@ runs: uses: actions/cache@v4 with: path: dependencies/assimp_install - key: assimp-v5.3.1-${{runner.os}}-${{inputs.cpu}}-2 + key: assimp-v5.3.1-${{runner.os}}-${{inputs.cpu}}-3 - name: Checkout ASSIMP if: steps.cache-assimp.outputs.cache-hit != 'true' diff --git a/.github/actions/blosc-install-dep/action.yml b/.github/actions/blosc-install-dep/action.yml index 8c27e61169..04b31ac6ef 100644 --- a/.github/actions/blosc-install-dep/action.yml +++ b/.github/actions/blosc-install-dep/action.yml @@ -15,7 +15,7 @@ runs: uses: actions/cache@v4 with: path: dependencies/blosc_install - key: blosc-1.21.5-${{runner.os}}-${{inputs.cpu}}-2 + key: blosc-1.21.5-${{runner.os}}-${{inputs.cpu}}-3 # Dependents: openvdb vtk - name: Checkout blosc diff --git a/.github/actions/boost-install-dep/action.yml b/.github/actions/boost-install-dep/action.yml index 9978c09d3f..543390fdbd 100644 --- a/.github/actions/boost-install-dep/action.yml +++ b/.github/actions/boost-install-dep/action.yml @@ -15,7 +15,7 @@ runs: uses: actions/cache@v4 with: path: dependencies/boost_install - key: boost-1.83.0-${{runner.os}}-${{inputs.cpu}}-3 + key: boost-1.83.0-${{runner.os}}-${{inputs.cpu}}-4 # Dependents: usd openvdb vtk - name: Checkout Boost diff --git a/.github/actions/draco-install-dep/action.yml b/.github/actions/draco-install-dep/action.yml index a9882a8c1d..f643d79c98 100644 --- a/.github/actions/draco-install-dep/action.yml +++ b/.github/actions/draco-install-dep/action.yml @@ -15,7 +15,7 @@ runs: uses: actions/cache@v4 with: path: dependencies/draco_install - key: draco-1.5.7-${{runner.os}}-${{inputs.cpu}}-0 + key: draco-1.5.7-${{runner.os}}-${{inputs.cpu}}-1 - name: Checkout Draco if: steps.cache-draco.outputs.cache-hit != 'true' diff --git a/.github/actions/generic-ci/action.yml b/.github/actions/generic-ci/action.yml index bad925debf..51ed1c4fc4 100644 --- a/.github/actions/generic-ci/action.yml +++ b/.github/actions/generic-ci/action.yml @@ -124,11 +124,6 @@ runs: working-directory: ${{github.workspace}} run: echo "PATH=$env:PATH;$(pwd)\dependencies\install\bin\;$(pwd)\dependencies\install\lib\;$(pwd)\install\bin\;"| Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append - - name: Determine if testing should be enabled - id: vars - shell: bash - run: echo "run_tests=${{ inputs.cpu == 'x86_64' && 'true' || 'false' }}" >> $GITHUB_OUTPUT - # occt coloring not supported on macOS because of #792 # Exodus not supported on Apple Silicon because of #976 # CMAKE_MODULE_PATH is required because of @@ -193,11 +188,19 @@ runs: path: ${{github.workspace}}\build\bin_Release - name: Test - if: steps.vars.outputs.run_tests == 'true' + if: inputs.cpu == 'x86_64' shell: bash working-directory: ${{github.workspace}}/build run: ctest -C Release -j 2 --output-on-failure || ctest -C Release -j 1 --rerun-failed -VV + # Certain tests are failing on macOS arm64 for unknown reasons + # https://github.com/f3d-app/f3d/issues/1276 + - name: Test + if: inputs.cpu == 'arm64' + shell: bash + working-directory: ${{github.workspace}}/build + run: ctest -E "(TestGrid)|(TestConfig)" -C Release -j 2 --output-on-failure || ctest -C Release -j 1 --rerun-failed -VV + - name: Upload Tests Artifact if: failure() uses: actions/upload-artifact@v4 @@ -248,7 +251,7 @@ runs: # older VTK version create different renderings so they are not tested - name: Test libf3d examples - if: inputs.vtk_version != 'v9.0.0' && inputs.vtk_version != 'v9.1.0' && steps.vars.outputs.run_tests == 'true' + if: inputs.vtk_version != 'v9.0.0' && inputs.vtk_version != 'v9.1.0' shell: bash working-directory: ${{github.workspace}} run: ctest --test-dir build_examples -C Release -VV @@ -261,7 +264,6 @@ runs: cmake --build build_plugins --config Release - name: Test plugin examples - if: steps.vars.outputs.run_tests == 'true' shell: bash working-directory: ${{github.workspace}} run: ctest --test-dir build_plugins -C Release -VV @@ -296,8 +298,10 @@ runs: with: path: ${{github.workspace}}\install\bin + # Grid rendering has artifacts in macOS arm64 CI + # https://github.com/f3d-app/f3d/issues/1276 - name: Check F3D_PLUGINS_PATH using plugin example - if: inputs.vtk_version != 'v9.0.0' && inputs.vtk_version != 'v9.1.0' && inputs.vtk_version != 'v9.2.6' && steps.vars.outputs.run_tests == 'true' + if: inputs.vtk_version != 'v9.0.0' && inputs.vtk_version != 'v9.1.0' && inputs.vtk_version != 'v9.2.6' && inputs.cpu != 'arm64' shell: bash working-directory: ${{github.workspace}}/install run: F3D_PLUGINS_PATH=$(pwd)/../build_plugins/example-plugin${{ runner.os == 'Windows' && '/Release' || null }} ${{ env.F3D_BIN_PATH }} ../source/examples/plugins/example-plugin/data.expl --load-plugins=example --output=../install_example_plugin_output.png --ref=../source/.github/baselines/install_example_plugin_output.png --resolution=300,300 --verbose @@ -309,8 +313,10 @@ runs: cmake --install build_plugins --config Release cmake --install build_plugins --config Release --component configuration + # Grid rendering has artifacts in macOS arm64 CI + # https://github.com/f3d-app/f3d/issues/1276 - name: Check Install - if: inputs.vtk_version != 'v9.0.0' && inputs.vtk_version != 'v9.1.0' && inputs.vtk_version != 'v9.2.6' && steps.vars.outputs.run_tests == 'true' + if: inputs.vtk_version != 'v9.0.0' && inputs.vtk_version != 'v9.1.0' && inputs.vtk_version != 'v9.2.6' && inputs.cpu != 'arm64' shell: bash working-directory: ${{github.workspace}}/install run: | diff --git a/.github/actions/imath-install-dep/action.yml b/.github/actions/imath-install-dep/action.yml index f2ea02b0be..aa6c1ec32a 100644 --- a/.github/actions/imath-install-dep/action.yml +++ b/.github/actions/imath-install-dep/action.yml @@ -15,7 +15,7 @@ runs: uses: actions/cache@v4 with: path: dependencies/imath_install - key: imath-v3.1.10-${{runner.os}}-${{inputs.cpu}}-0 + key: imath-v3.1.10-${{runner.os}}-${{inputs.cpu}}-1 # Dependents: alembic - name: Checkout Imath diff --git a/.github/actions/occt-install-dep/action.yml b/.github/actions/occt-install-dep/action.yml index 4815e31c80..ff4fd6a5c5 100644 --- a/.github/actions/occt-install-dep/action.yml +++ b/.github/actions/occt-install-dep/action.yml @@ -15,7 +15,7 @@ runs: uses: actions/cache@v4 with: path: dependencies/occt_install - key: occt-V7_7_2-${{runner.os}}-${{inputs.cpu}}-1 + key: occt-V7_7_2-${{runner.os}}-${{inputs.cpu}}-2 - name: Checkout OCCT if: steps.cache-occt.outputs.cache-hit != 'true' diff --git a/.github/actions/openexr-install-dep/action.yml b/.github/actions/openexr-install-dep/action.yml index b4417a3aac..db668db8c5 100644 --- a/.github/actions/openexr-install-dep/action.yml +++ b/.github/actions/openexr-install-dep/action.yml @@ -15,7 +15,7 @@ runs: uses: actions/cache@v4 with: path: dependencies/openexr_install - key: openexr-v3.2.1-${{runner.os}}-${{inputs.cpu}}-0 + key: openexr-v3.2.1-${{runner.os}}-${{inputs.cpu}}-1 # Dependents: usd - name: Checkout OpenEXR diff --git a/.github/actions/openvdb-install-dep/action.yml b/.github/actions/openvdb-install-dep/action.yml index 9b57e0b483..5c98e8fb33 100644 --- a/.github/actions/openvdb-install-dep/action.yml +++ b/.github/actions/openvdb-install-dep/action.yml @@ -15,7 +15,7 @@ runs: uses: actions/cache@v4 with: path: dependencies/openvdb_install - key: openvdb-11.0.0-${{runner.os}}-${{inputs.cpu}}-4 + key: openvdb-11.0.0-${{runner.os}}-${{inputs.cpu}}-5 # Dependents: vtk - name: Checkout OpenVDB diff --git a/.github/actions/tbb-install-dep/action.yml b/.github/actions/tbb-install-dep/action.yml index e365f0347a..8f0c6c076a 100644 --- a/.github/actions/tbb-install-dep/action.yml +++ b/.github/actions/tbb-install-dep/action.yml @@ -15,7 +15,7 @@ runs: uses: actions/cache@v4 with: path: dependencies/tbb_install - key: tbb-v2021.11.0-${{runner.os}}-${{inputs.cpu}}-0 + key: tbb-v2021.11.0-${{runner.os}}-${{inputs.cpu}}-1 # Dependents: usd openvdb vtk - name: Checkout TBB diff --git a/.github/actions/usd-install-dep/action.yml b/.github/actions/usd-install-dep/action.yml index d34f051826..5c9f8d35ff 100644 --- a/.github/actions/usd-install-dep/action.yml +++ b/.github/actions/usd-install-dep/action.yml @@ -15,7 +15,7 @@ runs: uses: actions/cache@v4 with: path: dependencies/usd_install - key: usd-v23.05-${{runner.os}}-${{inputs.cpu}}-7 + key: usd-v23.05-${{runner.os}}-${{inputs.cpu}}-8 - name: Checkout USD if: steps.cache-usd.outputs.cache-hit != 'true' diff --git a/.github/actions/vtk-install-dep/action.yml b/.github/actions/vtk-install-dep/action.yml index 0069032a45..83ea754f39 100644 --- a/.github/actions/vtk-install-dep/action.yml +++ b/.github/actions/vtk-install-dep/action.yml @@ -47,7 +47,7 @@ runs: uses: actions/cache@v4 with: path: dependencies/vtk_install - key: vtk-${{env.VTK_SHA_OR_TAG}}-${{runner.os}}-${{inputs.raytracing_label}}-${{inputs.egl_label}}-${{inputs.cpu}}-4 + key: vtk-${{env.VTK_SHA_OR_TAG}}-${{runner.os}}-${{inputs.raytracing_label}}-${{inputs.egl_label}}-${{inputs.cpu}}-5 - name: Setup VTK if: steps.cache-vtk.outputs.cache-hit != 'true' diff --git a/.github/actions/zlib-install-dep/action.yml b/.github/actions/zlib-install-dep/action.yml index 9932ac6d56..8c8ded92e7 100644 --- a/.github/actions/zlib-install-dep/action.yml +++ b/.github/actions/zlib-install-dep/action.yml @@ -15,7 +15,7 @@ runs: uses: actions/cache@v4 with: path: dependencies/zlib_install - key: zlib-1.3.1-${{runner.os}}-${{inputs.cpu}}-0 + key: zlib-1.3.1-${{runner.os}}-${{inputs.cpu}}-1 # Dependents: blosc openvdb vtk - name: Checkout zlib diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4f6428b9f0..a79a26f8bd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -145,17 +145,50 @@ jobs: fail-fast: false matrix: vtk_version: [commit, v9.3.0, v9.2.6] - cpu: [x86_64, arm64] + cpu: [x86_64] bundle_label: [no-bundle] include: - vtk_version: commit bundle_label: bundle cpu: x86_64 + + runs-on: macos-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + path: 'source' + fetch-depth: 0 + lfs: false + + - name: Generic CI + uses: ./source/.github/actions/generic-ci + with: + vtk_version: ${{matrix.vtk_version}} + bundle_label: ${{matrix.bundle_label}} + cpu: ${{matrix.cpu}} + lfs_sha: ${{ needs.cache_lfs.outputs.lfs_sha}} + +#---------------------------------------------------------------------------- +# MacOS ARM CI: Build and test, cross-vtk build matrix +#---------------------------------------------------------------------------- + macos_arm: + if: github.event.pull_request.draft == false + needs: cache_lfs + + strategy: + fail-fast: false + matrix: + vtk_version: [commit, v9.3.0, v9.2.6] + cpu: [arm64] + bundle_label: [no-bundle] + include: - vtk_version: commit bundle_label: bundle cpu: arm64 - runs-on: macos-latest + runs-on: macos-14 steps: - name: Checkout diff --git a/testing/baselines/TestCameraConfiguration.png b/testing/baselines/TestCameraConfiguration.png new file mode 100644 index 0000000000..3b9e37ab61 --- /dev/null +++ b/testing/baselines/TestCameraConfiguration.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c04a8216725cad4788361aa7dc73d04eb8f01ba0ca3f65b224312fefdf0cd15 +size 26019 diff --git a/testing/baselines/TestLineWidth.png b/testing/baselines/TestLineWidth.png new file mode 100644 index 0000000000..aac0e2ee52 --- /dev/null +++ b/testing/baselines/TestLineWidth.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82a178aa8cf2bb568cbb612cd01dc7e2d9ec55586595ebe53713a67b29e105c1 +size 29194 diff --git a/testing/baselines/TestMetaData.png b/testing/baselines/TestMetaData.png new file mode 100644 index 0000000000..a8f1724698 --- /dev/null +++ b/testing/baselines/TestMetaData.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6286e03c2371b50d7bb52a0031fc258c503a25cf77c5849c6f6abc8b2a7444cb +size 6569 diff --git a/testing/baselines/TestPointCloudBar.png b/testing/baselines/TestPointCloudBar.png new file mode 100644 index 0000000000..65ac8139cf --- /dev/null +++ b/testing/baselines/TestPointCloudBar.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8fda837d6df1bb95bb92e66cd48dc8f99862e078625c22ce5fa08baa2209c72d +size 32963 diff --git a/testing/baselines/TestPointCloudVolume.png b/testing/baselines/TestPointCloudVolume.png new file mode 100644 index 0000000000..998410cce8 --- /dev/null +++ b/testing/baselines/TestPointCloudVolume.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:395867a8bc5b6bc81186cd680755e10006209785696320f520df97b3f38665ae +size 24864 diff --git a/testing/data/mb.vtm b/testing/data/mb.vtm new file mode 100644 index 0000000000..3ef644ed57 --- /dev/null +++ b/testing/data/mb.vtm @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:494462b5e293af227a1f34f1c3706b95551ce173a242e03a82d6d35e6ef9fc13 +size 440