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

View file

@ -1,5 +1,5 @@
# 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:
# - install Composer, either:
@ -127,6 +127,34 @@ test:
@mkdir -p sandbox
@$(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
##