diff --git a/Makefile b/Makefile index 90907142..d6ee991d 100644 --- a/Makefile +++ b/Makefile @@ -1,51 +1,17 @@ SHELL := /bin/bash -.DEFAULT_GOAL := help - -export # XXX: El espacio antes del comentario cuenta como espacio args ?=## Argumentos para Hain -commit ?= origin/rails## Commit desde el que actualizar -env ?= staging## Entorno del nodo delegado -sutty ?= $(SUTTY)## Dirección local delegate ?= $(DELEGATE)## Cambia el nodo delegado hain ?= ENV_FILE=.env $(HAINISH)## Ubicación de Hainish -# El nodo delegado tiene dos entornos, production y staging. -# Dependiendo del entorno que elijamos, se van a generar los assets y el -# contenedor y subirse a un servidor u otro. No utilizamos CI/CD (aún). -# -# Production es el entorno de panel.sutty.nl -ifeq ($(env),production) -container ?= panel -## TODO: Cambiar a otra cosa -branch ?= rails -public ?= public -endif - -# Staging es el entorno de panel.staging.sutty.nl -ifeq ($(env),staging) -container := staging -branch := staging -public := staging -endif - -help: always ## Ayuda - @echo -e "Sutty\n" | sed -re "s/^.*/\x1B[38;5;197m&\x1B[0m/" - @echo -e "Servidor: https://panel.$(SUTTY_WITH_PORT)/\n" - @echo -e "Uso: make TAREA args=\"ARGUMENTOS\"\n" - @echo -e "Tareas:\n" - @grep -E "^[a-z\-]+:.*##" Makefile | sed -re "s/(.*):.*##(.*)/\1;\2/" | column -s ";" -t | sed -re "s/^([^ ]+) /\x1B[38;5;197m\1\x1B[0m/" - @echo -e "\nArgumentos:\n" - @grep -E "^[a-z\-]+ \?=.*##" Makefile | sed -re "s/(.*) \?=.*##(.*)/\1;\2/" | column -s ";" -t | sed -re "s/^([^ ]+) /\x1B[38;5;197m\1\x1B[0m/" - test: always ## Ejecutar los tests $(MAKE) rake args="test RAILS_ENV=test $(args)" postgresql: ## Iniciar la base de datos pgrep postgres >/dev/null || $(hain) postgresql -serve-js: node_modules ## Iniciar el servidor de desarrollo de Javascript +serve-js: ## Iniciar el servidor de desarrollo de Javascript $(hain) 'bundle exec ./bin/webpack-dev-server' serve: postgresql Gemfile.lock ## Iniciar el servidor de desarrollo de Rails @@ -83,26 +49,6 @@ audit: ## Encuentra dependencias con vulnerabilidades brakeman: ## Busca posibles vulnerabilidades en Sutty $(MAKE) bundle args='exec brakeman' -yarn: ## Tareas de yarn - $(hain) 'yarn $(args)' - -build: Gemfile.lock ## Generar la imagen Docker - time docker build --build-arg="BRANCH=$(branch)" --build-arg="RAILS_MASTER_KEY=`cat config/master.key`" -t sutty/$(container) . - docker tag sutty/$(container):latest sutty:keep - @echo -e "\a" - -save: ## Subir la imagen Docker al nodo delegado - time docker save sutty/$(container):latest | ssh root@$(delegate) docker load - date +%F | xargs -I {} git tag -f $(container)-{} - @echo -e "\a" - -ota: ## Actualizar Rails en el nodo delegado - git push - ssh $(delegate) git -C /srv/sutty/srv/http/panel.sutty.nl pull - ssh $(delegate) git -C /srv/sutty/srv/http/panel.sutty.nl lfs prune - ssh $(delegate) chown -R 1000:82 /srv/sutty/srv/http/panel.sutty.nl - ssh $(delegate) docker exec $(container) rails reload - # Correr un test en particular por ejemplo # `make test/models/usuarie_test.rb` tests := $(shell find test/ -name "*_test.rb")