Skip to content

Commit

Permalink
ms-wni
Browse files Browse the repository at this point in the history
  • Loading branch information
ikappaki committed Jul 30, 2024
1 parent 479570f commit 39ca359
Show file tree
Hide file tree
Showing 6 changed files with 42 additions and 46 deletions.
4 changes: 3 additions & 1 deletion .github/workflows/tests-run.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ jobs:
strategy:
matrix:
# os: [ubuntu-latest, windows-latest, macos-latest]
os: [ubuntu-latest]
# os: [ubuntu-latest]
os: [windows-latest]
version: ['3.11']
blender: ['4.2.0']

Expand Down Expand Up @@ -67,6 +68,7 @@ jobs:
key: ${{ steps.cache-blender.outputs.cache-primary-key }}

- name: Install EGL mesa
if: "!startsWith (matrix.os, 'ubuntu')"
run: |
sudo apt-get update -y -qq
sudo apt-get install -y -qq libegl1-mesa libegl1-mesa-dev
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "basilisp-blender"
version = "0.0.0b23"
version = "0.0.0b25"
description = ""
authors = ["ikappaki"]
readme = "README.md"
Expand Down
23 changes: 3 additions & 20 deletions scripts/bb_package_install.py
Original file line number Diff line number Diff line change
@@ -1,43 +1,26 @@
from dev.dev_utils import blender_exec_path_get
import os
import shutil
import subprocess
import sys
import tempfile

ENV_BLENDER_HOME_ = "BB_BLENDER_TEST_HOME"

def blender_path_get():
blender_home = os.getenv(ENV_BLENDER_HOME_)
assert blender_home, f":error :env-var-not-set {ENV_BLENDER_HOME_}"
blender_home_abs = os.path.abspath(os.path.expanduser(blender_home))
exec_path = None
envpath = os.environ.get('PATH', '')
envpath_new = blender_home_abs
try:
os.environ['PATH'] = envpath_new
exec_path = shutil.which('blender')
finally:
os.environ['PATH'] = envpath
assert exec_path, f":error :blender-exec-not-found-in {ENV_BLENDER_HOME_}={blender_home_abs}"
print(f":blender-found-at {ENV_BLENDER_HOME_}={blender_home_abs} :exec {exec_path}")
return exec_path

def file_exists_wait(filepath, count, interval_ms):
while count > 0:
if os.path.exists(str(filepath)) and os.path.getsize(filepath) > 0:
break
count -= 1
time.sleep(interval_ms)

blender_path = blender_path_get()
blender_path = blender_exec_path_get()

result = subprocess.run(["poetry", "version"],
capture_output=True,
text=True)

bb_version = result.stdout.strip().replace("-", "_").replace(" ", "-")
wheel_path = f"dist/{bb_version}-py3-none-any.whl"
print(f"\n:version {bb_version} :wheel-at {wheel_path}\n")
print(f"\n:installing :version {bb_version} :wheel {wheel_path} :in {blender_path}\n")
assert os.path.exists(wheel_path), f":wheel-not-found {wheel_path}"

with tempfile.TemporaryDirectory() as temp_dir:
Expand Down
10 changes: 7 additions & 3 deletions scripts/blender_install.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from dev.dev_utils import blender_home_get
import os
import platform
import requests
Expand All @@ -8,14 +9,17 @@

version = None
outpath = None
assert len(sys.argv) == 3, 'usage: blender_install.py <blender-version-as-x.y.z> <output-dir>'
assert len(sys.argv) == 2, 'usage: blender_install.py <blender-version-as-x.y.z>'

version, outdir = tuple(sys.argv)[1:]
print(f":args :version {version} :outdir {outdir}")
version, = tuple(sys.argv)[1:]
print(f":args :version {version}")
assert version.count('.') == 2, f":error :expected-two-dots-in-version {version}"

version_short = version[:version.rfind('.')]

outdir = blender_home_get()
print(f":destination {outdir}")

system = platform.system()

filename = None
Expand Down
24 changes: 24 additions & 0 deletions src/dev/dev_utils.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import os
import shutil

ENV_BLENDER_HOME_ = "BB_BLENDER_TEST_HOME"

def blender_home_get():
blender_home = os.getenv(ENV_BLENDER_HOME_)
assert blender_home, f":error :env-var-not-set {ENV_BLENDER_HOME_}"
blender_home_abs = os.path.abspath(os.path.expanduser(blender_home))
return blender_home_abs

def blender_exec_path_get():
blender_home_abs = blender_home_get()
exec_path = None
envpath = os.environ.get('PATH', '')
envpath_new = blender_home_abs
try:
os.environ['PATH'] = envpath_new
exec_path = shutil.which('blender')
finally:
os.environ['PATH'] = envpath
assert exec_path, f":error :blender-exec-not-found-in {ENV_BLENDER_HOME_}={blender_home_abs}"
print(f":blender-found-at {ENV_BLENDER_HOME_}={blender_home_abs} :exec {exec_path}")
return exec_path
25 changes: 4 additions & 21 deletions tests/basilisp_blender/integration/test_utils.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from dev.dev_utils import blender_exec_path_get
import os
import pytest
import shutil
Expand All @@ -7,24 +8,6 @@

pytestmark = pytest.mark.integration

ENV_BLENDER_HOME_ = "BB_BLENDER_TEST_HOME"

def blender_path_get():
blender_home = os.getenv(ENV_BLENDER_HOME_)
assert blender_home, f":error :env-var-not-set {ENV_BLENDER_HOME_}"
blender_home_abs = os.path.abspath(os.path.expanduser(blender_home))
exec_path = None
envpath = os.environ.get('PATH', '')
envpath_new = blender_home_abs
try:
os.environ['PATH'] = envpath_new
exec_path = shutil.which('blender')
finally:
os.environ['PATH'] = envpath
assert exec_path, f":error :blender-exec-not-found-in {ENV_BLENDER_HOME_}={blender_home_abs}"
print(f":blender-found-at {ENV_BLENDER_HOME_}={blender_home_abs} :exec {exec_path}")
return exec_path

def file_exists_wait(filepath, count, interval_ms):
while count > 0:
if os.path.exists(str(filepath)) and os.path.getsize(filepath) > 0:
Expand All @@ -33,7 +16,7 @@ def file_exists_wait(filepath, count, interval_ms):
time.sleep(interval_ms)

def blender_run(*args, **kwargs):
bp = blender_path_get()
bp = blender_exec_path_get()
assert bp is not None
cmd_args = (bp,) + args
background = kwargs['background']
Expand Down Expand Up @@ -77,8 +60,8 @@ def blender_lpy_eval(lpy_code):
'''
return blender_eval(py_code)

def test_blender_path_get():
assert blender_path_get() is not None
def test_blender_exec_path_get():
assert blender_exec_path_get() is not None

def test_blender_run():
result = blender_run("--version", background=False)
Expand Down

0 comments on commit 39ca359

Please sign in to comment.