Project template

When creating a project, we can include a template to pre-populate it with models and jobs. Project template can be defined with a yaml file.

By convention, the name of the yaml file can be used as the value of --template option when creating a project. For example, if you create a project with this command: project create --name MyProject --template sample, the system will try to find sample.yaml file in [base]\Templates\ folder.

The following things can be put as the content of the yaml file:

client: [client of the project]
models:
- name: [name of the model]
label: [label of the model]
properties:
- name: [name of the model property]
label: [label of the model property]
data-type: [string | int | short | float | double | decimal | bool | datetime | byte | guid | dbgeography]
control-type: [input-text | input-number | input-file | textarea | checkbox | checkboxlist | select | radio | calendar | image]
is-required: [true | false]
jobs:
- name: [name of the job]
tasks:
- name: [name of the job task]
type: [Build | Clone | Deploy | DeployDb | Generate | Merge | Push | PublishArtifact | Test]
provider: [name of the provider plugin]
configs:
[any additional configs which are required by the provider, e.g:]
GitHubExternalService: [name of the GitHub external service]
AzureExternalService: [name of the Azure external service]
CreatePullRequest: [true | false]

The yaml file can also be generated by exporting the existing project.