diff options
| author | nemsia <nemsia@nemsia.org> | 2018-05-15 16:51:54 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-05-15 16:51:54 +0200 |
| commit | a62d487933d3ad71fd4530898e17e370d526ae1f (patch) | |
| tree | cf253eb8df020666c58b5b4308209907ca235123 /scripts | |
| parent | a99ba70d0804ab7a77ec5fafdf5ec44b137ac913 (diff) | |
| parent | ee5bc6a165e573b60c7657cee7ebc8f1646f1fa8 (diff) | |
| download | mastodon_ynh-a62d487933d3ad71fd4530898e17e370d526ae1f.tar.gz mastodon_ynh-a62d487933d3ad71fd4530898e17e370d526ae1f.tar.bz2 mastodon_ynh-a62d487933d3ad71fd4530898e17e370d526ae1f.zip | |
Merge pull request #19 from nemsia/testing
Make upgrade from sources
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/upgrade | 114 |
1 files changed, 66 insertions, 48 deletions
diff --git a/scripts/upgrade b/scripts/upgrade index 54cdd8f..71f4e1b 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -15,6 +15,7 @@ source /usr/share/yunohost/helpers # See comments in install script app=$YNH_APP_INSTANCE_NAME +db_name=$app # Retrieve app settings domain=$(ynh_app_setting_get "$app" domain) @@ -66,72 +67,75 @@ ynh_abort_if_errors path_url=$(ynh_normalize_url_path $path_url) #================================================= -# STANDARD UPGRADE STEPS -#================================================= -# TODO TODO TODO +# INSTALL DEPENDENCIES #================================================= -db_name=$app +# upgrade Node.js v4 to v6 +# TODO: use https://github.com/YunoHost-Apps/Experimental_helpers/blob/master/ynh_install_nodejs/ynh_install_nodejs +node_version=$(nodejs --version) +if [[ $node_version =~ ^v4.*$ ]]; then + pushd /opt + curl -sL https://deb.nodesource.com/setup_6.x | sudo bash - + sudo apt-get -y install nodejs +fi -# Modify Nginx configuration file and copy it to Nginx conf directory -sudo sed -i "s@__PATH__@$app@g" ../conf/nginx.conf* -sudo sed -i "s@__FINALPATH__@$final_path@g" ../conf/nginx.conf* -sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/$app.conf +# add additional package for upgrade +ynh_package_install pkg-config libprotobuf-dev protobuf-compiler libicu-dev libidn11-dev postgresql-server-dev-all + +#================================================= +# STANDARD UPGRADE STEPS +#================================================= # Stop Mastodon Services -sudo systemctl stop mastodon-*.service +# Restart Mastodon +yunohost service stop "$app-web" +yunohost service stop "$app-sidekiq" +yunohost service stop "$app-streaming" # Change owner of live folder -sudo chown -R $app: $final_path/live +chown -R $app: $final_path/live # Download Mastodon -sudo su - $app <<PULLCOMMANDS -pushd ~/live -git fetch -t -git reset --hard origin/master -git pull https://github.com/tootsuite/mastodon.git master -PULLCOMMANDS +ynh_setup_source "$final_path/live" "app-mastodon" -# Switch branch to tagged release -cd $final_path/live -version=$(curl -s https://api.github.com/repos/tootsuite/mastodon/releases/latest | grep tag_name | cut -d\" -f4) -sudo su - $app <<SWITCHCOMMANDS -pushd ~/live -git checkout $version -SWITCHCOMMANDS +#================================================= +# NGINX CONFIGURATION +#================================================= -# upgrade Node.js v4 to v6 -node_version=$(nodejs --version) -if [[ $node_version =~ ^v4.*$ ]]; then - pushd /opt - curl -sL https://deb.nodesource.com/setup_6.x | sudo bash - - sudo apt-get -y install nodejs -fi +# TODO: use official helper ynh_add_nginx_config +# Modify Nginx configuration file and copy it to Nginx conf directory +sed -i "s@__PATH__@$app@g" ../conf/nginx.conf* +sed -i "s@__FINALPATH__@$final_path@g" ../conf/nginx.conf* +cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/$app.conf -# add additional package for upgrade -ynh_package_install pkg-config libprotobuf-dev protobuf-compiler libicu-dev libidn11-dev postgresql-server-dev-9.4 +# Upgrade rbenv and ruby plugins +ynh_setup_source "$final_path/.rbenv" "app-rbenv" +ynh_setup_source "$final_path/.rbenv/plugins/ruby-build" "app-ruby-build" -# Install ruby 2.5.0 for release 2.0 -sudo su - $app <<RCOMMANDS -cd $final_path/.rbenv && git pull && cd - -cd $final_path/.rbenv/plugins/ruby-build && git pull && cd - -$final_path/.rbenv/bin/rbenv install 2.5.0 || true -$final_path/.rbenv/versions/2.5.0/bin/ruby -v -RCOMMANDS +# Install ruby 2.5.0 +( + exec_as "$app" $final_path/.rbenv/bin/rbenv install 2.5.0 + exec_as "$app" $final_path/.rbenv/bin/rbenv global 2.5.0 + exec_as "$app" $final_path/.rbenv/versions/2.5.0/bin/ruby -v +) -# Create symlink for ruby 2.5.0 -sudo rm /usr/bin/ruby || true -sudo ln -s $final_path/.rbenv/versions/2.5.0/bin/ruby /usr/bin/ruby || true +# Create symlink for ruby +rm /usr/bin/ruby || true +ln -s $final_path/.rbenv/versions/2.5.0/bin/ruby /usr/bin/ruby || true +# Preconfig CSS & JS # Install Mastodon +( sudo su - $app <<MCOMMANDS pushd ~/live $final_path/.rbenv/versions/2.5.0/bin/gem install bundler bin/bundle install --deployment --without development test yarn install --pure-lockfile MCOMMANDS +) # Apply Mastodon upgrade +( sudo su - $app <<COMMANDS pushd ~/live RAILS_ENV=production bundle exec rails assets:clean @@ -140,18 +144,32 @@ RAILS_ENV=production bundle exec rails db:migrate # Upgrade to 2.2.0 RAILS_ENV=production bundle exec rails mastodon:maintenance:remove_regeneration_markers COMMANDS +) +#================================================= +# RESTART MASTODON +#================================================= -# Restart Mastodon -sudo systemctl start mastodon-*.service +yunohost service start "$app-web" +yunohost service start "$app-sidekiq" +yunohost service start "$app-streaming" # Waiting start all services sleep 30 -# Reload Nginx -sudo systemctl reload nginx +#================================================= +# RELOAD NGINX +#================================================= + +systemctl reload nginx + +#================================================= +# SETUP SSOWAT +#================================================= -# Set app public ynh_app_setting_set "$app" unprotected_uris "/" -# Reload SSOwat configuration +#================================================= +# RELOAD ssowatconf +#================================================= + sudo yunohost app ssowatconf |
