Skip to content

fake-bpy-module Latest Build #1262

fake-bpy-module Latest Build

fake-bpy-module Latest Build #1262

---
# yamllint disable rule:line-length
name: fake-bpy-module Latest Build
on: # yamllint disable-line rule:truthy
workflow_dispatch:
schedule:
- cron: "0 6 * * *"
push:
branches:
- 'run-ci/**'
jobs:
set_versions:
name: Set build versions
runs-on: ubuntu-latest
outputs:
module_version: ${{ steps.set_module_version.outputs.module_version }}
file_version: ${{ steps.set_file_version.outputs.file_version }}
steps:
# Use ISO 8601 date (in UTC) + timestamp (in UTC)
- name: Create generic module version
run: echo "MODULE_VERSION=$(date -u +%Y%m%d).dev$(date -u +%H%M%S)" >> $GITHUB_ENV
# Use ISO 8601 date (in UTC) for a scheduled release
- name: Create generic module version
if: github.event_name == 'schedule'
run: echo "MODULE_VERSION=$(date -u +%Y%m%d)" >> $GITHUB_ENV
# Set module version output
- name: Set module version
id: set_module_version
run: echo ::set-output name=module_version::${MODULE_VERSION}
# Use ISO 8601 timestamps (in UTC) for output/file version
- name: Set file version
id: set_file_version
run: echo ::set-output name=file_version::$(date -u +%Y%m%dT%H%M%SZ)
build_modules:
name: Build modules
runs-on: ubuntu-22.04
needs: [set_versions]
steps:
- name: Checkout repo
uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: "3.7"
- name: Install python dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Test fake_bpy_module core module
run: bash tests/run_pre_tests.sh src
- name: Install Blender binary dependencies
run: |
sudo apt update
sudo apt install -y libglu1-mesa libegl1
- name: Install fake-bpy-module tools
run: sudo apt install -y pandoc
- name: Download latest Blender files from nutti/blender-daily-build artifacts
run: bash tools/utils/download_latest_blender.sh nutti blender-daily-build "Blender daily build" ./blender-bin ${{ secrets.TOKEN_FOR_ACTION_BLENDER_DAILY_BUILD }}
# alternatively to the github checkout, you can also use git.blender.org. See below.
- name: Checkout Blender from Github
uses: actions/checkout@v2
with:
repository: "blender/blender"
path: blender
- name: Generate pip Packages
env:
RELEASE_VERSION: ${{ needs.set_versions.outputs.module_version }}
run: bash tools/pip_package/build_pip_package.sh release latest ./blender ./blender-bin/blender-latest-bin
- name: Archive pip packages
uses: actions/upload-artifact@v2
with:
name: fake_bpy_modules_latest_pip_${{ needs.set_versions.outputs.file_version }}
path: release
- name: Archive raw modules
uses: actions/upload-artifact@v2
with:
name: fake_bpy_modules_latest_raw_${{ needs.set_versions.outputs.file_version }}
path: "raw_modules/fake_bpy_module*"
- name: Test Generated Modules
run: bash tests/run_tests.sh raw_modules
- name: Test generated pip module against Cycles addon
run: bash tests/pylint_cycles.sh latest ./blender/ ./release/latest/fake_bpy_module_latest-*-py3-none-any.whl
- name: Collect failure state
if: failure()
run: bash tools/collect_failure_state/collect_failure_state.sh /tmp/failure_state
- name: Store failure state
if: failure()
uses: actions/upload-artifact@v2
with:
name: failure_state
path: /tmp/failure_state
pypi_release_test:
name: PyPI Release test
needs: [build_modules]
runs-on: ubuntu-latest
steps:
- name: Fetch artifacts
uses: actions/download-artifact@v2
with:
path: dist
# Publish to TestPyPi on each merge to master
- name: Publish distribution 📦 to Test PyPI
uses: pypa/[email protected]
with:
password: ${{ secrets.test_pypi_token }}
repository_url: https://test.pypi.org/legacy/
packages_dir: "dist/fake_bpy_modules_latest_pip_*/*/"
pypi_release:
name: PyPI Release fake-bpy-module
needs: [pypi_release_test]
if: github.event_name == 'schedule'
runs-on: ubuntu-latest
steps:
- name: Fetch Artifacts
uses: actions/download-artifact@v2
with:
path: dist
- name: Publish distribution 📦 to PyPI
uses: pypa/[email protected]
with:
password: ${{ secrets.pypi_token }}
packages_dir: "dist/fake_bpy_modules_latest_pip_*/*/"