Skip to content
This repository has been archived by the owner on Sep 15, 2024. It is now read-only.

publish-for-blender-snapshot #847

publish-for-blender-snapshot

publish-for-blender-snapshot #847

name: publish-for-blender-snapshot
on:
schedule:
- cron: "0 0 * * *" # Run at 00:00 UTC
workflow_dispatch:
env:
PYTHON_VERSION: "3.11"
jobs:
build:
name: Build Blender
runs-on: ubuntu-22.04
steps:
- name: Setup APT
run: |
sudo curl https://raw.githubusercontent.com/mysticfall/bpystubgen/main/.github/workflows/01lunar.list \
-o /etc/apt/sources.list.d/01lunar.list && \
sudo curl https://raw.githubusercontent.com/mysticfall/bpystubgen/main/.github/workflows/01ubuntu \
-o /etc/apt/apt.conf.d/01ubuntu
- name: Install Tools
run: |
sudo apt update && \
sudo apt dist-upgrade && \
sudo apt install -y build-essential cmake libembree-dev libfftw3-dev \
libxi-dev libxxf86vm-dev libboost-dev libboost-locale-dev libgl1-mesa-dev \
libavformat-dev libswscale-dev libavdevice-dev libblas3 libopenimageio-dev \
libzstd-dev libopenimageio-dev libfreetype-dev libepoxy-dev libdecor-0-dev
- name: Install Python
uses: actions/setup-python@v4
with:
python-version: "${{env.PYTHON_VERSION}}"
- name: Install Python Dependencies
run: |
curl https://bootstrap.pypa.io/get-pip.py | python && \
python -m pip install numpy requests cython
- name: Setup Python Path
run: |
sudo sh -c "echo '$pythonLocation/lib' >> /etc/ld.so.conf.d/python.conf" && \
sudo ldconfig
- name: Checkout Blender
run: git clone --depth=1 https://projects.blender.org/blender/blender.git
- name: Checkout addons
run: git clone --depth=1 https://projects.blender.org/blender/blender-addons.git
- name: Checkout addons-contrib
run: git clone --depth=1 https://projects.blender.org/blender/blender-addons-contrib.git
- name: Checkout translations
run: git clone --depth=1 https://projects.blender.org/blender/blender-translations.git
- name: Checkout dev-tools
run: git clone --depth=1 https://projects.blender.org/blender/blender-dev-tools.git
- name: Update Submodules
run: git -C blender submodule update --init --recursive --remote
- name: Configure CMake
run: |
cmake -S blender -B build \
-C blender/build_files/cmake/config/blender_release.cmake \
-DCMAKE_BUILD_TYPE=Release \
-DWITH_INSTALL_PORTABLE=ON \
-DWITH_MOD_OCEANSIM=OFF \
-DWITH_CYCLES=OFF \
-DWITH_HYDRA=OFF \
-DWITH_GHOST_WAYLAND=OFF \
-DPYTHON_VERSION=${{env.PYTHON_VERSION}}
- name: Build Blender
run: make -C build -j `nproc`
- name: Copy Release Scripts
run: make -C build install
- name: Archive Build
if: ${{ !env.ACT }}
run: tar zcvf build.tar.gz build
- name: Upload Build
if: ${{ !env.ACT }}
uses: actions/upload-artifact@v3
with:
name: blender
path: build.tar.gz
retention-days: 3
build_api:
name: Build API Documentation
runs-on: ubuntu-22.04
needs: [build]
steps:
- name: Download Build
if: ${{ !env.ACT }}
uses: actions/download-artifact@v3
with:
name: blender
- name: Extract Build
if: ${{ !env.ACT }}
run: tar zxvf build.tar.gz
- name: Setup APT
run: |
sudo curl https://raw.githubusercontent.com/mysticfall/bpystubgen/main/.github/workflows/01lunar.list \
-o /etc/apt/sources.list.d/01lunar.list && \
sudo curl https://raw.githubusercontent.com/mysticfall/bpystubgen/main/.github/workflows/01ubuntu \
-o /etc/apt/apt.conf.d/01ubuntu
- name: Install Tools
run: |
sudo apt update && \
sudo apt dist-upgrade && \
sudo apt install -y libxi6 libxxf86vm1 libxfixes3 libgl1 libtbb12 libfftw3-bin \
libavformat59 libavdevice59 libboost-locale1.74.0 libopenimageio-dev
- name: Install Python
uses: actions/setup-python@v4
with:
python-version: "${{env.PYTHON_VERSION}}"
- name: Install Python Dependencies
run: |
curl https://bootstrap.pypa.io/get-pip.py | python && \
python -m pip install sphinx yapf tqdm numpy
- name: Setup Python Path
run: |
sudo sh -c "echo '$pythonLocation/lib' >> /etc/ld.so.conf.d/python.conf" && \
sudo ldconfig
- name: Checkout Blender
run: git clone --depth=1 https://projects.blender.org/blender/blender.git
- name: Prepare API Documentation
working-directory: build
run: |
rm -Rf bin/4.0/python && \
bin/blender --python-use-system-env --background -noaudio --factory-startup \
--python ../blender/doc/python_api/sphinx_doc_gen.py -- \
--output "${{ github.workspace }}/python_api"
- name: Archive Documents
if: ${{ !env.ACT }}
run: tar zcvf apidocs.tar.gz python_api
- name: Upload Documents
if: ${{ !env.ACT }}
uses: actions/upload-artifact@v3
with:
name: apidocs
path: apidocs.tar.gz
retention-days: 3
publish_stubs:
name: Publish API Stubs
runs-on: ubuntu-22.04
needs: [build_api]
steps:
- name: Download Build
if: ${{ !env.ACT }}
uses: actions/download-artifact@v3
with:
name: blender
- name: Extract Build
if: ${{ !env.ACT }}
run: tar zxvf build.tar.gz
- name: Download Documents
if: ${{ !env.ACT }}
uses: actions/download-artifact@v3
with:
name: apidocs
- name: Extract Documents
if: ${{ !env.ACT }}
run: tar zxvf apidocs.tar.gz
- name: Install Python
uses: actions/setup-python@v4
with:
python-version: "${{env.PYTHON_VERSION}}"
- name: Install Python Dependencies
run: |
curl https://bootstrap.pypa.io/get-pip.py | python && \
python -m pip install bpystubgen
- name: Build API Stubs
working-directory: python_api
run: |
python -m bpystubgen --quiet sphinx-in blender-stub && \
curl https://raw.githubusercontent.com/mysticfall/bpystubgen/main/package/setup.py -o blender-stub/setup.py && \
curl https://raw.githubusercontent.com/mysticfall/bpystubgen/main/package/README.md -o blender-stub/README.md
- name: Build Python Package
working-directory: python_api/blender-stub
run: |
sed -i "s/#APP_NAME#/blender/g" setup.py && \
sed -i "s/#APP_VERSION#/3.2.0/g" setup.py && \
sed -i "s/#BUILD_NUMBER#/${{ github.run_id }}/g" setup.py && \
python setup.py sdist
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.PYPI_TOKEN }}
packages-dir: python_api/blender-stub/dist
skip-existing: true