DEV Community

DSCI - CI with regular programming languages instead of YAML

DSCI - CI with regular programming languages instead of YAML

DSCI is a Forgejo CI runner whose pipeline syntax is just regular programming languages like Python or Raku:

Example files:

.dsci/jobs.yaml:

jobs:
  - id: job1
    path: .
    params:
      name: "dsci"

.dsci/job.py:

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

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

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

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

DSCI is designed for programmers - everything that 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 hook mechanics, but in theory any web hook based CI is allowed - including GitHub, GitLab, etc.

Get involved

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

Comments

No comments yet. Start the discussion.