Regression testing is performed to verify that changes made to the code base or to the system do not negatively impact existing functionality. In the scenario you described, the infrastructure of the application changes with each new client, but the code base remains the same.
Whether or not regression testing needs to be performed in this case depends on the extent of the infrastructure changes. If the changes are minimal and do not affect the functionality of the code, then regression testing may not be necessary. However, if the changes could potentially affect the code's behavior, it would be advisable to run regression tests to ensure that everything is functioning as expected.
It's important to consider the risks and benefits of regression testing in each scenario. On one hand, running regression tests for every client could be time-consuming and add unnecessary overhead. On the other hand, if the tests are not run and a critical issue arises, it could result in significant downtime and loss of credibility.
Ultimately, the decision to run regression tests in this scenario should be based on a risk assessment, taking into account the scope of the infrastructure changes, the criticality of the application, and the impact of any potential failures.