Use workflow releases when the code under test should match the code that runners execute. A release packages a Python workflow project, records the discovered task identifiers, and lets release runners load the deployed code from a cluster.
This guide summarizes the build and deploy path. For the underlying model, see Workflow releases and Release lifecycle.
Prerequisites
Section titled “Prerequisites”- You have installed the Tilebox CLI.
TILEBOX_API_KEYis set in the shell where you run commands.uvis installed and available onPATH.
Initialize the project
Section titled “Initialize the project”Create a project directory and initialize it as a Tilebox workflow project.
mkdir my-workflowcd my-workflowtilebox workflow init --name "My Workflow"The init command creates the Tilebox workflow, writes tilebox.workflow.toml, creates a minimal Python project with runner.py, adds the tilebox dependency, and runs uv sync. It aborts if tilebox.workflow.toml, pyproject.toml, runner.py, or uv.lock already exists in the current directory.
Directorymy-workflow/
- pyproject.toml
- uv.lock
- tilebox.workflow.toml
- runner.py
Configure a deployment target
Section titled “Configure a deployment target”Create a logical cluster to deploy the workflow release to, enabling release runners.
tilebox cluster create "workflow-dev"Slug workflow-dev-<...>Name workflow-devDeletable trueAdd the returned cluster slug to tilebox.workflow.toml so deployment commands can refer to a logical environment instead of repeating cluster slugs.
[workflow]slug = "my-workflow-<...>"root = "."runner = "runner:runner"
[build]include = [ "tilebox.workflow.toml", "pyproject.toml", "uv.lock", "runner.py",]
[targets.dev]clusters = ["workflow-dev-<...>"]Build and publish the release
Section titled “Build and publish the release”Create a new release of the workflow and publish it to Tilebox.
tilebox workflow publish-releasePublishing creates an immutable release. It does not change what any cluster runs until you deploy it.
Deploy to a development cluster
Section titled “Deploy to a development cluster”Deploy the release to the development target.
tilebox workflow deploy-release --latest --target devStart a release runner in an environment you control.
tilebox runner start --cluster workflow-dev-9xK2mQ4pL8nR7s --debugRun and inspect a job
Section titled “Run and inspect a job”Submit a task that matches one of the identifiers discovered from the release.
tilebox job submit \ --name my-workflow-test \ --task my-workflow/HelloWorld \ --version v0.1 \ --cluster workflow-dev-9xK2mQ4pL8nR7s \ --input '{"name":"Tilebox"}' \ --waitJob submitted: 019ef7a2-56b4-7a86-9c4d-52a1792b1e90Inspect the result before making the next change.
tilebox job logs <JOB_ID>tilebox job spans <JOB_ID>