https://github.com/albertoimpl/koncourse
Kotlin based tool for creating ConcourseCI pipelines
https://github.com/albertoimpl/koncourse
Last synced: 5 months ago
JSON representation
Kotlin based tool for creating ConcourseCI pipelines
- Host: GitHub
- URL: https://github.com/albertoimpl/koncourse
- Owner: Albertoimpl
- License: apache-2.0
- Created: 2018-08-05T16:22:19.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-08-05T16:54:12.000Z (over 7 years ago)
- Last Synced: 2025-01-23T21:28:42.871Z (about 1 year ago)
- Language: Kotlin
- Size: 57.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.adoc
- License: LICENSE
Awesome Lists containing this project
README
= Koncourse
Koncourse is a https://kotlinlang.org/[Kotlin] based tool for creating https://concourse-ci.org/[Concourse CI] pipelines.
Because we love Concourse but we hate YAML.
Configuration As Code is great and YAML is human-friendly, until it isn't.
This is a proof of concept to compare how a fully programmatic approach compares to a DSL one.
== SDK
hello-world.kt
[source,kotlin]
----
import com.albertoimpl.koncourse.sdk.*
fun main(args: Array) {
val result = Pipeline(
listOf(
Job("hello-world",
listOf(
Plan("say-hello",
Config("linux",
ImageResource("docker-image", Repository("alpine")),
Run("echo", listOf("Hello, world!"))
)
)
)
)
)
)
generate("hello-world.yml", result)
}
----
will output:
hello-world.yml
[source,yaml]
----
jobs:
- name: "hello-world"
plan:
- task: "say-hello"
config:
platform: "linux"
image_resource:
type: "docker-image"
source:
repository: "alpine"
run:
path: "echo"
args:
- "Hello, world!"
----
== DSL
// TODO