-
Notifications
You must be signed in to change notification settings - Fork 103
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(dev): Ajouter un makeFile avec des raccourcis admin/dev #3300
Comments
Ça me semble une bonne chose. |
Ah, c'est un chouette revirement :) Je suis personnelement très Makefile. C'est mon côté 90's. Côté dev, j'en ai un qui permet de faire diverses choses de setup: C'est très perso, mais ça doit pouvoir s'intégrer à un truc global sans trop de modif |
Je sais pas s'il y a une techno plus intéressante/moderne qui existe 🤔 Makefile me semble encore très utilisé.
Si tu peux partager ton MakeFile, je suis intéressé d'en discuter ! |
En général, c'est à force de faire du docker qu'on se remet à faire du makefile. Les vieux ont les reins solides :D Et puis, un makefile, ça fait pas de mal, c'est pas pour le temps que ça prend. Dans mon makefile, y a pas mal de bricoles, mais oui je peux partager des bouts. |
Une partie sur la gestion du .env #############################################################################
# Environment variables
#############################################################################
-include geonature.local.env
# defaultValues - if not defined in .env
PORT_USERSHUB ?= 5001
PORT_GN_FRONTEND ?= 4200
PORT_GN_BACKEND ?= 8000
PG_DB_NAME ?= geonature2db
PG_USER_NAME ?= gn_user
PG_USER_PASSWD ?= gn_passwd
USERSHUB_VERSION ?= develop
GEONATURE_APP_NAME ?= 'DEV'
WITH_SAMPLE_DATA ?= true
MODULE_DASHBOARD_VERSION ?= 1.4.0
MODULE_EXPORT_VERSION ?= 1.6.0
MODULE_MONITORING_VERSION ?= 0.7.0
MODULE_DIRECTORY ?= modules
GEONATURE_DIRECTORY ?= geonature
USERSHUB_REPOSITORY = [email protected]:PnX-SI/UsersHub.git
GEONATURE_REPOSITORY ?= [email protected]:PnX-SI/GeoNature.git
GEONATURE_VERSION ?= develop Exemple de .env: PORT_USERSHUB=5001
PORT_GN_FRONTEND=4200
PORT_GN_BACKEND=8000
PG_DB_NAME=geonature_import_monitoring
PG_USER_NAME=XXXX
PG_USER_PASSWD=XXXX
GITHOOK_REPOSITORY=/home/etienne/Documents/devel/git-hook
GEONATURE_VERSION=feat/import-monitorings
USERSHUB_VERSION=ce5d200 |
un peu d'install. #############################################################################
# main commands
#############################################################################
all: init_repository config build up
init_repository: usershub_init_repository geonature_init_repository copy_launch_json
config: taxhub_config usershub_config geonature_config
install: usershub_install geonature_install
build: install
install_noDB: usershub_install geonature_install_noDB
update_ports: config geonature_install_frontend
run:
gnome-terminal --tab -t "UsersHub" -- make usershub_run && gnome-terminal --tab -t "Geonature Backend" -- make geonature_run_backend && gnome-terminal --tab -t "Celery" -- make celery_run && gnome-terminal --tab -t "Geonature Frontend" -- make geonature_run_frontend
up: run
run_nobackend:
gnome-terminal --tab -t "TaxHub" -- make taxhub_run && gnome-terminal --tab -t "UsersHub" -- make usershub_run && gnome-terminal --tab -t "Celery" -- make celery_run && gnome-terminal --tab -t "Geonature Frontend" -- make geonature_run_frontend
up_nobackend: run_nobackend |
celery run: #############################################################################
# celery run
#############################################################################
celery_run:
cd $(GEONATURE_DIRECTORY) && source backend/venv/bin/activate && cd backend/geonature/ && celery -A geonature.celery_app:app worker |
Je me rends compte que mon makefile est dans le dossier parent, ce qui permt de faire les clones, les installs de modules, etc. Ptet qu'une forme envisageable pourrait être:
|
Super ! 🌟 Merci pour le partage !
A voir 🤔 Je pense dans un premier temps, je ferais un MakeFile dans GeoNature. Mais j'aime l'idée ! 😃 |
Ma section dédiée GN: # #############################################################################
# GEONATURE
###############################################################################
GEONATURE_DEFAULT_CONFIG_FILE = $(GEONATURE_DIRECTORY)/config/geonature_config.toml.sample
GEONATURE_LOCAL_CONFIG_FILE = $(GEONATURE_DIRECTORY)/config/geonature_config.toml
GEONATURE_DEFAULT_SETTING_FILE = $(GEONATURE_DIRECTORY)/config/settings.ini.sample
GEONATURE_LOCAL_SETTING_FILE = $(GEONATURE_DIRECTORY)/config/settings.ini
GEONATURE_APP_SECRET_KEY ?= '8551a7a-64a4-4216-bda4-9a919fcc7a27'
geonature_init_repository:
if [ ! -d 'geonature' ] ; then git clone $(GEONATURE_REPOSITORY) $(GEONATURE_DIRECTORY) ; fi;
cd $(GEONATURE_DIRECTORY) && git fetch --tags https://github.com/PnX-SI/GeoNature.git && git checkout $(GEONATURE_VERSION) && git submodule init && git submodule update
geonature_init_config:
cp -f $(GEONATURE_DEFAULT_CONFIG_FILE) $(GEONATURE_LOCAL_CONFIG_FILE)
sed -i 's/SQLALCHEMY_DATABASE_URI = "postgresql:\/\/monuser:monpassachanger@localhost:5432\/mabase"/SQLALCHEMY_DATABASE_URI = "postgresql:\/\/$(PG_USER_NAME):$(PG_USER_PASSWD)@localhost:5432\/$(PG_DB_NAME)"/g' $(GEONATURE_LOCAL_CONFIG_FILE)
sed -i "s/SECRET_KEY = 'super secret key'/SECRET_KEY = $(GEONATURE_APP_SECRET_KEY)/g" $(GEONATURE_LOCAL_CONFIG_FILE)
sed -i "s/SECRET_KEY = $(GEONATURE_APP_SECRET_KEY)/SECRET_KEY = $(GEONATURE_APP_SECRET_KEY)\n\n\# Nom de l'application dans la page d'accueil\nappName = $(GEONATURE_APP_NAME)/g" $(GEONATURE_LOCAL_CONFIG_FILE)
sed -i "s/URL_APPLICATION = 'http:\/\/url.com\/geonature'/URL_APPLICATION = 'http:\/\/localhost:$(PORT_GN_FRONTEND)'/g" $(GEONATURE_LOCAL_CONFIG_FILE)
sed -i "s/API_ENDPOINT = 'http:\/\/url.com\/geonature\/api'/API_ENDPOINT = 'http:\/\/localhost:$(PORT_GN_BACKEND)'/g" $(GEONATURE_LOCAL_CONFIG_FILE)
sed -i "s/API_TAXHUB = 'http:\/\/url.com\/taxhub\/api'/API_TAXHUB = 'http:\/\/localhost:$(PORT_TAXUB)\/api'/g" $(GEONATURE_LOCAL_CONFIG_FILE)
geonature_init_settings:
cp -f $(GEONATURE_DEFAULT_SETTING_FILE) $(GEONATURE_LOCAL_SETTING_FILE)
sed -i 's/MODE=prod/MODE=dev/g' $(GEONATURE_LOCAL_SETTING_FILE)
sed -i 's/my_url=http:\/\/url.com\//my_url=http:\/\/localhost:$(PORT_GN_FRONTEND)\//g' $(GEONATURE_LOCAL_SETTING_FILE)
sed -i 's/db_name=geonature2db/db_name=$(PG_DB_NAME)/g' $(GEONATURE_LOCAL_SETTING_FILE)
sed -i 's/user_pg=geonatadmin/user_pg=$(PG_USER_NAME)/g' $(GEONATURE_LOCAL_SETTING_FILE)
sed -i 's/user_pg_pass=monpassachanger/user_pg_pass=$(PG_USER_PASSWD)/g' $(GEONATURE_LOCAL_SETTING_FILE)
sed -i 's/install_default_dem=true/install_default_dem=false/g' $(GEONATURE_LOCAL_SETTING_FILE)
sed -i 's/add_sample_data=true/add_sample_data=$(WITH_SAMPLE_DATA)/g' $(GEONATURE_LOCAL_SETTING_FILE)
sed -i 's/install_module_validation=false/install_module_validation=true/g' $(GEONATURE_LOCAL_SETTING_FILE)
sed -i 's/install_module_occhab=false/install_module_occhab=true/g' $(GEONATURE_LOCAL_SETTING_FILE)
# Works fine, but alter git tracekd file. Not satisfying.
# GEONATURE_FRONTED_CYPRESS_CONFIG_FILE = $(GEONATURE_DIRECTORY)/frontend/cypress.config.ts
# geonature_init_cypress_config:
# sed -i "s/baseUrl: 'http:\/\/127.0.0.1:.*'/baseUrl: 'http:\/\/127.0.0.1:$(PORT_GN_FRONTEND)'/g" $(GEONATURE_FRONTED_CYPRESS_CONFIG_FILE)
# INSTALL #####################################################################
geonature_install: geonature_install_backend geonature_drop_db_activate geonature_install_db geonature_drop_db_deactivate geonature_install_frontend geonature_install_modules
geonature_install_noDB: geonature_install_backend geonature_install_frontend geonature_install_modules
# backend
geonature_install_backend:
cd $(GEONATURE_DIRECTORY)/install && GUNICORN_PORT=9000 ./01_install_backend.sh --dev
# modules
geonature_install_modules:
cd $(GEONATURE_DIRECTORY)/install && BASE_DIR=/home/etienne/Documents/devel/geonature-workspace/geonature ./04_install_gn_modules.sh
# db
geonature_drop_db_activate:
sed -i 's/drop_apps_db=false/drop_apps_db=true/g' $(GEONATURE_LOCAL_SETTING_FILE)
geonature_install_db:
cd $(GEONATURE_DIRECTORY)/install && ./03_create_db.sh
geonature_drop_db_deactivate:
sed -i 's/drop_apps_db=true/drop_apps_db=false/g' $(GEONATURE_LOCAL_SETTING_FILE)
# frontend
geonature_install_frontend:
rm $(GEONATURE_DIRECTORY)/frontend/src/assets/config.json -f
cd $(GEONATURE_DIRECTORY)/install && ./05_install_frontend.sh --dev
# CONFIG ######################################################################
geonature_config: geonature_init_config geonature_init_settings
# RUN #########################################################################
geonature_run_backend:
cd $(GEONATURE_DIRECTORY)/backend && source venv/bin/activate && geonature dev-back --port $(PORT_GN_BACKEND)
geonature_run_frontend:
cd $(GEONATURE_DIRECTORY)/frontend && source ~/.nvm/nvm.sh && nvm use && npm run start -- --port $(PORT_GN_FRONTEND)
geonature_test_frontend:
cd $(GEONATURE_DIRECTORY)/frontend && source ~/.nvm/nvm.sh && nvm use && npm run cypress:run -- --spec "cypress/e2e/occtax-form-spec.js"
geonature_lint_frontend:
cd $(GEONATURE_DIRECTORY)/frontend && source ~/.nvm/nvm.sh && nvm use && npm run format |
Une première version est disponible sur |
Suite à la pr que t'as mergé, il faut rajouter le fichier geonature.local.env dans le gitignore |
Première version intégrée dans GN 2.15.1 |
Bonjour à tous,
Je propose un début de travail sur la création d'un Makefile. Plus d'infos sur GNU Make ici : https://scaron.info/blog/gnu-make.html
Dans l'idée, cela permettrait de "simplifier" des ensembles de commandes principalement de dev comme :
Dans #3298, je propose une première version de ce fichier.
Dans ma proposition, les commandes de lancement de l'installation des modules
occhab
,occtax
ouvalidation
qui se résument aux commandes suivantes :sont regroupés dans un bloc d'instructions identifiés par une
target
, iciinstall_contrib
:GeoNature/Makefile
Lines 37 to 41 in 0c4c37d
Pour exécuter ce bloc, il suffit ensuite de lancer la commande suivante :
Questions
The text was updated successfully, but these errors were encountered: