dotnet / tye

Tye is a tool that makes developing, testing, and deploying microservices and distributed applications easier. Project Tye includes a local orchestrator to make developing microservices easier and the ability to deploy microservices to Kubernetes with minimal configuration.
MIT License
5.29k stars 520 forks source link

multiple project (.sln) #923

Open ilmaz opened 3 years ago

ilmaz commented 3 years ago

Given we have The microservice projects And for different teams and languages we crated two SLN file with different sub-folders in a special folder When we execute The "tye init" command in parent folder Then we must see a tye.yaml file in parent folder

Phiph commented 3 years ago

Sure that sounds interesting, many people might have multiple Solutions in for Testing, automated testing, or integration tests.

I'd suggest for now, creating a tye.yaml file in the parent folder, then in each of your sub folders running tye init.

You can use the parent Tye.yaml file to reference the solution specific YAML files like so :


#The Name must be the same in each referenced tye.yaml
name: MultipileSolutions

#define multiple services here
services:

- name: supportingServices
  include: tye-services.yaml

- name: solution1
  include: /solution1/tye-micro1.yaml

- name: solution2
  include: /solution2/tye-micro2.yaml

I'll experiment with your idea though!

ilmaz commented 3 years ago

Thank you for your attention to this matter.

samtrion commented 3 years ago

In the course of this it would also be desirable if .slnf files could be considered as well.

Phiph commented 3 years ago

Interesting @samtrion I haven't come across slnf files yet.

What would be your desired outcome when using tye with slnf files?

samtrion commented 3 years ago

Well, since the .slnf files are just a filter on an existing .sln, they are just the logical extension of multi-sln-repositories.

For example, if I have a .sln with the following projects.

- ProjectA
- ProjectB
- ProjectC

Now if I run withoutB.slnf, Tye would run the filtered .sln accordingly, with the result ProjectA & ProjectC.