diff options
author | Christoph Wurst <christoph@winzerhof-wurst.at> | 2016-06-09 19:14:34 +0300 |
---|---|---|
committer | Christoph Wurst <christoph@winzerhof-wurst.at> | 2016-06-09 19:14:34 +0300 |
commit | d423e557c7aa71f3580dd8be4af87c74c5f021f3 (patch) | |
tree | 73150727ac4f604086db2d23196ca1eefa8c78e7 | |
parent | 3318204007ac02f2aafd72132911319ff6f75cd6 (diff) |
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | CHANGELOG.md | 13 | ||||
-rw-r--r-- | Makefile | 213 |
3 files changed, 51 insertions, 176 deletions
@@ -1,5 +1,6 @@ composer.phar +build/ vendor/ # Ignore NetBeans project diff --git a/CHANGELOG.md b/CHANGELOG.md index fbd6fba..85b2cd9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ -owncloud-twofactor_totp (0.0.1) -* **Security**: Security description here -* **Backwards incompatible change**: Changes in the API -* **New dependency**: New dependencies such as a new ownCloud or PHP version -* **Bugfix**: Bugfix description -* **Enhancement**: New feature description
\ No newline at end of file +# Changelog +All notable changes to this project will be documented in this file. + +## 0.3.0 – 2016-06-09 + +### Added +- App is now signed
\ No newline at end of file @@ -1,177 +1,50 @@ -# This file is licensed under the Affero General Public License version 3 or -# later. See the COPYING file. -# @author Bernhard Posselt <dev@bernhard-posselt.com> -# @copyright Bernhard Posselt 2012, 2014 +# Makefile for building the project -# Generic Makefile for building and packaging an ownCloud app which uses npm and -# Composer. -# -# Dependencies: -# * make -# * which -# * curl: used if phpunit and composer are not installed to fetch them from the web -# * tar: for building the archive -# * npm: for building and testing everything JS -# -# If no composer.json is in the app root directory, the Composer step -# will be skipped. The same goes for the package.json which can be located in -# the app root or the js/ directory. -# -# The npm command by launches the npm build script: -# -# npm run build -# -# The npm test command launches the npm test script: -# -# npm run test -# -# The idea behind this is to be completely testing and build tool agnostic. All -# build tools and additional package managers should be installed locally in -# your project, since this won't pollute people's global namespace. -# -# The following npm scripts in your package.json install and update the bower -# and npm dependencies and use gulp as build system (notice how everything is -# run from the node_modules folder): -# -# "scripts": { -# "test": "node node_modules/gulp-cli/bin/gulp.js karma", -# "prebuild": "npm install && node_modules/bower/bin/bower install && node_modules/bower/bin/bower update", -# "build": "node node_modules/gulp-cli/bin/gulp.js" -# }, +app_name=twofactor_totp +project_dir=$(CURDIR)/../$(app_name) +build_dir=$(CURDIR)/build/artifacts +sign_dir=$(build_dir)/sign +appstore_dir=$(build_dir)/appstore +source_dir=$(build_dir)/source +package_name=$(app_name) -app_name=$(notdir $(CURDIR)) -build_tools_directory=$(CURDIR)/build/tools -source_build_directory=$(CURDIR)/build/artifacts/source -source_package_name=$(source_build_directory)/$(app_name) -appstore_build_directory=$(CURDIR)/build/artifacts/appstore -appstore_package_name=$(appstore_build_directory)/$(app_name) -npm=$(shell which npm 2> /dev/null) -composer=$(shell which composer 2> /dev/null) +all: appstore -all: build - -# Fetches the PHP and JS dependencies and compiles the JS. If no composer.json -# is present, the composer step is skipped, if no package.json or js/package.json -# is present, the npm step is skipped -.PHONY: build -build: -ifneq (,$(wildcard $(CURDIR)/composer.json)) - make composer -endif -ifneq (,$(wildcard $(CURDIR)/package.json)) - make npm -endif -ifneq (,$(wildcard $(CURDIR)/js/package.json)) - make npm -endif - -# Installs and updates the composer dependencies. If composer is not installed -# a copy is fetched from the web -.PHONY: composer -composer: -ifeq (, $(composer)) - @echo "No composer command available, downloading a copy from the web" - mkdir -p $(build_tools_directory) - curl -sS https://getcomposer.org/installer | php - mv composer.phar $(build_tools_directory) - php $(build_tools_directory)/composer.phar install --prefer-dist - php $(build_tools_directory)/composer.phar update --prefer-dist -else - composer install --prefer-dist - composer update --prefer-dist -endif - -# Installs npm dependencies -.PHONY: npm -npm: -ifeq (,$(wildcard $(CURDIR)/package.json)) - cd js && $(npm) run build -else - npm run build -endif - -# Removes the appstore build -.PHONY: clean clean: - rm -rf ./build - -# Same as clean but also removes dependencies installed by composer, bower and -# npm -.PHONY: distclean -distclean: clean + rm -rf $(build_dir) rm -rf vendor - rm -rf node_modules - rm -rf js/vendor - rm -rf js/node_modules - -# Builds the source and appstore package -.PHONY: dist -dist: - make source - make appstore -# Builds the source package -.PHONY: source -source: - make build - make test - rm -rf $(source_build_directory) - mkdir -p $(source_build_directory) - tar cvzf $(source_package_name).tar.gz ../$(app_name) \ - --exclude-vcs \ - --exclude="../$(app_name)/build" \ - --exclude="../$(app_name)/js/node_modules" \ - --exclude="../$(app_name)/*.log" \ - --exclude="../$(app_name)/js/*.log" \ - -# Builds the source package for the app store, ignores php and js tests -.PHONY: appstore -appstore: - make build - make test - rm -rf $(appstore_build_directory) - mkdir -p $(appstore_build_directory) - tar cvzf $(appstore_package_name).tar.gz ../$(app_name) \ - --exclude-vcs \ - --exclude="../$(app_name)/build" \ - --exclude="../$(app_name)/tests" \ - --exclude="../$(app_name)/Makefile" \ - --exclude="../$(app_name)/*.log" \ - --exclude="../$(app_name)/phpunit*xml" \ - --exclude="../$(app_name)/composer.*" \ - --exclude="../$(app_name)/js/node_modules" \ - --exclude="../$(app_name)/js/tests" \ - --exclude="../$(app_name)/js/test" \ - --exclude="../$(app_name)/js/*.log" \ - --exclude="../$(app_name)/js/package.json" \ - --exclude="../$(app_name)/js/bower.json" \ - --exclude="../$(app_name)/js/karma.*" \ - --exclude="../$(app_name)/js/protractor.*" \ - --exclude="../$(app_name)/package.json" \ - --exclude="../$(app_name)/bower.json" \ - --exclude="../$(app_name)/karma.*" \ - --exclude="../$(app_name)/protractor\.*" \ - --exclude="../$(app_name)/.*" \ - --exclude="../$(app_name)/js/.*" \ +composer.phar: + curl -sS https://getcomposer.org/installer | php -# Command for running JS and PHP tests. Works for package.json files in the js/ -# and root directory. If phpunit is not installed systemwide, a copy is fetched -# from the internet -.PHONY: test -test: -ifneq (,$(wildcard $(CURDIR)/js/package.json)) - cd js && $(npm) run test -endif -ifneq (,$(wildcard $(CURDIR)/package.json)) - $(npm) run test -endif -ifeq (, $(shell which phpunit 2> /dev/null)) - @echo "No phpunit command available, downloading a copy from the web" - mkdir -p $(build_tools_directory) - curl -sSL https://phar.phpunit.de/phpunit.phar -o $(build_tools_directory)/phpunit.phar - php $(build_tools_directory)/phpunit.phar -c phpunit.xml - php $(build_tools_directory)/phpunit.phar -c phpunit.integration.xml -else - phpunit -c phpunit.xml - phpunit -c phpunit.integration.xml -endif
\ No newline at end of file +install-deps: install-composer-deps + +install-composer-deps: composer.phar + php composer.phar install + +update-composer: composer.phar + rm -f composer.lock + php composer.phar install --prefer-dist + +appstore: clean install-deps + make clean + make install-composer-deps + mkdir -p $(sign_dir) + rsync -av \ + --exclude=.git \ + --exclude=build \ + --exclude=.gitignore \ + --exclude=.travis.yml \ + --exclude=.scrutinizer.yml \ + --exclude=CONTRIBUTING.md \ + --exclude=composer.json \ + --exclude=composer.lock \ + --exclude=composer.phar \ + --exclude=l10n/.tx \ + --exclude=l10n/no-php \ + --exclude=Makefile \ + --exclude=nbproject \ + --exclude=phpunit*xml \ + --exclude=tests \ + --exclude=vendor/bin \ + $(project_dir) $(sign_dir)
\ No newline at end of file |