1

Looking for advice on how best to configure my workflow.

I have an application, that we currently customise for clients (white label) but our OLD devs have made the deployment of this very messy, multiple branches for each client. So merging is a nightmare and some clients are missing features etc.

The only difference between the clients version of our app, is some minor CSS changes and a couple of images.

We currently build with Jenkins and host with AWS Elastic Beanstalk.

What my question is, once we have merged and corrected the issues with the old developers. Am I able to trigger a single or multiple builds, from 1 branch and replace all the CSS values in my app and a couple of images? So we can just push to our master branch and build our production app and also all our clients white labels

closed as unclear what you're asking by Tensibai Aug 28 '18 at 13:02

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • I don't think I understand the question. You describe a "before" context, which you mentioned is being fixed, but without describing how. And you're asking how you can do something in the "after" context. Can you please clarify? Take out if the "before" context if it's not relevant (or mention how it is relevant) and describe the "after" context. – Dan Cornilescu Mar 24 '18 at 23:38
  • If a customer specific logic is to have a configurable frontend, why not decouple it to a conglfiguration layer to have customer-specific e.g. Yaml files? Additionally, you might want to have a look on a generative CSS framework like Sass. – Peter Apr 30 '18 at 7:46
  • What language is your application in ? nodejs ? php ? java ? solution will differ depending on that – Tensibai Jun 29 '18 at 13:02
0

If I correct understand Your problem, You want to build app with diffrent ccs and images.

Jenkins suports maven and simplest way is to use maven profiles plus maven-war-plugin eg.:

<build>
<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
            <webResources>
                <webResource>
                    <directory>src/main/profile/webapp/${images.folder}</directory>
                    <targetPath>images</targetPath>
                </webResource>
            </webResources>
        </configuration>
    </plugin>
</plugins>

<profiles>
<profile>
    <id>prod_client_1</id>
    <properties>
        <images.folder>prod_client_1</images.folder>
    </properties>
</profile>
<profile>
    <id>prod_client_2</id>
    <properties>
        <images.folder>prod_client_2</images.folder>
    </properties>
</profile>

For other resources filtering maven-resources-plugin

At least should be helpful this approach sharing resources across projects

  • That's pretty neat for a java application, what about other languages ? – Tensibai Jun 29 '18 at 13:03
  • we also hava one static very simple web application that shares all images and css, across jee-web and php, you ca use docker via nginx – speedee Jul 10 '18 at 18:50
  • How does this relate to your answer? I fail to see a link between maven plug-in and static CSS resources, mind editing your answer to complete? – Tensibai Jul 10 '18 at 19:05

Not the answer you're looking for? Browse other questions tagged or ask your own question.