diff --git a/.travis.yml b/.travis.yml index 98217994..e290684f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,7 @@ language: php +sudo: false # Use containerized environment + branches: only: - /.*/ @@ -12,7 +14,7 @@ before_install: - phpenv config-add data/infra/travis-php/memcached.ini - phpenv config-add data/infra/travis-php/apcu.ini -before_script: +install: - composer self-update - composer install --no-interaction @@ -20,9 +22,21 @@ script: - mkdir build - composer check -after_script: +after_success: - vendor/bin/phpcov merge build --clover build/clover.xml - wget https://scrutinizer-ci.com/ocular.phar - php ocular.phar code-coverage:upload --format=php-clover build/clover.xml -sudo: false +# Before deploying, build dist file for current travis tag +before_deploy: + - ./build.sh ${TRAVIS_TAG#?} + +deploy: + provider: releases + api_key: + secure: a9dbZchocqeuOViwUeNH54bQR5Sz7rEYXx5b9WPFtnFn9LGKKUaLbA2U91UQ9QKPrcTpsALubUYbw2CnNmvCwzaY+R8lCD3gkU4ohsEnbpnw3deOeixI74sqBHJAuCH9FSaRDGILoBMtUKx2xlzIymFxkIsgIukkGbdkWHDlRWY3oTUUuw1SQ2Xk9KDsbJQtjIc1+G/O6gHaV4qv/R9W8NPmJExKTNDrAZbC1vIUnxqp4UpVo1hst8qPd1at94CndDYM5rG+7imGbdtxTxzamt819qdTO1OfvtctKawNAm7YXZrrWft6c7gI6j6SI4hxd+ZrrPBqbaRFHkZHjnNssO/yn4SaOHFFzccmu0MzvpPCf0qWZwd3sGHVYer1MnR2mHYqU84QPlW3nrHwJjkrpq3+q0JcBY6GsJs+RskHNtkMTKV05Iz6QUI5YZGwTpuXaRm036SmavjGc4IDlMaYCk/NmbB9BKpthJxLdUpczOHpnjXXHziotWD6cfEnbjU3byfD8HY5WrxSjsNT7SKmXN3hRof7bk985ewQVjGT42O3NbnfnqjQQWr/B7/zFTpLR4f526Bkq12CdCyf5lvrbq+POkLVdJ+uFfR7ds248Ue/jBQy6kM1tWmKF9QiwisFlA84eQ4CW3I93Rp97URv+AQa9zmbD0Ve3Udp+g6nF5I= + file: "./build/shlink_${TRAVIS_TAG#?}_dist.zip" + skip_cleanup: true + on: + tags: true + php: 7.1 diff --git a/build.sh b/build.sh index e4986ddf..8cf290e3 100755 --- a/build.sh +++ b/build.sh @@ -8,53 +8,51 @@ if [ "$#" -ne 1 ]; then fi version=$1 -builtcontent=$(readlink -f "../shlink_${version}_dist") +builtcontent="./build/shlink_${version}_dist" projectdir=$(pwd) [ -f ./composer.phar ] && composerBin='./composer.phar' || composerBin='composer' # Copy project content to temp dir echo 'Copying project files...' rm -rf "${builtcontent}" -mkdir "${builtcontent}" -sudo chmod -R 777 "${projectdir}"/data/infra/{database,nginx} -cp -R "${projectdir}"/* "${builtcontent}" +mkdir -p "${builtcontent}" +rsync -av * "${builtcontent}" \ + --exclude=data/infra \ + --exclude=**/.gitignore \ + --exclude=CHANGELOG.md \ + --exclude=composer.lock \ + --exclude=vendor \ + --exclude=docs \ + --exclude=indocker \ + --exclude=docker* \ + --exclude=func_tests_bootstrap.php \ + --exclude=php* \ + --exclude=infection.json \ + --exclude=phpstan.neon \ + --exclude=config/autoload/*local* \ + --exclude=**/test* \ + --exclude=build* cd "${builtcontent}" # Install dependencies echo "Installing dependencies with $composerBin..." -rm -rf vendor -rm -f composer.lock -$composerBin self-update -$composerBin install --no-dev --optimize-autoloader --no-progress --no-interaction +${composerBin} self-update +${composerBin} install --no-dev --optimize-autoloader --no-progress --no-interaction # Delete development files echo 'Deleting dev files...' -rm build.sh -rm CHANGELOG.md rm composer.* -rm LICENSE -rm indocker -rm docker-compose.yml -rm docker-compose.override.yml -rm docker-compose.override.yml.dist -rm func_tests_bootstrap.php -rm php* -rm README.md -rm infection.json -rm -rf build -rm -ff data/database.sqlite -rm -rf data/infra -rm -rf data/{cache,log,proxies}/{*,.gitignore} -rm -rf config/params/{*,.gitignore} -rm -rf config/autoload/{{,*.}local.php{,.dist},.gitignore} +rm -f data/database.sqlite # Update shlink version in config sed -i "s/%SHLINK_VERSION%/${version}/g" config/autoload/app_options.global.php # Compressing file echo 'Compressing files...' -rm -f "${projectdir}"/build/shlink_${version}_dist.zip -zip -ry "${projectdir}"/build/shlink_${version}_dist.zip "../shlink_${version}_dist" +cd "${projectdir}"/build +rm -f ./shlink_${version}_dist.zip +zip -ry ./shlink_${version}_dist.zip ./shlink_${version}_dist +cd "${projectdir}" rm -rf "${builtcontent}" echo 'Done!'