Build Process - GauchoTools/GauchoCourses GitHub Wiki

The project is structured as two Maven modules, frontend and backend. These modules can be built and individually or together.

Full Build

Running mvn install from the root directory will test and build both the frontend and backend projects into a single, executable JAR file. If any test cases fail, the build will also fail. The frontend project is built first, and static JavaScript and CSS assets are copied to Spring's resources directory.

Maven profiles

Maven's profile feature allows us to specify different configuration for local, staging, or production builds. Under backend/src/main/resources/ there are configuration files for each of the Maven profiles. For more information how this is configured, see this section.

Continuous Integration

Every Pull Request opened to the master branch will test and build the full build. If the tests fail or the project does not compile, the Pull Request will not be allowed to merge. It is suggested to open a Pull Request early, and commit and push often. This will find breaking changes earlier.

Continuous Delivery

The production and staging sites are hosted on Azure App Service. When a Pull Request is merged into master, a final build is kicked off and the .jar is deployed to a staging slot on the Azure App Service.

Relevant Links