Skip to content

typesafegithub/github-workflows-kt

Repository files navigation

Logo white Logo white

Maven Central Awesome Kotlin Badge GitHub Repo stars License github-workflows-kt @ kotlinlang.slack.com

github-workflows-kt is a tool for creating GitHub Actions workflows in a type-safe script, helping you to build robust workflows for your GitHub projects without mistakes, with pleasure, in Kotlin.

You won't go back to YAML!

💡 Idea

We're often surrounded by YAML configuration. It's a powerful format that provides simple syntax for defining hierarchical data, but it is sometimes used (abused?) to configure complicated scenarios which leads to complicated files that are difficult to write and maintain.

Who among us hasn't accidentally used the wrong indentation, missed a possibility to extract a reusable piece of code, or been confused by ambiguous types? The power of a generic-purpose would come in handy in these cases.

We're developing github-workflows-kt to solve these and other problems, so you can create GitHub Workflows with confidence.

✨ Benefits

  • no indentation confusion - Kotlin's syntax doesn't rely on it
  • immediate validation - catch bugs early during development, not during runtime
  • strongly typed values - no more confusion about what type is needed for a given parameter
  • superb IDE support - author your workflows in any IDE that supports Kotlin, with auto-completion and documentation at your fingertips
  • no duplication - don't repeat yourself! Share common configuration using constant values, or define your own functions to encapsulate logic
  • fully featured language - use the full power of Kotlin to generate workflows dynamically, randomly generate data, or add custom validation. Defining workflow logic in Kotlin is currently experimental
  • built-in support for over 100 actions - the most popular actions can be used in a type-safe manner thanks to the bundled bindings. For more information, see Supported actions
  • integrates with github-actions-typing to use typings provided by action authors
  • and more!

For more info please see the documentation

teaser