Skip to content

Commit

Permalink
Makefile: generate release archive including 3rd-party libraries
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
virtualtam committed Jul 23, 2016
1 parent 7f5ab8c commit 9860d31
Show file tree
Hide file tree
Showing 2 changed files with 32 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
23 changes: 22 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,27 @@ test:
@mkdir -p sandbox
@$(BIN)/phpunit tests

##
# GitHub release archive generation
##
release_archive: release_tar release_zip
GIT_VERSION := $$(git describe)

### 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 $(GIT_VERSION).tar HEAD
tar rf $(GIT_VERSION).tar vendor/

### generate a release zip and include 3rd-party dependencies
release_zip: composer_dependencies
git archive -o $(GIT_VERSION).zip -9 HEAD
zip -rq $(GIT_VERSION).zip vendor/

##
# Targets for repository and documentation maintenance
##
Expand Down

0 comments on commit 9860d31

Please sign in to comment.