Authoring devfiles - Projects
Adding projects
This section describes how to add one or more projects to a devfile. Each starter project can contain either a git
or zip
object. See the following tables for project properties in a devfile:
starterProject object
Key | Type | Required | Description |
---|---|---|---|
name | string | yes | The name of your devfile. |
description | string | no | The description of your starterProject. |
clonePath | string | no | The path relative to the root of your projects. Clone your projects into this path. |
git object
Key | Type | Required | Description |
---|---|---|---|
checkoutFrom | string | no | The location of your git repository. |
remotes | string | yes | The branch that you use. |
zip object
Key | Type | Required | Description |
---|---|---|---|
location | string | no | The location of your zip. |
Prerequisites
Procedure
Add a
projects
section in the devfile, containing a list of one or more projects.A minimal devfile with one single project
devfile.yamlschemaVersion: 2.2.0 metadata: name: petclinic-dev-environment version: 1.0.0 projects: - name: petclinic git: remotes: origin: 'https://github.com/spring-projects/spring-petclinic.git' checkoutFrom: revision: main
A devfile with multiple projects
devfile.yamlschemaVersion: 2.2.0 metadata: name: example-devfile version: 1.0.0 projects: - name: frontend git: remotes: origin: 'https://github.com/acmecorp/frontend.git' - name: backend git: remotes: origin: 'https://github.com/acmecorp/backend.git'
For each project, define an unique value for the mandatory
name
attribute.For each project, define a mandatory source of either the
git
orzip
type.Projects with sources in Git.
checkoutFrom
refers to the branch being used.Project-source type: git
devfile.yamlprojects: - name: my-project1 git: remotes: origin: 'https://github.com/my-org/project1.git' checkoutFrom: revision: main
Projects with sources in a ZIP archive.
location
refers to the URL of a ZIP file.Project-source type: zip
devfile.yamlsource: zip: location: http://host.net/path/project-src.zip
For each project, define the optional
clonePath
attribute to specify the path into which the project is to be cloned. The path must be relative to the/projects/
directory, and it cannot leave the/projects/
directory. The default value is the project name.Defining the clonePath attribute
devfile.yamlschemaVersion: 2.2.0 metadata: name: my-project-dev version: 2.0.0 projects: - name: my-project-resource clonePath: resources/my-project zip: location: http://host.net/path/project-res.zip - name: my-project2 git: remotes: origin: "https://github.com/my-org/project2.git" checkoutFrom: revision: develop