Browse documentation

ICE syntax

Header

Every Codinamo pipeline source starts with the ICE language version and Codinamo realm:

ICE-1.0.0
codinamo >= 1.0.0

Pipeline section

@pipeline {
    name: "build"
    description: "Build application"
    environment: "default"
    continueOnError: false
}

Actions

Actions are bindings to functions in the action namespace:

@actions {
    clone: action.GIT_CLONE({
        params: {
            repositoryUrl: "https://example.com/repository.git",
            recursive: true
        }
    })
}

The binding name must start with a letter and contain only letters, numbers, and underscores. It becomes the action reference name.

Parameter values can be strings, numbers, booleans, null, lists, and objects.

Runtime values are written as expressions and remain unchanged when the source is parsed or regenerated by the editor:

@actions {
    build: action.MAVEN_BUILD({
        params: {
            sourceDir: "${clone.repository_path}"
        }
    })
}

Graph flow

One edge per statement:

@flow {
    clone -> build
    build -> publish
}

Sequential chain:

@flow {
    clone -> build -> publish
}

Fan-out and join:

@flow {
    clone -> build -> [image, checksum] -> publish
}

The canonical writer may expand a chain into individual sorted edges while preserving graph semantics.

Diagnostics

Parse diagnostics include source line and column. A document from another realm or an unsupported ICE version is rejected before it can replace the saved graph.