diff --git a/ROADMAP.md b/ROADMAP.md new file mode 100644 index 0000000000..30c6a83ba8 --- /dev/null +++ b/ROADMAP.md @@ -0,0 +1,79 @@ +# Roadmap + +1. [Platforms & Providers](#plaforms) +1. [Workflow Template](#template) +1. [Managed Pipelines](#managed-pipelines) +1. [Workflow Hooks](#hooks) +1. [Code coverage report](#coverage) +1. [Static analysis report](#static) +1. [Security analysis report](#security) + +## Platforms & Providers + +Platform Openstack, providers: +- File Storage File: artifact +- Block Storage : persistent workspace on workspace +- Deploy on Environment +- CDS Compute: let users to use their own platform to run CDS Workers + +Platform Marathon, providers: +- Deploy on Environment +- CDS Compute + + +## Workflow template + +Template as binary file we be removed from CDS. We consider that the main use case of template is the bootstrap on an **Application Workflow**. So Workflow Template must be just generic configuration file. + +In CDS API, multiple template repositories will be registered. A template repositories (such as 'public' or 'my-great-company') is a kind of namespace. In each template repostory we register template workflow with a `name`, a `description` and an `url`. The `URL` will be used to download the `yaml` file. + +The goal of templates is to instanciate an **Application Workfow** configuration file in a Git repository. Basically a template is a **Golang tesx/template** formatted file. + +When a template will be used from command line in a Git repository: + +- The use choose a project in wich he is able to create a workflow +- If the project is not linked to any repository-manager, it ask for it +- Each variable os the template is prompted on command line. +- The **Application Workfow** configuration file is generated in the current directory. +- The current repostory is added in the CDS project as an application linked to the repository. +- The workflow is imported in the project + +### Use case #1 + +As a developper, considering : + +- the working directory is in a git repository (.git directory is available is the directory or in parent directory) +- `PROJECT_KEY` is a project in CDS +- I can see all the templates with: `$ cds template list` +- I choose my template and run +- `$ cds new --template