Add `git hooks` that execute common and repetitive tasks before committing and pushing to make developer life easier.
Reviewed-on: #105
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
When we changed the application to be executed as distributed nodes (PR #96), performing tests with `docker-compose` became impossible.
To fix this situation in this PR, two new targets are added to `Makefile`:
* `compose_test`
* `compose_test_shell`
These new targets allow one to execute tests and enter the container shell responsible for running these tests.
Reviewed-on: #101
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
To create a cluster with distributed nodes, the following changes were made:
* Use [`dns_cluster`][0] to execute distributed nodes
* Add _script_ to execute distributed nodes locally
Also, improve local execution by:
* Use [`mix release`][1] to make easier [deploy `phoenix`][2]
* Use [`compose watch`][3] to synchronize code from the host with the service
Some minor improvements:
* Ignore files and folders in git and docker
* Remove boilerplate comments
[0]: https://github.com/phoenixframework/dns_cluster
[1]: https://hexdocs.pm/mix/Mix.Tasks.Release.html
[2]: https://hexdocs.pm/phoenix/releases.html
[3]: https://docs.docker.com/compose/how-tos/file-watch/
Co-authored-by: Joao P Dubas <joao.dubas@gmail.com>
Reviewed-on: #96
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
To improve `CI` quality the following checks were added:
* compile warnings
* deprecated dependencies
* insecure dependencies
* unused dependencies
* code vulnerabilities
Also, to improve `CI` execution time, dependencies checks and lining were separated from the test pipeline.
Last, but not least, to make local development easier a `Dockerfile` was created to contain any system dependencies, and targets to handle database creation and migration were added.
Reviewed-on: #37
1. Ignore unnecessary files, such as `pgcli` log/history, and extra `docker-compose` definitions.
2. Add `Makefile` with common tasks.
3. Add git pre-commit hook to ensure project is always properly formatted.
4. Add [`btree_gist`][0] extension to `postgres`.
Reviewed-on: #6
[0]: https://www.postgresql.org/docs/14/btree-gist.html