DevOps | auto provision an intelliJ software development eco system
to auto-provision an eco-system for java software development
automate manual tasks that take time – is the DevOps culture – and setting up a development stack takes time, so we automate it
java development stack components
Which components orbit an IntelliJ or Eclipse IDE. How do we automate the creation of a ready-to-use software development environment? Let’s start at the end – what is the end-game? What does success look like?
The End Game | Software Development Stack
On Monday morning, developers on their 1st day and 100th day walk in and sit at a blank Windows or Linux machine. They type in one command, wait 5 minutes then start writing code. What happened during the 5 minutes.
Auto-Provisioning a Development Stack | the 5 minutes
In the You can use Chocolatey to automate installation on Windows, whilst using apt-get or yum on Linux. These are the steps required to achieve the development stack
- install IntelliJ and note the install folder.
- install Maven 3, configure env vars, settings.xml and IntelliJ.
post creation use cases | intellij
Once the intelliJ eco-system is up and running we will want to trigger
use case flows against it.
|#||Use Case||What is needed? By Who?||What Happens||Command (Example)|
|1||versioned git checkin||I want all projects checked in with new maven version coordinate.||The maven version for every project is updated to the current yyddd-hhmm time-stamp and every project is checked into git. Maven command
|2||build / test projects||I want to build on the command line.||All java projects are compiled, tested and their artifacts are installed into the local maven cache.||
|4||run local tomcat on 8899||I want to visit http://localhost:8899/ for web or rest serrvice exploration||Build, test, run a tomcat8x (or 9x) instance and deploy the application WAR into it.||
|3||create cobertura report||What percentage of code is covered by tests (asks the Developer)?||A Cobertura test coverage report for every java project is produced for the software developer to peruse.||