expected to find exactly one project

Goodmorning, 

I have a single dotnet core 8 project and  I need to publish to App Engine. I have a bitbucket repository and I trigger the build with pipe: atlassian/google-app-engine-deploy:1.5.0

All is working fine, and I can see the application working fine.

Now I have I multi project solution and I want to do the same operation. 

During the build operation I receive this error:

"build": expected to find exactly one project file in directory .

Is not possibile deploy a multi project solution to google app engine?

How I can solve this problem? 

Thanks.

 

0 12 226
12 REPLIES 12

Might clarify why you want different projects, as projects as the lowest boundary for a service Google Cloud overview  |  Overview, if it is for failover or service redundancy then see Traffic Director Traffic Director documentation  |  Google Cloud and deploy the App Engine application by changing project ID in your app.yaml and ensure Cloud DNS is configured. If it isn't a Service use case - then why are you wanting a different project.

When you create a dotnet core solutions is a best pratices create multi projects. For example you can create a shared project where store class modes, a project where you can create a repository logic etc. In this case what happen is that the application is not build because it wants only one project. Thanks

I agree but that is not a google cloud project that is a .NET which is based on component separation - you would adjust your app.yaml to deploy The .NET runtime  |  Google App Engine flexible environment docs  |  Google Cloud or deploy as separate services An overview of App Engine  |  App Engine Documentation  |  Google Cloud

Every project, without the main are component that are builted as library. A really structurated project must be divided into different projects. Pay attention that are different projects and not different services. My app yaml is this one (and I have the problem)

 

runtimeaspnetcore
env: flex

runtime_config:
  operating_system: ubuntu22

manual_scaling:
  instances: 1
resources:
  cpu: 1
  memory_gb: 0.5
  disk_size_gb: 10

env_variables:
  # The __ in My__Greeting will be translated to a : by ASP.NET.
  My__Greeting: Hello AppEngine!

 

 

Are you deploying with an extension or pipeline or just the build trigger - if the build trigger the primary project should have an ItemGroup with a project reference - ensure the path is correct based on the location of the code.

Take a look at dotnet-docs-samples/appengine/flexible/HelloWorld at main · GoogleCloudPlatform/dotnet-docs-samples ... or one of the other samples https://github.com/GoogleCloudPlatform/dotnet-docs-samples/tree/main/appengine/flexible/

Yes I have a reference in ItemGroup (inside the main project .csprj). The sample that you provided is a simple project. If is possibile I need a sample with multi projects. Thanks.

your other option is to deploy it as a container or to cloud run, here is a more complex example as a container to App engine flex GoogleCloudPlatform/aspnet-docker (github.com)

 

Actually I'm creating a docker image in my local env and I'm publishing to Artifactory using gcloud push. then manually promote the latest image pushed as new image, and deploy it manually. 

Is possibile trigger deploy operation when I will push a new image? 

Thanks

Thanks for your reply. 

In this first phase we need to auto publish the new image from artifactory to  cloud run. 

Actually we create docker image in my personal computer. Then tag with google repo name, than push . 

Finally, in manual mode I change the service. 

Is possible avoid the last phase: the manual operation? 

Thanks

you can trigger the deployment of the new container based on a build http trigger or an eventarc listening for the update event - see example above

 

Did you fond a solution? I'm new to GCP and GAE and it bothers me that I can't find solution to define folders (with referenced projects) that I want to upload into GAE before build.