Spell CI
Imperative CI/CD workflows in Python 🪄
- Use custom CI orchestration logic. Pass data between jobs with ease.
- Use SpellCI's persistent storage, synchronization primitives (e.g. for caching or parallelized builds)
- Increase CI iteration speed. Test workflow logic as you would any Python code
- Use our fully type-safe Python SDK. Catch errors early on, before triggering jobs
../../spellci/pipeline.py
from spell.ci import entrypoint
...
@entrypoint
async def entrypoint(context: PipelineContext):
author = context.author
git_sha = context.git_sha
if context.has_path_changed(
"apps/my-web-app"
):
web_app = AppParams(
app_dir="apps/my-web-app"
)
await docker_build(web_app)