Makefile: generate release archives including 3rd-party libraries

Relates to #607

Archive creation process (tar, zip):
- let Composer resolve functional (no-dev) dependencies
- call git-archive to generate a release archive
- include 3rd-party dependencies to the generated archive

Signed-off-by: VirtualTam <virtualtam@flibidi.net>
This commit is contained in:
VirtualTam 2016-07-23 19:26:05 +02:00
parent 7f5ab8c0a4
commit 559315ba0a
2 changed files with 39 additions and 7 deletions

16
.gitignore vendored
View file

@ -1,4 +1,4 @@
# Ignore data/, tmp/, cache/ and pagecache/ # Shaarli runtime resources
data data
tmp tmp
cache cache
@ -9,18 +9,22 @@ pagecache
.buildpath .buildpath
.project .project
# Ignore raintpl generated pages # Raintpl generated pages
*.rtpl.php *.rtpl.php
# Ignore test dependencies # 3rd-party dependencies
composer.lock composer.lock
/vendor/ vendor/
# Ignore development and test resources # Release archives
*.tar
*.zip
# Development and test resources
coverage coverage
doxygen doxygen
sandbox sandbox
phpmd.html phpmd.html
# Ignore user plugin configuration # User plugin configuration
plugins/*/config.php plugins/*/config.php

View file

@ -1,5 +1,5 @@
# The personal, minimalist, super-fast, database free, bookmarking service. # The personal, minimalist, super-fast, database free, bookmarking service.
# Makefile for PHP code analysis & testing # Makefile for PHP code analysis & testing, documentation and release generation
# Prerequisites: # Prerequisites:
# - install Composer, either: # - install Composer, either:
@ -127,6 +127,34 @@ test:
@mkdir -p sandbox @mkdir -p sandbox
@$(BIN)/phpunit tests @$(BIN)/phpunit tests
##
# Custom release archive generation
#
# For each tagged revision, GitHub provides tar and zip archives that correspond
# to the output of git-archive
#
# These targets produce similar archives, featuring 3rd-party dependencies
# to ease deployment on shared hosting.
##
ARCHIVE_VERSION := shaarli-$$(git describe)-full
release_archive: release_tar release_zip
### download 3rd-party PHP libraries
composer_dependencies: clean
composer update --no-dev
find vendor/ -name ".git" -type d -exec rm -rf {} +
### generate a release tarball and include 3rd-party dependencies
release_tar: composer_dependencies
git archive -o $(ARCHIVE_VERSION).tar HEAD
tar rvf $(ARCHIVE_VERSION).tar vendor/
### generate a release zip and include 3rd-party dependencies
release_zip: composer_dependencies
git archive -o $(ARCHIVE_VERSION).zip -9 HEAD
zip -r $(ARCHIVE_VERSION).zip vendor/
## ##
# Targets for repository and documentation maintenance # Targets for repository and documentation maintenance
## ##