SparrowCI is super fun and flexible free service allow to build CICD pipelines.
SparrowCI exposes YAML DSL that allow to build projects for different languages including Raku, Python, Ruby, GoLang or just a make based projects.
The killer feature of SparrowCI pipelines is that they could be extended by many languages with the idea of repeatable executable tasks in the core:
- tasks: - name: main-task language: Python default: true code: | print("hello from Python") depends: - name: install-python - name: install-python language: Bash code: | sudo apk apk add --no-cache python3 py3-pip
In this simple example task "main-task” would execute some Python, to make it sure we have a Python in runtime, dependency task "install-python" is executed. That's simple!
This example illustrates the core idea behind SparrowCI pipeline - to have a collection of dependent tasks (DAG) that executed in particular order.
Or course SparrowCI allows more than this simple example, follow the documentation to know more.
The service is still on progress, however many typical build scenarios for popular programming languages are already tested and work.
Build scenarios are executed in ephemeral docker containers under Alpine OS.
SparrowCI pipeline could take a benefits in using a numerous plugins from SparrowHub. Typical plugins would install MySQL/PgSQL database or setup Python/Raku environment. New plugins are easily created by using many modern languages, using Sparrow plugins API.
I'd appreciate a feedback and ideas on how people could use such a service.