Setup for Angular + Node Js Project

Hello everyone, I have been developing an Angular + Node Js project for about 4 months but am new to Platform.sh. I’ve looked through the documentation and have a rough understanding of how everything works, but there are a few questions I have. I’m hoping the community here will be able to fill in the blanks. Before I get into the questions I should provide some details as to how my system is implemented.
I have a few repos: one for the Angular frontend, one for the Node Js backend, and a few common repos shared by all. I am planning on having pipelines for the frontend and backend which will trigger when either repo has been pushed to. For the others, I will publish to npm and re-trigger these manually.

  1. I’ve partially added one Git integration. However, I’m getting the impression there is only one git integration per environment; I can’t have two integrations and serve them in the same environment. Is this correct?
  2. Each environment will need a different build command. I did not see this option when I setup my Git integration. Is this possible, and what workaround can I use if not? The source must be the same for all environments, the only difference will be the build command.

Thank you everyone

Hi there. You’re correct that a project can only have one Git integration set up.

If you’re looking to integrate code from multiple repositories into a single Platform.sh project, you can use Git submodules for that. Note that there’s one important caveat when you’re setting up a multiapp as you’ve described, which we’ve noted here.

If you wanted to trigger builds from updates to the submodules you could potentially do this with GitHub Actions, as outlined here by another contributor.

Regarding your second question, Platform.sh builds are environment-agnostic. That is, you can’t have a different build hook run differently on production vs. another branch.

It’s important to note what an environment at Platform.sh means. An environment is attached to a specific Git branch, all tied to the same build process.

At deploy you do have access to the branch name and other environment-level variables that would allow you to change the behavior of your application (e.g. using a different API key for a service in production vs. in development) but the source code cannot be manipulated at that time.

Hope this is helpful!

-c