Improve project usage (#6)
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
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
This commit is contained in:
parent
b7200555a8
commit
e7df0322d7
@ -5,7 +5,7 @@ name: test
|
|||||||
|
|
||||||
trigger:
|
trigger:
|
||||||
event:
|
event:
|
||||||
include:
|
- push
|
||||||
- pull_request
|
- pull_request
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
3
.gitignore
vendored
3
.gitignore
vendored
@ -12,3 +12,6 @@
|
|||||||
erl_crash.dump
|
erl_crash.dump
|
||||||
*.ez
|
*.ez
|
||||||
wabanex-*.tar
|
wabanex-*.tar
|
||||||
|
docker-compose.*.yml
|
||||||
|
priv/docker/pgcli/history
|
||||||
|
priv/docker/pgcli/log
|
||||||
|
41
Makefile
Normal file
41
Makefile
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
.DEFAULT_GOAL := help
|
||||||
|
|
||||||
|
COMPOSE = docker-compose -f docker-compose.yml -f docker-compose.override.yml
|
||||||
|
|
||||||
|
.PHONY: setup
|
||||||
|
setup: ## setup project
|
||||||
|
@mkdir -p priv/plts
|
||||||
|
@mix do local.rebar --force, local.hex --force
|
||||||
|
@mix do deps.get, deps.compile
|
||||||
|
@mix dialyzer --plt
|
||||||
|
|
||||||
|
.PHONY: check_format
|
||||||
|
check_format: ## run format checker
|
||||||
|
@mix format --check-formatted
|
||||||
|
|
||||||
|
.PHONY: credo
|
||||||
|
credo: ## run credo
|
||||||
|
@mix credo suggest --strict --format=flycheck
|
||||||
|
|
||||||
|
.PHONY: dialyzer
|
||||||
|
dialyzer: ## run dialyzer
|
||||||
|
@mix dialyzer --no-check --quiet --ignore-exit-status --format short
|
||||||
|
|
||||||
|
.PHONY: static_code_analysis
|
||||||
|
static_code_analysis: check_format credo dialyzer ## run static code analysis
|
||||||
|
|
||||||
|
.PHONY: test
|
||||||
|
test: ## run tests
|
||||||
|
@mix test --cover --trace --slowest 10
|
||||||
|
|
||||||
|
.PHONY: compose_up
|
||||||
|
compose_up: ## start containers for this service
|
||||||
|
@$(COMPOSE) up -d
|
||||||
|
|
||||||
|
.PHONY: compose_test
|
||||||
|
compose_test: ## run tests in containers
|
||||||
|
@$(COMPOSE) run -e MIX_ENV=test --entrypoint make app test
|
||||||
|
|
||||||
|
.PHONY: help
|
||||||
|
help:
|
||||||
|
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
|
11
README.md
Normal file
11
README.md
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# Training Log (TRAILOG)
|
||||||
|
|
||||||
|
[](https://drone.dubas.dev/joao.dubas/ex_trainer)
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
## Execute
|
||||||
|
|
||||||
|
## Tests
|
||||||
|
|
||||||
|
## Next steps
|
@ -1,9 +1,11 @@
|
|||||||
---
|
---
|
||||||
version: '3.7'
|
version: '3.7'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
db:
|
db:
|
||||||
image: 'postgres:14.2-alpine'
|
image: 'postgres:14.2-alpine'
|
||||||
hostname: &db_host db
|
hostname: &db_host db
|
||||||
|
init: true
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_USER: &db_user postgres
|
POSTGRES_USER: &db_user postgres
|
||||||
POSTGRES_PASSWORD: &db_pass postgres
|
POSTGRES_PASSWORD: &db_pass postgres
|
||||||
@ -45,6 +47,7 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
entrypoint: sleep
|
entrypoint: sleep
|
||||||
command: 3650d
|
command: 3650d
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
db_data: {}
|
db_data: {}
|
||||||
app_build: {}
|
app_build: {}
|
||||||
|
188
priv/docker/pgcli/config
Normal file
188
priv/docker/pgcli/config
Normal file
@ -0,0 +1,188 @@
|
|||||||
|
# vi: ft=dosini
|
||||||
|
[main]
|
||||||
|
|
||||||
|
# Enables context sensitive auto-completion. If this is disabled the all
|
||||||
|
# possible completions will be listed.
|
||||||
|
smart_completion = True
|
||||||
|
|
||||||
|
# Display the completions in several columns. (More completions will be
|
||||||
|
# visible.)
|
||||||
|
wider_completion_menu = False
|
||||||
|
|
||||||
|
# Multi-line mode allows breaking up the sql statements into multiple lines. If
|
||||||
|
# this is set to True, then the end of the statements must have a semi-colon.
|
||||||
|
# If this is set to False then sql statements can't be split into multiple
|
||||||
|
# lines. End of line (return) is considered as the end of the statement.
|
||||||
|
multi_line = True
|
||||||
|
|
||||||
|
# If multi_line_mode is set to "psql", in multi-line mode, [Enter] will execute
|
||||||
|
# the current input if the input ends in a semicolon.
|
||||||
|
# If multi_line_mode is set to "safe", in multi-line mode, [Enter] will always
|
||||||
|
# insert a newline, and [Esc] [Enter] or [Alt]-[Enter] must be used to execute
|
||||||
|
# a command.
|
||||||
|
multi_line_mode = psql
|
||||||
|
|
||||||
|
# Destructive warning mode will alert you before executing a sql statement
|
||||||
|
# that may cause harm to the database such as "drop table", "drop database"
|
||||||
|
# or "shutdown".
|
||||||
|
destructive_warning = True
|
||||||
|
|
||||||
|
# Enables expand mode, which is similar to `\x` in psql.
|
||||||
|
expand = False
|
||||||
|
|
||||||
|
# Enables auto expand mode, which is similar to `\x auto` in psql.
|
||||||
|
auto_expand = True
|
||||||
|
|
||||||
|
# If set to True, table suggestions will include a table alias
|
||||||
|
generate_aliases = False
|
||||||
|
|
||||||
|
# log_file location.
|
||||||
|
# In Unix/Linux: ~/.config/pgcli/log
|
||||||
|
# In Windows: %USERPROFILE%\AppData\Local\dbcli\pgcli\log
|
||||||
|
# %USERPROFILE% is typically C:\Users\{username}
|
||||||
|
log_file = default
|
||||||
|
|
||||||
|
# keyword casing preference. Possible values "lower", "upper", "auto"
|
||||||
|
keyword_casing = auto
|
||||||
|
|
||||||
|
# casing_file location.
|
||||||
|
# In Unix/Linux: ~/.config/pgcli/casing
|
||||||
|
# In Windows: %USERPROFILE%\AppData\Local\dbcli\pgcli\casing
|
||||||
|
# %USERPROFILE% is typically C:\Users\{username}
|
||||||
|
casing_file = default
|
||||||
|
|
||||||
|
# If generate_casing_file is set to True and there is no file in the above
|
||||||
|
# location, one will be generated based on usage in SQL/PLPGSQL functions.
|
||||||
|
generate_casing_file = False
|
||||||
|
|
||||||
|
# Casing of column headers based on the casing_file described above
|
||||||
|
case_column_headers = True
|
||||||
|
|
||||||
|
# history_file location.
|
||||||
|
# In Unix/Linux: ~/.config/pgcli/history
|
||||||
|
# In Windows: %USERPROFILE%\AppData\Local\dbcli\pgcli\history
|
||||||
|
# %USERPROFILE% is typically C:\Users\{username}
|
||||||
|
history_file = default
|
||||||
|
|
||||||
|
# Default log level. Possible values: "CRITICAL", "ERROR", "WARNING", "INFO"
|
||||||
|
# and "DEBUG". "NONE" disables logging.
|
||||||
|
log_level = INFO
|
||||||
|
|
||||||
|
# Order of columns when expanding * to column list
|
||||||
|
# Possible values: "table_order" and "alphabetic"
|
||||||
|
asterisk_column_order = table_order
|
||||||
|
|
||||||
|
# Whether to qualify with table alias/name when suggesting columns
|
||||||
|
# Possible values: "always", never" and "if_more_than_one_table"
|
||||||
|
qualify_columns = if_more_than_one_table
|
||||||
|
|
||||||
|
# When no schema is entered, only suggest objects in search_path
|
||||||
|
search_path_filter = False
|
||||||
|
|
||||||
|
# Default pager.
|
||||||
|
# By default 'PAGER' environment variable is used
|
||||||
|
# pager = less -SRXF
|
||||||
|
|
||||||
|
# Timing of sql statments and table rendering.
|
||||||
|
timing = True
|
||||||
|
|
||||||
|
# Table format. Possible values: psql, plain, simple, grid, fancy_grid, pipe,
|
||||||
|
# ascii, double, github, orgtbl, rst, mediawiki, html, latex, latex_booktabs,
|
||||||
|
# textile, moinmoin, jira, vertical, tsv, csv.
|
||||||
|
# Recommended: psql, fancy_grid and grid.
|
||||||
|
table_format = psql
|
||||||
|
|
||||||
|
# Syntax Style. Possible values: manni, igor, xcode, vim, autumn, vs, rrt,
|
||||||
|
# native, perldoc, borland, tango, emacs, friendly, monokai, paraiso-dark,
|
||||||
|
# colorful, murphy, bw, pastie, paraiso-light, trac, default, fruity
|
||||||
|
syntax_style = default
|
||||||
|
|
||||||
|
# Keybindings:
|
||||||
|
# When Vi mode is enabled you can use modal editing features offered by Vi in the REPL.
|
||||||
|
# When Vi mode is disabled emacs keybindings such as Ctrl-A for home and Ctrl-E
|
||||||
|
# for end are available in the REPL.
|
||||||
|
vi = False
|
||||||
|
|
||||||
|
# Error handling
|
||||||
|
# When one of multiple SQL statements causes an error, choose to either
|
||||||
|
# continue executing the remaining statements, or stopping
|
||||||
|
# Possible values "STOP" or "RESUME"
|
||||||
|
on_error = STOP
|
||||||
|
|
||||||
|
# Set threshold for row limit. Use 0 to disable limiting.
|
||||||
|
row_limit = 1000
|
||||||
|
|
||||||
|
# Skip intro on startup and goodbye on exit
|
||||||
|
less_chatty = False
|
||||||
|
|
||||||
|
# Postgres prompt
|
||||||
|
# \t - Current date and time
|
||||||
|
# \u - Username
|
||||||
|
# \h - Short hostname of the server (up to first '.')
|
||||||
|
# \H - Hostname of the server
|
||||||
|
# \d - Database name
|
||||||
|
# \p - Database port
|
||||||
|
# \i - Postgres PID
|
||||||
|
# \# - "@" sign if logged in as superuser, '>' in other case
|
||||||
|
# \n - Newline
|
||||||
|
# \dsn_alias - name of dsn alias if -D option is used (empty otherwise)
|
||||||
|
# \x1b[...m - insert ANSI escape sequence
|
||||||
|
# eg: prompt = '\x1b[35m\u@\x1b[32m\h:\x1b[36m\d>'
|
||||||
|
prompt = '\u@\h:\d> '
|
||||||
|
|
||||||
|
# Number of lines to reserve for the suggestion menu
|
||||||
|
min_num_menu_lines = 4
|
||||||
|
|
||||||
|
# Character used to left pad multi-line queries to match the prompt size.
|
||||||
|
multiline_continuation_char = ''
|
||||||
|
|
||||||
|
# The string used in place of a null value.
|
||||||
|
null_string = '<null>'
|
||||||
|
|
||||||
|
# manage pager on startup
|
||||||
|
enable_pager = True
|
||||||
|
|
||||||
|
# Use keyring to automatically save and load password in a secure manner
|
||||||
|
keyring = True
|
||||||
|
|
||||||
|
# Custom colors for the completion menu, toolbar, etc.
|
||||||
|
[colors]
|
||||||
|
completion-menu.completion.current = 'bg:#ffffff #000000'
|
||||||
|
completion-menu.completion = 'bg:#008888 #ffffff'
|
||||||
|
completion-menu.meta.completion.current = 'bg:#44aaaa #000000'
|
||||||
|
completion-menu.meta.completion = 'bg:#448888 #ffffff'
|
||||||
|
completion-menu.multi-column-meta = 'bg:#aaffff #000000'
|
||||||
|
scrollbar.arrow = 'bg:#003333'
|
||||||
|
scrollbar = 'bg:#00aaaa'
|
||||||
|
selected = '#ffffff bg:#6666aa'
|
||||||
|
search = '#ffffff bg:#4444aa'
|
||||||
|
search.current = '#ffffff bg:#44aa44'
|
||||||
|
bottom-toolbar = 'bg:#222222 #aaaaaa'
|
||||||
|
bottom-toolbar.off = 'bg:#222222 #888888'
|
||||||
|
bottom-toolbar.on = 'bg:#222222 #ffffff'
|
||||||
|
search-toolbar = 'noinherit bold'
|
||||||
|
search-toolbar.text = 'nobold'
|
||||||
|
system-toolbar = 'noinherit bold'
|
||||||
|
arg-toolbar = 'noinherit bold'
|
||||||
|
arg-toolbar.text = 'nobold'
|
||||||
|
bottom-toolbar.transaction.valid = 'bg:#222222 #00ff5f bold'
|
||||||
|
bottom-toolbar.transaction.failed = 'bg:#222222 #ff005f bold'
|
||||||
|
|
||||||
|
# style classes for colored table output
|
||||||
|
output.header = "#00ff5f bold"
|
||||||
|
output.odd-row = ""
|
||||||
|
output.even-row = ""
|
||||||
|
|
||||||
|
# Named queries are queries you can execute by name.
|
||||||
|
[named queries]
|
||||||
|
|
||||||
|
# DSN to call by -D option
|
||||||
|
[alias_dsn]
|
||||||
|
# example_dsn = postgresql://[user[:password]@][netloc][:port][/dbname]
|
||||||
|
|
||||||
|
# Format for number representation
|
||||||
|
# for decimal "d" - 12345678, ",d" - 12,345,678
|
||||||
|
# for float "g" - 123456.78, ",g" - 123,456.78
|
||||||
|
[data_formats]
|
||||||
|
decimal = ""
|
||||||
|
float = ""
|
@ -1,2 +1,5 @@
|
|||||||
CREATE EXTENSION "uuid-ossp";
|
CREATE EXTENSION "uuid-ossp";
|
||||||
CREATE EXTENSION "pg_stat_statements";
|
CREATE EXTENSION "pg_stat_statements";
|
||||||
|
CREATE EXTENSION "btree_gist";
|
||||||
|
CREATE DATABASE wabanex_dev TEMPLATE postgres;
|
||||||
|
CREATE DATABASE wabanex_test TEMPLATE wabanex_dev;
|
||||||
|
2
priv/githooks/pre-commit
Executable file
2
priv/githooks/pre-commit
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
make static_code_analysis
|
Loading…
x
Reference in New Issue
Block a user