diff --git a/.travis/deploy_script.sh b/.travis/deploy_script.sh index 94c6fd2b..c9cff9b5 100755 --- a/.travis/deploy_script.sh +++ b/.travis/deploy_script.sh @@ -1,139 +1,140 @@ #!/usr/bin/env bash -if [ "$TRAVIS" = "true" ]; then - - cd $TRAVIS_BUILD_DIR - - if test "$TRAVIS_TAG"; then - PKG_NAME=$TRAVIS_TAG - VERSION=$TRAVIS_TAG - - # Pass in the tag as the version to write out - php artisan phpvms:version --write $VERSION - else - echo "On branch $TRAVIS_BRANCH" - - if [ "$TRAVIS_BRANCH" != "master" ] && [ "$TRAVIS_BRANCH" != "dev" ]; then - echo "Not on valid branch, exiting" - exit 0 - fi - - # Write the version out but place the branch ID in there - # This is only for the dev branch - BASE_VERSION=$(php artisan phpvms:version --base-only) - - # This now includes the pre-release version, so "-dev" by default - PKG_NAME=${BASE_VERSION} - - # Don't pass in a version here, just write out the latest hash - php artisan phpvms:version --write >VERSION - VERSION=$(cat VERSION) - fi - - echo "Version: $VERSION" - echo "Package name: $TAR_NAME" - - FILE_NAME="phpvms-$PKG_NAME" - TAR_NAME="$FILE_NAME.tar.gz" - ZIP_NAME="$FILE_NAME.zip" - - echo "Cleaning files" - - rm -rf vendor - composer install --no-dev --prefer-dist --no-interaction --verbose - - # Leftover individual files to delete - declare -a remove_files=( - .git - .github - .sass-cache - .idea - .travis - docker - _ide_helper.php - .dockerignore - .dpl - .editorconfig - .eslintignore - .eslintrc - .php_cs - .php_cs.cache - .phpstorm.meta.php - .styleci.yml - .phpunit.result.cache - env.php - intellij_style.xml - config.php - docker-compose.yml - Makefile - phpcs.xml - phpunit.xml - phpvms.iml - Procfile - phpstan.neon - node_modules - composer.phar - vendor/willdurand/geocoder/tests - ) - - for file in "${remove_files[@]}"; do - rm -rf $file - done - - find ./vendor -type d -name ".git" -print0 | xargs rm -rf - find . -type d -name "sass-cache" -print0 | xargs rm -rf - - # clear any app specific stuff that might have been loaded in - find bootstrap/cache -mindepth 1 -maxdepth 1 -not -name '.gitignore' -print0 -exec rm -rf {} + - find storage/app -mindepth 1 -maxdepth 1 -not -name '.gitignore' -not -name public -not -name import -print0 -exec rm -rf {} + - find storage/app/public -mindepth 1 -maxdepth 1 -not -name '.gitignore' -not -name avatars -not -name uploads -print0 -exec rm -rf {} + - find storage/app/public/avatars -mindepth 1 -not -name '.gitignore' -print0 -exec rm -rf {} + - find storage/app/public/uploads -mindepth 1 -not -name '.gitignore' -print0 -exec rm -rf {} + - find storage/debugbar -mindepth 1 -not -name '.gitignore' -print0 -exec rm -rf {} + - find storage/docker -mindepth 1 -not -name '.gitignore' -print0 -exec rm -rf {} + - find storage/framework/cache -mindepth 1 -not -name '.gitignore' -print0 -exec rm -rf {} + - find storage/framework/sessions -mindepth 1 -not -name '.gitignore' -print0 -exec rm -rf {} + - find storage/framework/views -mindepth 1 -not -name '.gitignore' -print0 -exec rm -rf {} + - find storage/logs -mindepth 1 -not -name '.gitignore' -print0 -exec rm -rf {} + - - mkdir -p storage/app/public/avatars - mkdir -p storage/app/public/uploads - mkdir -p storage/framework/cache - mkdir -p storage/framework/sessions - mkdir -p storage/framework/views - - # Regenerate the autoloader and classes - composer dump-autoload - make clean - - cd /tmp - ls -al $TRAVIS_BUILD_DIR/../ - - tar -czf $TAR_NAME -C $TRAVIS_BUILD_DIR . - sha256sum $TAR_NAME >"$TAR_NAME.sha256" - tar2zip $TAR_NAME - sha256sum $ZIP_NAME >"$ZIP_NAME.sha256" - - ls -al /tmp - - echo "Uploading to S3" - mkdir -p $TRAVIS_BUILD_DIR/build - cd $TRAVIS_BUILD_DIR/build - - mv "/tmp/$TAR_NAME" "/tmp/$ZIP_NAME" "/tmp/$TAR_NAME.sha256" "/tmp/$ZIP_NAME.sha256" . - artifacts upload --target-paths "/" $ZIP_NAME $TAR_NAME $TRAVIS_BUILD_DIR/VERSION $TAR_NAME.sha256 $ZIP_NAME.sha256 - - # Upload the version for a tagged release. Move to a version file in different - # tags. Within phpVMS, we have an option of which version to track in the admin - if test "$TRAVIS_TAG"; then - echo "Uploading release version file" - cp "$TRAVIS_BUILD_DIR/VERSION" release_version - artifacts upload --target-paths "/" release_version - else - echo "Uploading ${TRAVIS_BRANCH}_version file" - cp $TRAVIS_BUILD_DIR/VERSION ${TRAVIS_BRANCH}_version - artifacts upload --target-paths "/" ${TRAVIS_BRANCH}_version - fi - - curl -X POST --data "{\"content\": \"A new build is available at http://downloads.phpvms.net/$TAR_NAME ($VERSION)\"}" -H "Content-Type: application/json" $DISCORD_WEBHOOK_URL +if [ "$TRAVIS" != "true" ]; then + exit 0 fi + +cd $TRAVIS_BUILD_DIR + +if test "$TRAVIS_TAG"; then + PKG_NAME=$TRAVIS_TAG + VERSION=$TRAVIS_TAG + + # Pass in the tag as the version to write out + php artisan phpvms:version --write $VERSION +else + echo "On branch $TRAVIS_BRANCH" + + if [ "$TRAVIS_BRANCH" != "master" ] && [ "$TRAVIS_BRANCH" != "dev" ]; then + echo "Not on valid branch, exiting" + exit 0 + fi + + # Write the version out but place the branch ID in there + # This is only for the dev branch + BASE_VERSION=$(php artisan phpvms:version --base-only) + + # This now includes the pre-release version, so "-dev" by default + PKG_NAME=${BASE_VERSION} + + # Don't pass in a version here, just write out the latest hash + php artisan phpvms:version --write >VERSION + VERSION=$(cat VERSION) +fi + +echo "Version: $VERSION" +echo "Package name: $TAR_NAME" + +FILE_NAME="phpvms-$PKG_NAME" +TAR_NAME="$FILE_NAME.tar.gz" +ZIP_NAME="$FILE_NAME.zip" + +echo "Cleaning files" + +rm -rf vendor +composer install --no-dev --prefer-dist --no-interaction --verbose + +# Leftover individual files to delete +declare -a remove_files=( + .git + .github + .sass-cache + .idea + .travis + docker + _ide_helper.php + .dockerignore + .dpl + .editorconfig + .eslintignore + .eslintrc + .php_cs + .php_cs.cache + .phpstorm.meta.php + .styleci.yml + .phpunit.result.cache + env.php + intellij_style.xml + config.php + docker-compose.yml + Makefile + phpcs.xml + phpunit.xml + phpvms.iml + Procfile + phpstan.neon + node_modules + composer.phar + vendor/willdurand/geocoder/tests +) + +for file in "${remove_files[@]}"; do + rm -rf $file +done + +find ./vendor -type d -name ".git" -print0 | xargs rm -rf +find . -type d -name "sass-cache" -print0 | xargs rm -rf + +# clear any app specific stuff that might have been loaded in +find bootstrap/cache -mindepth 1 -maxdepth 1 -not -name '.gitignore' -print0 -exec rm -rf {} + +find storage/app -mindepth 1 -maxdepth 1 -not -name '.gitignore' -not -name public -not -name import -print0 -exec rm -rf {} + +find storage/app/public -mindepth 1 -maxdepth 1 -not -name '.gitignore' -not -name avatars -not -name uploads -print0 -exec rm -rf {} + +find storage/app/public/avatars -mindepth 1 -not -name '.gitignore' -print0 -exec rm -rf {} + +find storage/app/public/uploads -mindepth 1 -not -name '.gitignore' -print0 -exec rm -rf {} + +find storage/debugbar -mindepth 1 -not -name '.gitignore' -print0 -exec rm -rf {} + +find storage/docker -mindepth 1 -not -name '.gitignore' -print0 -exec rm -rf {} + +find storage/framework/cache -mindepth 1 -not -name '.gitignore' -print0 -exec rm -rf {} + +find storage/framework/sessions -mindepth 1 -not -name '.gitignore' -print0 -exec rm -rf {} + +find storage/framework/views -mindepth 1 -not -name '.gitignore' -print0 -exec rm -rf {} + +find storage/logs -mindepth 1 -not -name '.gitignore' -print0 -exec rm -rf {} + + +mkdir -p storage/app/public/avatars +mkdir -p storage/app/public/uploads +mkdir -p storage/framework/cache +mkdir -p storage/framework/sessions +mkdir -p storage/framework/views + +# Regenerate the autoloader and classes +composer dump-autoload +make clean + +cd /tmp +ls -al $TRAVIS_BUILD_DIR/../ + +tar -czf $TAR_NAME -C $TRAVIS_BUILD_DIR . +sha256sum $TAR_NAME >"$TAR_NAME.sha256" +tar2zip $TAR_NAME +sha256sum $ZIP_NAME >"$ZIP_NAME.sha256" + +ls -al /tmp + +echo "Uploading to S3" +mkdir -p $TRAVIS_BUILD_DIR/build +cd $TRAVIS_BUILD_DIR/build + +mv "/tmp/$TAR_NAME" "/tmp/$ZIP_NAME" "/tmp/$TAR_NAME.sha256" "/tmp/$ZIP_NAME.sha256" . +artifacts upload --target-paths "/" $ZIP_NAME $TAR_NAME $TRAVIS_BUILD_DIR/VERSION $TAR_NAME.sha256 $ZIP_NAME.sha256 + +# Upload the version for a tagged release. Move to a version file in different +# tags. Within phpVMS, we have an option of which version to track in the admin +if test "$TRAVIS_TAG"; then + echo "Uploading release version file" + cp "$TRAVIS_BUILD_DIR/VERSION" release_version + artifacts upload --target-paths "/" release_version +else + echo "Uploading ${TRAVIS_BRANCH}_version file" + cp $TRAVIS_BUILD_DIR/VERSION ${TRAVIS_BRANCH}_version + artifacts upload --target-paths "/" ${TRAVIS_BRANCH}_version +fi + +curl -X POST --data "{\"content\": \"A new build is available at http://downloads.phpvms.net/$TAR_NAME ($VERSION)\"}" -H "Content-Type: application/json" $DISCORD_WEBHOOK_URL