make deploy reliable using Go (#74)
This commit is contained in:
parent
4d9ee39eb2
commit
8e090661e8
5 changed files with 142 additions and 19 deletions
23
Makefile
23
Makefile
|
@ -139,26 +139,11 @@ endif
|
|||
dist: apply server webapp bundle
|
||||
|
||||
## Installs the plugin to a (development) server.
|
||||
## It uses the API if appropriate environment variables are defined,
|
||||
## and otherwise falls back to trying to copy the plugin to a sibling mattermost-server directory.
|
||||
.PHONY: deploy
|
||||
deploy: dist
|
||||
## It uses the API if appropriate environment variables are defined,
|
||||
## or copying the files directly to a sibling mattermost-server directory.
|
||||
ifneq ($(and $(MM_SERVICESETTINGS_SITEURL),$(MM_ADMIN_USERNAME),$(MM_ADMIN_PASSWORD),$(CURL)),)
|
||||
@echo "Installing plugin via API"
|
||||
$(eval TOKEN := $(shell curl -i --fail --post301 --location $(MM_SERVICESETTINGS_SITEURL) -X POST $(MM_SERVICESETTINGS_SITEURL)/api/v4/users/login -d '{"login_id": "$(MM_ADMIN_USERNAME)", "password": "$(MM_ADMIN_PASSWORD)"}' | grep Token | cut -f2 -d' ' 2> /dev/null))
|
||||
@if [$(TOKEN) == '']; then\
|
||||
$(error Failed to authenticate and extract token using $(MM_ADMIN_USERNAME): check server logs.)\
|
||||
fi
|
||||
@curl -s --post301 --location $(MM_SERVICESETTINGS_SITEURL) -H "Authorization: Bearer $(TOKEN)" -X POST $(MM_SERVICESETTINGS_SITEURL)/api/v4/plugins -F "plugin=@dist/$(BUNDLE_NAME)" -F "force=true" > /dev/null && \
|
||||
curl -s --post301 --location $(MM_SERVICESETTINGS_SITEURL) -H "Authorization: Bearer $(TOKEN)" -X POST $(MM_SERVICESETTINGS_SITEURL)/api/v4/plugins/$(PLUGIN_ID)/enable > /dev/null && \
|
||||
echo "OK." || echo "Sorry, something went wrong."
|
||||
else ifneq ($(wildcard ../mattermost-server/.*),)
|
||||
@echo "Installing plugin via filesystem. Server restart and manual plugin enabling required"
|
||||
mkdir -p ../mattermost-server/plugins
|
||||
tar -C ../mattermost-server/plugins -zxvf dist/$(BUNDLE_NAME)
|
||||
else
|
||||
@echo "No supported deployment method available. Install plugin manually."
|
||||
endif
|
||||
./build/bin/deploy $(PLUGIN_ID) dist/$(BUNDLE_NAME)
|
||||
|
||||
.PHONY: debug-deploy
|
||||
debug-deploy: debug-dist deploy
|
||||
|
@ -209,6 +194,6 @@ ifneq ($(HAS_WEBAPP),)
|
|||
endif
|
||||
rm -fr build/bin/
|
||||
|
||||
# Help documentatin à la https://marmelab.com/blog/2016/02/29/auto-documented-makefile.html
|
||||
# Help documentation à la https://marmelab.com/blog/2016/02/29/auto-documented-makefile.html
|
||||
help:
|
||||
@cat Makefile | grep -v '\.PHONY' | grep -v '\help:' | grep -B1 -E '^[a-zA-Z0-9_.-]+:.*' | sed -e "s/:.*//" | sed -e "s/^## //" | grep -v '\-\-' | sed '1!G;h;$$!d' | awk 'NR%2{printf "\033[36m%-30s\033[0m",$$0;next;}1' | sort
|
||||
|
|
Reference in a new issue