create an Agent Skill to build, test Blender conda recipies using ~ deadline AL2023 container#201
Merged
leongdl merged 1 commit intoaws-deadline:mainlinefrom Apr 24, 2026
Merged
Conversation
AlexTranAmz
reviewed
Apr 14, 2026
AlexTranAmz
reviewed
Apr 14, 2026
Contributor
|
Please check DCO and the PR/commit title. |
6019d59 to
5bb2625
Compare
Contributor
Author
Thanks, fixed :) And now updated with a few ideas to make the skill more generic. |
leongdl
commented
Apr 24, 2026
mwiebe
requested changes
Apr 24, 2026
…23 container Signed-off-by: David Leong <116610336+leongdl@users.noreply.github.com>
mwiebe
approved these changes
Apr 24, 2026
godobyte
approved these changes
Apr 24, 2026
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What was the problem/requirement? (What/Why)
There was no reusable guide or skill for creating new Blender conda recipes for Deadline Cloud. Each new Blender version required manually figuring out the Docker setup, X11 dependencies, rattler-build commands, and testing steps from scratch.
What was the solution? (How)
Added a
skills/conda-builder/skill that documents the complete workflow for creating Blender conda recipes, from fetching SHA256 hashes to building in an AL2023 Docker container (matching the service-managed fleet OS), indexing into a local channel, and testing with openjd-cli. The skill covers headless X11/EGL dependency setup and includes a fast smoke-test render approach (640x480, 8 samples).What is the impact of this change?
Anyone creating a new Blender version recipe can follow the skill's step-by-step workflow instead of piecing together the process manually. The skill also serves as documentation for the AL2023 Docker-based build environment setup.
How was this change tested?
Used the skill's workflow end-to-end to create the Blender 5.1.1 recipe (separate PR):
rattler-build build(with test enabled) —blender -htest passed inside the container.conda indexand verified the package was discoverable viaconda search.blender --versionreturned 5.1.1 and all BLENDER_* env vars were set.Was this change documented?
The skill itself is the documentation —
skills/blender-builder/SKILL.mdcontains the complete workflow, quick reference table, headless dependency list, and common mistakes section.By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
I also did a clean test with blender 4.1, which is a version we did not have samples:
Blender 4.1 Conda Package Build & Test Summary
What we built
Using the
conda-builderskill, we created a newblender-4.1recipe atdeadline-cloud-samples/conda_recipes/blender-4.1/based on the existingblender-5.1template. The recipe targets Blender 4.1.1 (the latest patchrelease in the 4.1 series). SHA256 hashes were fetched from the official
blender-4.1.1.sha256file on blender.org — not computed or guessed.The recipe includes:
recipe/recipe.yaml— rattler-build recipe with version4.1.1,major_minor
4.1, and verified SHA256 hashes for both linux-x64 andwindows-x64 archives
recipe/build.sh/recipe/build_win.sh— version-agnostic build scriptscopied from the 5.1 template (they use
$PKG_VERSION)deadline-cloud.yaml— Deadline Cloud build job metadata with downloadinstructions for both platforms
README.md— updated for 4.1Build environment
We rebuilt the
al2023-deadline-worker:latestDocker image fromcontainers/al2023-deadline/Dockerfile.worker-equivalent, which replicates anApril 2026 snapshot of the Deadline Cloud service-managed fleet worker AMI
(AL2023 with 768 packages including X11, Mesa/EGL, GCC, Python 3.11, AWS CLI,
etc.).
Inside the container (
al2023-conda-build), we installed:rattler-build(latest, from GitHub releases)conda-build(forconda index)Build
rattler-build build \ --recipe .../blender-4.1/recipe/recipe.yaml \ --target-platform linux-64 \ --output-dir /my-conda-channelrattler-build downloaded the 4.1.1 linux-x64 archive (~298 MB), verified the
SHA256 hash, ran
build.shto install Blender into the conda prefix, andexecuted the built-in test (
blender -h). The test passed — Blender's fullhelp output was printed successfully, confirming the binary runs on AL2023 with
the container's system libraries.
Output artifact:
/my-conda-channel/linux-64/blender-4.1.1-hb0f4dca_0.conda(355.7 MiB)
Channel indexing
This generated
repodata.jsonfor thelinux-64andnoarchsubdirs, makingthe package discoverable by conda.
Smoke test
Created a fresh conda environment, activated it, and verified Blender runs
with the correct environment variables — all inside the container via
docker exec:Results:
blender --version→Blender 4.1.1(build date 2024-04-15, hashe1743a0317bc)
BLENDER_LOCATIONBLENDER_VERSION=4.1BLENDER_LIBRARY_PATHBLENDER_SCRIPTS_PATHBLENDER_PYTHON_PATHBLENDER_DATAFILES_PATHAll checks passed — the package is ready for use with Deadline Cloud.
End-to-end render test with openjd-cli
Create a test scene
Created a simple Blender scene with a cube, camera, and sun light using
Blender's Python API inside the container:
Output:
Saved "test-cube.blend"— scene with a default cube, camera at(7, -6, 5), and a sun light.
Install openjd-cli
Run the render via openjd
Used the
blender_renderjob bundle with theconda_queue_env_pyrattlerqueue environment to do a full end-to-end test — conda solve, install,
activate, and render:
Results
blender-4.1.1-hb0f4dca_0.conda, installed and activated itdenoising
openjd-output/output_0001.jpgAll actions completed successfully