Skip to content

A Mill plugin to test your Giter8 templates.

License

Notifications You must be signed in to change notification settings

ckipp01/mill-giter8

Repository files navigation

mill-giter8

A Mill plugin for testing your Giter8 templates. Modeled after the Giter8 sbt plugin.

Requirements

  • This plugin assumes that your Giter8 template is following the src layout, meaning that it expects your template to be in src/main/g8.
  • If using a default.properties property file it needs to be located at src/main/g8/default-properties.

A minimal example structure

.
├── build.sc
├── mill
├── README.md
└── src
   └── main
      └── g8
         ├── build.sc
         ├── default.properties
         ├── mill
         └── example
            └── src
               └── $package$
                  └── Main.scala

Quickstart

Assuming the above requirements are true, then to use this plugin you'll want to include the plugin and extend the G8Module like so:

import $ivy.`io.chris-kipp::mill-giter8::0.2.0`

import io.kipp.mill.giter8.G8Module

object g8 extends G8Module {
  override def validationTargets =
    Seq("example.compile", "example.fix", "example.reformat")
}

You can then run mill g8.validate which will first check to ensure your project can be generated from the current template and then ensure the validationTargets can run against your generated project.

Available Targets

  • generate - This will test the generation of your project.
  • validate - This will both check the generation of your project and also run the validationTargets against it.
  • validationTargets - A Seq of targets that you'd like run against your project.