Build bpy for Windows #2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build bpy for Windows | |
on: | |
workflow_dispatch: | |
inputs: | |
tag: | |
description: 'Blender Tag to build' | |
required: true | |
python_version: | |
description: 'Python version to use' | |
required: true | |
default: '3.10.11' | |
workflow_call: | |
inputs: | |
tag: | |
description: 'Blender Tag to build' | |
required: true | |
type: string | |
python_version: | |
description: 'Python version to use' | |
required: true | |
default: '3.10.11' | |
type: string | |
jobs: | |
build: | |
runs-on: windows-latest | |
permissions: | |
contents: write | |
steps: | |
# # - name: test batch file | |
# # run: | | |
# # # echo "PYTHON=C:\hostedtoolcache\windows\Python\3.10.11\x64\python.exe" | Out-File -Append -FilePath $env:GITHUB_ENV | |
# # echo "echo %PYTHON%" >test.bat | |
# # echo "set PYTHON=C:\hostedtoolcache\windows\Python\3.10.11\x64\python.exe" >test.new.bat | |
# # type test.bat >>test.new.bat | |
# # # move /y ./file.txt.new ./test.bat | |
# # ./test.new.bat | |
# # cat ./test.new.bat | |
# - name: checkout repo | |
# uses: actions/checkout@v2 | |
# - name: Set environment variables | |
# id: set_env | |
# run: | | |
# TAG=${{ inputs.tag || github.event.inputs.tag }} | |
# PYTHON_VERSION=${{ inputs.python_version || github.event.inputs.python_version }} | |
# echo "TAG=$TAG" >> $GITHUB_ENV | |
# echo "PYTHON_VERSION=$PYTHON_VERSION" >> $GITHUB_ENV | |
# shell: bash | |
# - name: Checkout Blender repository recursively | |
# uses: actions/checkout@v2 | |
# with: | |
# repository: blender/blender | |
# ref: ${{ env.TAG}} | |
# submodules: 'recursive' | |
# path: blender | |
# - name: Install Chocolatey | |
# run: | | |
# Set-ExecutionPolicy Bypass -Scope Process -Force | |
# Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) | |
# - name: Set up Python | |
# uses: actions/setup-python@v4 | |
# with: | |
# # python-version: '3.10.11' | |
# python-version: ${{ env.PYTHON_VERSION }} | |
# - name: Set Python Path and Run make.bat | |
# run: | | |
# set Python=C:\hostedtoolcache\windows\Python\3.10.11\x64\python.exe | |
# echo %Python% | |
# shell: cmd | |
# - name: list env vars | |
# run: | | |
# # Set "Python=C:\hostedtoolcache\windows\Python\3.10.11\x64\python.exe" | |
# # echo "Python=C:\hostedtoolcache\windows\Python\3.10.11\x64\python.exe" | Out-File -Append -FilePath $env:GITHUB_ENV | |
# Get-ChildItem Env: | |
# - name: Install Visual Studio Community Edition | |
# run: | | |
# choco install visualstudio2022-workload-nativedesktop | |
# - name: Install CUDA | |
# run: | | |
# choco install cuda | |
# Add-Content $env:GITHUB_PATH "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2\bin" | |
# - name: Install TortoiseSVN and Command Line Client Tools | |
# run: | | |
# choco install tortoisesvn | |
# - name: Install CMake | |
# run: | | |
# choco install cmake --installargs 'ADD_CMAKE_TO_PATH=System' | |
# - name: Add CUDA compilation flags | |
# run: | | |
# nvcc --version | |
# "set(WITH_CYCLES_CUDA_BINARIES ON CACHE BOOL '' FORCE)" | Out-File -Append -FilePath ./blender/build_files/cmake/config/bpy_module.cmake | |
# # - name: Set CUDA environment variables | |
# # run: | | |
# # $NVCC_PATH = Get-Command nvcc | Select-Object -ExpandProperty Source | |
# # $CUDA_HOME = Split-Path (Split-Path $NVCC_PATH -Parent) -Parent | |
# # echo "CUDA_HOME=$CUDA_HOME" | Out-File -Append -FilePath $env:GITHUB_ENV | |
# # echo "CPLUS_INCLUDE_PATH=$CUDA_HOME\include;$env:CPLUS_INCLUDE_PATH" | Out-File -Append -FilePath $env:GITHUB_ENV | |
# # echo "C_INCLUDE_PATH=$CUDA_HOME\include;$env:C_INCLUDE_PATH" | Out-File -Append -FilePath $env:GITHUB_ENV | |
# # - name: Refresh env | |
# # run: | | |
# # refreshenv | |
# - 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: Cache build files (for testing only) | |
# uses: actions/cache@v2 | |
# with: | |
# path: | | |
# ./build_windows_Bpy_x64_vc17_Release | |
# key: ${{ runner.os }}-blender-build-${{ github.sha }} | |
# restore-keys: | | |
# ${{ runner.os }}-blender-build- | |
# - name: download svn librares | |
# run: | | |
# if [ ! -d "./lib" ]; then | |
# mkdir ./lib | |
# cd ./lib | |
# svn checkout https://svn.blender.org/svnroot/bf-blender/trunk/lib/win64_vc15 | |
# fi | |
# shell: bash | |
# # - name: Set Python Path | |
# # run: | | |
# # chcp 65001 #set code page to utf-8 | |
# # echo "PYTHON=C:\hostedtoolcache\windows\Python\3.10.11\x64\python.exe" >> $env:GITHUB_ENV | |
# - name: list env vars | |
# run: | | |
# Get-ChildItem Env: | |
# - name: Run make.bat | |
# run: | | |
# cd blender | |
# yes| make update | |
# make bpy | |
# shell: cmd | |
# - name: Download Blender Python API Stubs | |
# id: download-artifact | |
# uses: dawidd6/action-download-artifact@v2 | |
# with: | |
# workflow: generate_stubs.yml | |
# # github_token: ${{secrets.GITHUB_TOKEN}} | |
# name: blender-python-api-stubs-${{ env.TAG }} | |
# path: ./stubs | |
# - name: Copy Blender Python API Stubs into bin | |
# run: | | |
# cp -r ./stubs/* ./build_windows_Bpy_x64_vc17_Release/bin/Release | |
# shell: bash | |
# # - name: Setup terminal session | |
# # uses: fawazahmed0/action-debug@main | |
# # with: | |
# # credentials: "user:p@ss!" | |
# - name: Make Wheel | |
# run: | | |
# pip install -U pip setuptools wheel | |
# # remove the old wheel if it exists | |
# rm ./build_windows_Bpy_x64_vc17_Release/bin/*.whl | |
# python blender/build_files/utils/make_bpy_wheel.py ./build_windows_Bpy_x64_vc17_Release/bin/Release | |
# shell: bash | |
# # - name: Upload Wheel as Artifact | |
# # uses: actions/upload-artifact@v2 | |
# # with: | |
# # name: bpy-windows | |
# # path: | | |
# # ./build_windows_Bpy_x64_vc17_Release/bin/Release/*.whl | |
# - name: Install Dependencies | |
# run: | | |
# python -m pip install --upgrade pip ndg-httpsclient pyopenssl pyasn1 | |
# pip install -r requirements.txt | |
# - name: Publish Wheel | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# run: python workspace/build_blender.py publish-github ${{ env.TAG }} ./build_windows_Bpy_x64_vc17_Release/bin/Release | |
- name: checkout repo | |
uses: actions/checkout@v2 | |
- name: Set environment variables | |
id: set_env | |
run: | | |
TAG=${{ inputs.tag || github.event.inputs.tag }} | |
PYTHON_VERSION=${{ inputs.python_version || github.event.inputs.python_version }} | |
echo "TAG=$TAG" >> $GITHUB_ENV | |
echo "PYTHON_VERSION=$PYTHON_VERSION" >> $GITHUB_ENV | |
shell: bash | |
- name: Checkout Blender repository recursively | |
uses: actions/checkout@v2 | |
with: | |
repository: blender/blender | |
ref: ${{ env.TAG }} | |
submodules: 'recursive' | |
path: blender | |
# - name: Install Chocolatey | |
# run: | | |
# Set-ExecutionPolicy Bypass -Scope Process -Force | |
# Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
- name: Set Python Path and Run make.bat | |
run: | | |
set Python=C:\hostedtoolcache\windows\Python\${{ env.PYTHON_VERSION }}\x64\python.exe | |
echo %Python% | |
shell: cmd | |
- name: list env vars | |
run: | | |
# Set "Python=C:\hostedtoolcache\windows\Python\3.10.11\x64\python.exe" | |
# echo "Python=C:\hostedtoolcache\windows\Python\3.10.11\x64\python.exe" | Out-File -Append -FilePath $env:GITHUB_ENV | |
Get-ChildItem Env: | |
- name: Install Visual Studio Community Edition | |
run: | | |
choco install visualstudio2022-workload-nativedesktop | |
- name: Install CUDA | |
run: | | |
choco install cuda | |
Add-Content $env:GITHUB_PATH "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2\bin" | |
- name: Install TortoiseSVN and Command Line Client Tools | |
run: | | |
choco install tortoisesvn | |
- name: Install CMake | |
run: | | |
choco install cmake --installargs 'ADD_CMAKE_TO_PATH=System' | |
- name: Add CUDA compilation flags | |
run: | | |
nvcc --version | |
"set(WITH_CYCLES_CUDA_BINARIES ON CACHE BOOL '' FORCE)" | Out-File -Append -FilePath ./blender/build_files/cmake/config/bpy_module.cmake | |
- name: Build Blender | |
run: | | |
python workspace/build_blender.py build --tag ${{ env.TAG }} --install --publish | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
# - name: Set CUDA environment variables | |
# run: | | |
# $NVCC_PATH = Get-Command nvcc | Select-Object -ExpandProperty Source | |
# $CUDA_HOME = Split-Path (Split-Path $NVCC_PATH -Parent) -Parent | |
# echo "CUDA_HOME=$CUDA_HOME" | Out-File -Append -FilePath $env:GITHUB_ENV | |
# echo "CPLUS_INCLUDE_PATH=$CUDA_HOME\include;$env:CPLUS_INCLUDE_PATH" | Out-File -Append -FilePath $env:GITHUB_ENV | |
# echo "C_INCLUDE_PATH=$CUDA_HOME\include;$env:C_INCLUDE_PATH" | Out-File -Append -FilePath $env:GITHUB_ENV | |
# - name: Refresh env | |
# run: | | |
# refreshenv | |
# - name: Cache Blender dependencies | |
# uses: actions/cache@v2 | |
# with: | |
# path: | | |
# ./lib | |
# key: ${{ runner.os }}-blender-lib-${{ github.sha }} | |
# restore-keys: | | |
# ${{ runner.os }}-blender-lib- | |
# - name: Cache build files (for testing only) | |
# uses: actions/cache@v2 | |
# with: | |
# path: | | |
# ./build_windows_Bpy_x64_vc17_Release | |
# key: ${{ runner.os }}-blender-build-${{ github.sha }} | |
# restore-keys: | | |
# ${{ runner.os }}-blender-build- | |
# - name: download svn librares | |
# run: | | |
# if [ ! -d "./lib" ]; then | |
# mkdir ./lib | |
# cd ./lib | |
# svn checkout https://svn.blender.org/svnroot/bf-blender/trunk/lib/win64_vc15 | |
# fi | |
# shell: bash | |
# - name: SVN Cleanup (Preemptive) | |
# run: | | |
# svn cleanup D:/a/bpy/bpy/blender/../lib/assets | |
# svn cleanup D:/a/bpy/bpy/blender/../lib/win64_vc15 | |
# - name: SVN Cleanup | |
# run: svn cleanup D:/a/bpy/bpy/lib/win64_vc15 | |
# - name: Set Python Path | |
# run: | | |
# chcp 65001 #set code page to utf-8 | |
# echo "PYTHON=C:\hostedtoolcache\windows\Python\3.10.11\x64\python.exe" >> $env:GITHUB_ENV | |
- name: list env vars | |
run: | | |
Get-ChildItem Env: | |
# - name: Extract Blender Major Version Number | |
# id: version_extraction | |
# run: | | |
# python -c "import sys; version_tag = sys.argv[1].lstrip('v'); parts = version_tag.split('.'); major_version = '.'.join(parts[:2]); print(f'MAJOR_VERSION={major_version}')" "${{ env.TAG }}" >> $GITHUB_ENV | |
# shell: bash | |
# - name: Download Precompiled Binaries for the Release | |
# run: | | |
# mkdir lib | |
# cd lib | |
# svn checkout https://svn.blender.org/svnroot/bf-blender/tags/blender-${{ env.MAJOR_VERSION }}-release/lib/win64_vc15 | |
# shell: cmd | |
# - name: Download Blender Python API Stubs | |
# id: download-artifact | |
# uses: dawidd6/action-download-artifact@v2 | |
# with: | |
# workflow: build_all.yml | |
# # github_token: ${{secrets.GITHUB_TOKEN}} | |
# name: blender-python-api-stubs-${{ env.TAG }} | |
# path: ./build_windows_Bpy_x64_vc17_Release/bin/ | |
# - name: Download Blender Python API Stubs | |
# id: download-artifact | |
# uses: actions/download-artifact@v4 | |
# with: | |
# name: blender-python-api-stubs-${{ env.TAG }} | |
# path: ./build_windows_Bpy_x64_vc17_Release/bin/ | |
# - name: Build Blender | |
# run: | | |
# cd blender | |
# yes| make update | |
# make bpy | |
# shell: cmd | |
# - name: Make Wheel | |
# run: | | |
# pip install -U pip setuptools wheel | |
# copy ./workspace/make_bpy_wheel.py ./blender/build_files/utils/ | |
# python blender\build_files\utils\make_bpy_wheel.py .\build_windows_Bpy_x64_vc17_Release\bin\ | |
# # - name: Upload Wheel as Artifact | |
# # uses: actions/upload-artifact@v2 | |
# # with: | |
# # name: bpy-windows | |
# # path: | | |
# # ./build_windows_Bpy_x64_vc17_Release/bin/*.whl | |
# - name: Install Dependencies | |
# run: | | |
# python -m pip install --upgrade pip ndg-httpsclient pyopenssl pyasn1 | |
# pip install -r requirements.txt | |
# - name: Publish Wheel | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# run: python workspace/build_blender.py publish-github ${{ env.TAG }} ./build_windows_Bpy_x64_vc17_Release/bin/ |