Skip to content

Build bpy for Linux #34

Build bpy for Linux

Build bpy for Linux #34

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 cuda-toolkit setuptools -c "nvidia/label/cuda-12.3.1" -c conda-forge
# 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: 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" >> $GITHUB_ENV
echo "CPLUS_INCLUDE_PATH=/usr/share/miniconda/include:$CPLUS_INCLUDE_PATH" >> $GITHUB_ENV
echo "C_INCLUDE_PATH=/usr/share/miniconda/include:$C_INCLUDE_PATH" >> $GITHUB_ENV
echo $CUDA_HOME
echo $LD_LIBRARY_PATH
# - name: Setup upterm session
# uses: lhotari/action-upterm@v1
# with:
# ## limits ssh access and adds the ssh public key for the user which triggered the workflow
# limit-access-to-actor: true
# ## limits ssh access and adds the ssh public keys of the listed GitHub users
# limit-access-to-users: michaelgold
- 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: Cache build files (for testing only)
uses: actions/cache@v2
with:
path: |
./build_linux_bpy
key: ${{ runner.os }}-blender-build-${{ github.sha }}
restore-keys: |
${{ runner.os }}-blender-build-
- name: Build Blender
run: |
cd ./blender
make update
make bpy
# make bpy VERBOSE=1
# - name: Install Blender
# run: |
# cd ./blender
# echo "SITE_PACKAGES=`python -c 'import site; print(site.getsitepackages()[0])'`" >> $GITHUB_ENV
# cp -r ./build_linux_bpy/bin/bpy $SITE_PACKAGES
# - name: Install docs prereqs
# run: |
# pip install bpystubgen
# - name: Generate Api Docs and stubs
# run: |
# cd ./blender
# python ./doc/python_api/sphinx_doc_gen.py -- --output=../python_api
# python -m bpystubgen ../python_api/sphinx-in ../python_api/output
# - name: Copy BPY Stubs to bin folder
# run: |
# cp -R ./python_api/output/* ./build_linux_bpy/bin/
# - name: Make Wheel
# run: |
# python ./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