DEV Community

Alexey Melezhik
Alexey Melezhik

Posted on

DSCI - CI with regular programming languages instead of YAML

DSCI is forgejo CI runner with pipelines syntax is just regular programming languages like Python or Raku:

.dsci/jobs.yaml

jobs:
  -
    id: job1
    path: .
    params:
      name: "dsci"
Enter fullscreen mode Exit fullscreen mode

.dsci/job.py

#!/usr/bin/python3
c = config()
print(f"hello {c['name']}")
Enter fullscreen mode Exit fullscreen mode

Just drop these two files into .dsci/ directory under the root of your repo, and that's it.


DSCI supports many languages, so if you prefer, say Raku just have job.raku instead:

#!/usr/bin/raku
my $c = config();
say("hello $c<name>");
Enter fullscreen mode Exit fullscreen mode

DSCI is designed for programmers - everything which is possible in general programming languages is allowed here - passing state between jobs / tasks as regular variables, returning states from tasks, etc. It's easy, fun and flexible. Instead of messing with entangled YAML code, just use normal programming languages


Forgejo integration.

So far DSCI is fully integrated with Forgejo CI using web hooks mechanics, but in theory any web hook based CI is allowed - including GitHub, GitLab, etc ...


That's it. Please give a project a star on https://github.com/melezhik/DSCI and give it a try using installation guide

Top comments (0)