]> git.immae.eu Git - github/wallabag/wallabag.git/blobdiff - Makefile
Fix documentation wording for matches/notmatches tagging rules
[github/wallabag/wallabag.git] / Makefile
index 9a469a9311d488c769ec55928eb75d3933fb14cd..0f4cbbe80ebaf8df588c4144309c1f856fa7cae6 100755 (executable)
--- a/Makefile
+++ b/Makefile
@@ -1,70 +1,52 @@
 TMP_FOLDER=/tmp
 RELEASE_FOLDER=wllbg-release
 
-SSH_USER=framasoft_bag
-SSH_HOST=78.46.248.87
-SSH_PATH=/var/www/framabag.org/web
+ENV ?= prod
 
-ENV=prod
+help: ## Display this help menu
+       @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
 
-help:
-       @echo 'Makefile for wallabag                                                      '
-       @echo '                                                                           '
-       @echo 'Usage:                                                                     '
-       @echo '   make clean                  clear cache folder                          '
-       @echo '   make install                install latest stable wallabag version      '
-       @echo '   make update                 update to the latest stable wallabag version'
-       @echo '   make run                    run the wallabag server                     '
-       @echo '   make build                  run grunt                                   '
-       @echo '   make test                   execute wallabag testsuite                  '
-       @echo '   make release                produce a wallabag release                  '
-       @echo '   make travis                 make things for travis                      '
-       @echo '   make deploy                 deploy wallabag                             '
-       @echo '                                                                           '
+clean: ## Clear the application cache
+       rm -rf var/cache/*
 
-clean:
-       @rm -rf var/cache/*
+install: ## Install wallabag with the latest version
+       @sh scripts/install.sh $(ENV)
 
-install:
-       TAG=$(git describe --tags $(git rev-list --tags --max-count=1))
-       @git checkout $(TAG)
-       @SYMFONY_ENV=$(ENV) composer install --no-dev -o --prefer-dist
-       @php bin/console wallabag:install --env=$(ENV)
+update: ## Update the wallabag installation to the latest version
+       @sh scripts/update.sh $(ENV)
 
-update:
-       @rm -rf var/cache/*
-       @git fetch origin
-       @git fetch --tags
-       TAG=$(git describe --tags $(git rev-list --tags --max-count=1))
-       @git checkout $(TAG)
-       @SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
-       @php bin/console cache:clear --env=prod
+dev: ## Install the latest dev version
+       @sh scripts/dev.sh
 
-run:
-       php bin/console server:run --env=$(ENV)
+run: ## Run the wallabag built-in server
+       @php bin/console server:run --env=dev
 
-build:
-       @grunt
+build: ## Run webpack
+       @npm run build:$(ENV)
 
-test:
-       @ant prepare && phpunit -v
+prepare: clean ## Prepare database for testsuite
+ifdef DB
+       cp app/config/tests/parameters_test.$(DB).yml app/config/parameters_test.yml
+endif
+       -php bin/console doctrine:database:drop --force --env=test
+       php bin/console doctrine:database:create --env=test
+       php bin/console doctrine:migrations:migrate --no-interaction --env=test
 
-release:
-       version=$(VERSION)
-       @rm -rf $(TMP_FOLDER)/$(RELEASE_FOLDER)
-       @mkdir $(TMP_FOLDER)/$(RELEASE_FOLDER)
-       @git clone git@github.com:wallabag/wallabag.git -b $(VERSION) $(TMP_FOLDER)/$(RELEASE_FOLDER)/$(VERSION)
-       @cd $(TMP_FOLDER)/$(RELEASE_FOLDER)/$(VERSION) && SYMFONY_ENV=$(ENV) composer up -n --no-dev
-       @cd $(TMP_FOLDER)/$(RELEASE_FOLDER)/$(VERSION) && php bin/console wallabag:install --env=$(ENV)
-       @cd $(TMP_FOLDER)/$(RELEASE_FOLDER) && tar czf wallabag-$(VERSION).tar.gz --exclude="var/cache/*" --exclude="var/logs/*" --exclude="var/sessions/*" --exclude=".git" $(VERSION)
-       @echo "MD5 checksum of the package for wallabag $(VERSION)"
-       @md5 $(TMP_FOLDER)/$(RELEASE_FOLDER)/wallabag-$(VERSION).tar.gz
-       @scp $(TMP_FOLDER)/$(RELEASE_FOLDER)/wallabag-$(VERSION).tar.gz $(SSH_USER)@$(SSH_HOST):$(SSH_PATH)
-       @rm -rf $(TMP_FOLDER)/$(RELEASE_FOLDER)
+fixtures: ## Load fixtures into database
+       php bin/console doctrine:fixtures:load --no-interaction --env=test
 
-travis:
+test: prepare fixtures ## Launch wallabag testsuite
+       bin/simple-phpunit -v
 
-deploy:
+release: ## Create a package. Need a VERSION parameter (eg: `make release VERSION=master`).
+ifndef VERSION
+       $(error VERSION is not set)
+endif
+       @sh scripts/release.sh $(VERSION) $(TMP_FOLDER) $(RELEASE_FOLDER) $(ENV)
+
+deploy: ## Deploy wallabag
        @bundle exec cap staging deploy
 
-.PHONY: help clean install update build test release travis deploy
+.PHONY: help clean prepare install fixtures update build test release deploy run dev
+
+.DEFAULT_GOAL := install