Skip to content

Build bpy for Linux #23

Build bpy for Linux

Build bpy for Linux #23

Workflow file for this run

name: Build bpy for Linux
on:
workflow_dispatch:
inputs:
tag:
description: 'Blender Tag to build'
required: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Blender repository recursively
uses: actions/checkout@v2
with:
repository: blender/blender
ref: ${{ github.event.inputs.tag }} # Checkout the tag specified in the workflow dispatch
submodules: 'recursive' # Recursively checkout submodules
path: blender
- name: Set up Conda
uses: conda-incubator/setup-miniconda@v2
with:
auto-update-conda: true
python-version: 3.10.13 # Specify the Python version you need
# environment-file: environment.yml
activate-environment: bpy-env
channels: conda-forge
- name: Install Conda Dependencies
run: |
conda install -y -c "nvidia/label/cuda-12.3.1" cuda-toolkit
# find / -name nvcc
- name: Add conda subdirectories to PATH
run: |
for dir in $(find /home/runner/conda_pkgs_dir/ -mindepth 1 -type d); do
echo "$dir" >> $GITHUB_PATH
done
- name: Cache Blender dependencies
uses: actions/cache@v2
with:
path: |
./lib
key: ${{ runner.os }}-blender-deps-${{ github.sha }}
restore-keys: |
${{ runner.os }}-blender-deps-
- name: Get dependencies
run: |
echo "Building bpy for Linux with tag ${{ github.event.inputs.tag }}"
sudo apt update
sudo apt-get install -y build-essential git subversion cmake libx11-dev libxxf86vm-dev libxcursor-dev libxi-dev libxrandr-dev libxinerama-dev libegl-dev
sudo apt-get install -y libwayland-dev wayland-protocols libxkbcommon-dev libdbus-1-dev linux-libc-dev
if [ ! -d "./lib" ]; then
mkdir ./lib
cd ./lib
svn checkout https://svn.blender.org/svnroot/bf-blender/trunk/lib/linux_x86_64_glibc_228
fi
# - name: Install Cuda Toolkit
# uses: Jimver/[email protected]
# id: cuda-toolkit
# with:
# cuda: '12.1.0'
- name: Add CUDA compilation flags
run: |
nvcc --version
echo 'set(WITH_CYCLES_CUDA_BINARIES ON CACHE BOOL "" FORCE)' >> ./blender/build_files/cmake/config/bpy_module.cmake
- name: Set CUDA environment variables
run: |
NVCC_PATH=$(which nvcc)
CUDA_HOME=$(dirname $(dirname $NVCC_PATH))
echo "CUDA_HOME=$CUDA_HOME" >> $GITHUB_ENV
echo "LD_LIBRARY_PATH=$CUDA_HOME/lib:$LD_LIBRARY_PATH" >> $GITHUB_ENV
ls $CUDA_HOME
ls $LD_LIBRARY_PATH
- name: Build Blender
run: |
cd ./blender
make update
make bpy VERBOSE=1
- name: Make Wheel
run: |
python3 ./blender/build_files/utils/make_bpy_wheel.py ./build_linux_bpy/bin/
- name: Upload Wheel as Artifact
uses: actions/upload-artifact@v2
with:
name: bpy-linux
path: |
./build_linux_bpy/bin/*.whl