Skip to content

Commit f1e6203

Browse files
committed
Updating readme with Heroku details
1 parent ec6fe07 commit f1e6203

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ This is a **Github Flow** boilerplate project using **Quarkus** GraalVM native i
99
- [Integration Tests](#integration-tests)
1010
- [Sonar](#sonar)
1111
- [Wrapping up developer responsabilities](#wrapping-up-developer-responsabilities)
12+
- [Heroku DEV environment](#heroku-dev-environment)
1213
- [Database](#database)
1314
- [Api docs](#api-docs)
1415
- [Quarkus](#quarkus)
@@ -79,9 +80,20 @@ Even though the dashboard will always represent the quality status of master, is
7980
- Make sure integration tests still work. Introduce some if needed.
8081
- Make sure the technial debt in Sonar is the same or better when your code is merged.
8182

83+
### Heroku DEV environment
84+
As mentioned before, `master.yml` pipeline will deploy to a DEV heroku environment every time new features are merged into master branch using a `push` mechanism.
85+
86+
A so called `Add-on` is already active in Heroku, making a `PostgreSQL` database hosted in AWS available through a connection string provided as `DATABASE_URL` environment variable.
87+
88+
Additionally, a `Dyno` is also created in Heroku so the platform knows how to bootstrap our docker image every time it gets deplyed, configured with the command `web ./application -Dquarkus.http.host\=0.0.0.0`.
89+
90+
Other than that, when the pipeline pushes to Heroku, the application downtime (startup time) will be around **50ms** thanks to the GraalVM native image.
91+
8292
## Database
8393
For testing purposes an H2 database will be used (notice the %test prefix in `application properties` that only apply to mvn test). Once deployed, the application will use a *PostgreSQL* in Heroku. Connection details will get overriden as environment variables will replace some `application properties` (notice the ${PORT:8080} annotation, this will get a default value of `8080` unless a `PORT` environment variables is set, in which case its value will override the `8080`).
8494

95+
As version control for database, the selected tool is `flyway`. Schema migrations will take place automatically on application startup when new flyway scripts are created at `src/main/resources/db/migration` following the appropriate annotation.
96+
8597
## Api docs
8698
Both [OpenAPI](https://quarkus-github-flow.herokuapp.com/openapi) and [Swagger-UI](https://quarkus-github-flow.herokuapp.com/swagger-ui) are available.
8799

0 commit comments

Comments
 (0)