- Fork this repository to your own account
- Make your changes and verify that tests pass (
./gradlew check) - Run
diktatstatic analyzer withdiktatFixgradle task ordiktatChecktask depending on what you want. - Run
detektwithdetektAllgradle task - After all tests and analyzers passing commit your work and push to a new branch on your fork
- Submit a pull request
- Participate in the code review process by responding to feedback
- Use
gradlew.bat startMysqlDbon Windows and./gradlew startMysqlDbon other platforms for setting up database. Make sure you have Docker installed and active. - Run backend.
It can be run either with
./gradlew save-backend:bootRunor with Intellij Idea Ultimate plugin from the menuServices. - Prepare a storage. For local run we have MINIO:
./gradlew startMinio - Run frontend. It can be run with
./gradlew save-frontend:run. You can enable hot reload by passing--continuousflag. - More specific instructions can be found in save-deploy
In order to make Spring Intellij Idea Ultimate plugin work properly, you need to set these active profiles in service's configuration:
| SaveApplication | SaveGateway | SaveOrchestrator | SavePreprocessor | |
|---|---|---|---|---|
| Mac | mac,dev,secure |
mac,dev |
dev,mac,docker-tcp |
dev,mac |
| Windows | dev,secure |
dev |
dev,win,docker-tcp |
dev |
| Linux | dev,secure |
dev |
dev,docker-tcp |
dev |
In order to run save-orchestrator on Mac with M1 in order to make it run executions, in addition to save-deploy/README.md you need to
- manually put all the files from
save-agent-*-distribution.jarintosave-orchestrator/build/resources/mainas well assave-*-linuxX64.kexe(temporary workaround) - run
docker-mac-settings.shscript (fromsave-deployfolder) in order to let docker be available via TCP Also checksave-deploy/README.mdfor extra information
We generate OpenAPI specification for backend's endpoints.
The job backend-api-spec-update does it:
it runs each week and creates a PR with changes.
By default, it checks all endpoints from controllers in packages:
com.saveourtool.save.backend.controllerscom.saveourtool.save.cosv.controllers
If you need to support a new package, need to update com.saveourtool.save.backend.configs.ApiGroupsConfiguration.