SingularCI

raw JSON →
1.1.13 verified Fri May 01 auth: no javascript

SingularCI is a DSL transpiler for generating CI/CD configuration files from a unified YAML pipeline definition. Version 1.1.13 supports GitHub Actions and GitLab CI/CD, with planned support for Jenkins, TravisCI, CircleCI, and others. It is released as an npm package and standalone executables (via pkg), so it works with any project without requiring Node.js. Key differentiator: write pipelines once in a platform-agnostic DSL and transpile to multiple CI/CD formats. Release cadence is irregular; last update was 1.1.13.

error Error: No .singularci.yml file found in /path/to/project
cause Missing configuration file in the project root.
fix
Create a .singularci.yml file with your pipeline definition.
error Error: Invalid DSL: unknown keyword 'some_keyword'
cause Misuse of unupported DSL keyword.
fix
Refer to the DSL keywords documentation at https://github.com/Tobiaskr12/SingularCI/blob/main/documentation/dsl_keywords_documentation.yml
error Error: Failed to parse YAML: mapping values are not allowed here
cause Malformed YAML in .singularci.yml.
fix
Validate YAML syntax with a linter; ensure proper indentation and key-value formatting.
error singularci: command not found
cause Package not installed or not in PATH.
fix
Run 'npm install -g singularci' or use 'npx singularci'.
breaking DSL syntax changed in v1.1.0: 'branches' keyword replaced by 'branches-ignore' and 'branches' now only specifies included branches.
fix Update .singularci.yml to use new branch filtering syntax.
breaking Output file paths changed in v1.1.0: GitHub Actions workflows are now generated under .github/workflows/ instead of a flat file.
fix Adjust any CI references that expected the old output location.
deprecated Support for GitLab CI/CD is experimental in v1.1.13; the generated .gitlab-ci.yml may not cover all features.
fix Review generated GitLab config manually and report issues.
npm install singularci
yarn add singularci
pnpm add singularci

Shows how to define a pipeline in .singularci.yml and generate CI/CD files using the CLI.

# Add .singularci.yml to your project root with a simple pipeline:
name: my-pipeline
on:
  push:
    branches: [main]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - run: npm install && npm test

# Then run:
npx singularci
# This generates .github/workflows/my-pipeline.yml for GitHub Actions and .gitlab-ci.yml for GitLab CI/CD.