Skip to content

Drop Boost requirement for Python-free USD; update notes #146

Drop Boost requirement for Python-free USD; update notes

Drop Boost requirement for Python-free USD; update notes #146

Workflow file for this run

name: test-linux
on:
push:
branches: [ main, dev ]
pull_request:
branches: [ main, dev ]
# Run tests once a week on Sunday.
schedule:
- cron: "0 6 * * 0"
permissions:
contents: read
jobs:
test-linux:
runs-on: ubuntu-latest
timeout-minutes: 300
strategy:
fail-fast: false
matrix:
usd: ["v24.08", "v25.05"]
python: ["", "3.10", "3.12"]
name: "USD-${{ matrix.usd }}${{ matrix.python != '' && format('-py{0}', matrix.python) || '-no-py' }}"
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python }}
if: matrix.python != ''
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
- name: Create Build Environment
run: |
sudo apt update
sudo apt install -y libgtest-dev ninja-build
mkdir -p ${{github.workspace}}/build
mkdir -p ${{runner.temp}}/USD
- name: Install test Python deps
if: matrix.python != ''
run: |
python -m pip install -r ${{github.workspace}}/test/requirements.txt
- name: Download USD
working-directory: ${{runner.temp}}/USD
run: |
git clone https://github.com/PixarAnimationStudios/OpenUSD.git \
--depth 1 --branch ${{ matrix.usd }} ./src
- name: Apply patch for USD v24.08
if: matrix.usd == 'v24.08'
working-directory: ${{runner.temp}}/USD
run: |
sed -i '/BOOST_URL/ s|boostorg.jfrog.io.*/release|sourceforge.net/projects/boost/files/boost|' src/build_scripts/build_usd.py
sed -i '/BOOST_URL/ s|source/boost|boost|' src/build_scripts/build_usd.py
sed -i '/BOOST_URL/ s|\.zip"|.zip/download"|' src/build_scripts/build_usd.py
- name: Install USD
if: matrix.python != ''
working-directory: ${{runner.temp}}/USD
run: |
python ./src/build_scripts/build_usd.py . \
--no-tests \
--no-examples \
--no-tutorials \
--no-tools \
--no-docs \
--no-imaging \
--no-materialx \
-v
- name: Install USD (without Python)
if: matrix.python == ''
working-directory: ${{runner.temp}}/USD
run: |
python ./src/build_scripts/build_usd.py . \
--no-tests \
--no-examples \
--no-tutorials \
--no-tools \
--no-docs \
--no-imaging \
--no-materialx \
--no-python \
-v
- name: Configure & Build
if: matrix.python != ''
working-directory: ${{github.workspace}}/build
run: |
export PYTHONPATH="${{runner.temp}}/USD/lib/python"
cmake \
-D "BUILD_DOCS=OFF" \
-D "CMAKE_INCLUDE_PATH=${{runner.temp}}/USD/include" \
-D "CMAKE_LIBRARY_PATH=${{runner.temp}}/USD/lib" \
..
cmake --build . --config Release
- name: Configure & Build (without Python)
if: matrix.python == ''
working-directory: ${{github.workspace}}/build
run: |
cmake \
-D "BUILD_DOCS=OFF" \
-D "BUILD_PYTHON_BINDINGS=OFF" \
-D "CMAKE_INCLUDE_PATH=${{runner.temp}}/USD/include" \
-D "CMAKE_LIBRARY_PATH=${{runner.temp}}/USD/lib" \
..
cmake --build . --config Release
- name: Check for formatting errors
working-directory: ${{github.workspace}}/build
run: |
cmake --build . --target format
STATUS_OUTPUT=$(git -C .. status --porcelain)
if [ -n "$STATUS_OUTPUT" ]; then
echo "Code formatting errors found:"
git -C .. diff
exit 1
else
echo "No formatting errors found."
fi
- name: Run Test
working-directory: ${{github.workspace}}/build
run: ctest -VV
env:
CTEST_OUTPUT_ON_FAILURE: True