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
* Upgrade elixir, erlang, and postgres to their latest versions.
* Fix CI configuration, so tests are executed.
* Migrate project configuration from `Mix.Config` to `Config`.
Reviewed-on: #5
To make easier to run the app locally with docker and in CI, the
configurations were adjusted to read the database access from
environment variables:
1. POSTGRES_USER
2. POSTGRES_PASS
3. POSTGRES_HOST