I have set up a build pipeline for a war project using Jenkins and the build-pipeline-plugin . It consists of two actual jobs and an final manual job which deploys on Q&A .
Each of the jobs is configured to run the same project, activating different profiles. The first job - fast - is the default build, compiling the sources and running unit tests. The second job - browser - runs the Selenium-based browser tests. The third jobs deploys the war file to the Q&A server.
Each job produces a new war file, which bothers me for two reasons:
- Even though only the needed goals are executed, e.g. no tests when deploying to Q&A, the build still takes a little too long, as the WAR file has lots of files in it.
- We rely on the build number from Jenkins to find out which build the artifact is from. Up till now it was the number from the 'fast' job, but now it is the number from the 'qa-deploy' job.
How can I configure Jenkins and/or Maven to reuse the artifacts from the first job?
I'd prefer a solution which does not change the overall project structure, as our project has a single war module, and splitting it means more work in documenting the changes and it is simpler to have everything in once place.