diff options
author | VirtualTam <virtualtam@flibidi.net> | 2016-07-23 19:26:05 +0200 |
---|---|---|
committer | VirtualTam <virtualtam@flibidi.net> | 2016-07-25 23:54:13 +0200 |
commit | 559315ba0a89e306bc46d0a540f1536193860580 (patch) | |
tree | 3d71f09ef5ea21fa152cf7d177e490b8452aef23 | |
parent | 7f5ab8c0a40ebc7f10c2b92f05a475f8c6902948 (diff) | |
download | Shaarli-559315ba0a89e306bc46d0a540f1536193860580.tar.gz Shaarli-559315ba0a89e306bc46d0a540f1536193860580.tar.zst Shaarli-559315ba0a89e306bc46d0a540f1536193860580.zip |
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>
-rw-r--r-- | .gitignore | 16 | ||||
-rw-r--r-- | Makefile | 30 |
2 files changed, 39 insertions, 7 deletions
@@ -1,4 +1,4 @@ | |||
1 | # Ignore data/, tmp/, cache/ and pagecache/ | 1 | # Shaarli runtime resources |
2 | data | 2 | data |
3 | tmp | 3 | tmp |
4 | cache | 4 | cache |
@@ -9,18 +9,22 @@ pagecache | |||
9 | .buildpath | 9 | .buildpath |
10 | .project | 10 | .project |
11 | 11 | ||
12 | # Ignore raintpl generated pages | 12 | # Raintpl generated pages |
13 | *.rtpl.php | 13 | *.rtpl.php |
14 | 14 | ||
15 | # Ignore test dependencies | 15 | # 3rd-party dependencies |
16 | composer.lock | 16 | composer.lock |
17 | /vendor/ | 17 | vendor/ |
18 | 18 | ||
19 | # Ignore development and test resources | 19 | # Release archives |
20 | *.tar | ||
21 | *.zip | ||
22 | |||
23 | # Development and test resources | ||
20 | coverage | 24 | coverage |
21 | doxygen | 25 | doxygen |
22 | sandbox | 26 | sandbox |
23 | phpmd.html | 27 | phpmd.html |
24 | 28 | ||
25 | # Ignore user plugin configuration | 29 | # User plugin configuration |
26 | plugins/*/config.php | 30 | plugins/*/config.php |
@@ -1,5 +1,5 @@ | |||
1 | # The personal, minimalist, super-fast, database free, bookmarking service. | 1 | # The personal, minimalist, super-fast, database free, bookmarking service. |
2 | # Makefile for PHP code analysis & testing | 2 | # Makefile for PHP code analysis & testing, documentation and release generation |
3 | 3 | ||
4 | # Prerequisites: | 4 | # Prerequisites: |
5 | # - install Composer, either: | 5 | # - install Composer, either: |
@@ -128,6 +128,34 @@ test: | |||
128 | @$(BIN)/phpunit tests | 128 | @$(BIN)/phpunit tests |
129 | 129 | ||
130 | ## | 130 | ## |
131 | # Custom release archive generation | ||
132 | # | ||
133 | # For each tagged revision, GitHub provides tar and zip archives that correspond | ||
134 | # to the output of git-archive | ||
135 | # | ||
136 | # These targets produce similar archives, featuring 3rd-party dependencies | ||
137 | # to ease deployment on shared hosting. | ||
138 | ## | ||
139 | ARCHIVE_VERSION := shaarli-$$(git describe)-full | ||
140 | |||
141 | release_archive: release_tar release_zip | ||
142 | |||
143 | ### download 3rd-party PHP libraries | ||
144 | composer_dependencies: clean | ||
145 | composer update --no-dev | ||
146 | find vendor/ -name ".git" -type d -exec rm -rf {} + | ||
147 | |||
148 | ### generate a release tarball and include 3rd-party dependencies | ||
149 | release_tar: composer_dependencies | ||
150 | git archive -o $(ARCHIVE_VERSION).tar HEAD | ||
151 | tar rvf $(ARCHIVE_VERSION).tar vendor/ | ||
152 | |||
153 | ### generate a release zip and include 3rd-party dependencies | ||
154 | release_zip: composer_dependencies | ||
155 | git archive -o $(ARCHIVE_VERSION).zip -9 HEAD | ||
156 | zip -r $(ARCHIVE_VERSION).zip vendor/ | ||
157 | |||
158 | ## | ||
131 | # Targets for repository and documentation maintenance | 159 | # Targets for repository and documentation maintenance |
132 | ## | 160 | ## |
133 | 161 | ||