This repository has been archived by the owner on Sep 15, 2024. It is now read-only.
publish-for-blender-snapshot #866
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: 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 |