Skip to content

Commit

Permalink
Makefile: generate release archives including 3rd-party libraries
Browse files Browse the repository at this point in the history
Relates to shaarli#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>
  • Loading branch information
virtualtam committed Jul 25, 2016
1 parent 7f5ab8c commit c6662f6
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 7 deletions.
16 changes: 10 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Ignore data/, tmp/, cache/ and pagecache/
# Shaarli runtime resources
data
tmp
cache
Expand All @@ -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
30 changes: 29 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -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:
Expand Down Expand Up @@ -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 := $$(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
##
Expand Down

0 comments on commit c6662f6

Please sign in to comment.