1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/gitlab_ynh.git synced 2024-09-03 18:36:35 +02:00

[autopatch] Automatic patch attempt for helpers 2.1

This commit is contained in:
Yunohost-Bot 2024-08-30 22:57:36 +02:00 committed by Alexandre Aubin
parent b63972a816
commit 337e75a9d1
9 changed files with 123 additions and 191 deletions

View file

@ -18,7 +18,8 @@ code = "https://gitlab.com/gitlab-org/omnibus-gitlab - https://gitlab.com/gitlab
cpe = "cpe:2.3:a:gitlab:gitlab"
[integration]
yunohost = ">= 11.2.3"
yunohost = ">= 11.2.18"
helpers_version = "2.1"
architectures = ["amd64", "armhf", "arm64"]
multi_instance = false
ldap = true

View file

@ -1,9 +1,5 @@
#!/bin/bash
#=================================================
# EXPERIMENTAL HELPERS
#=================================================
# Add swap
#
# usage: ynh_add_swap --size=SWAP in Mb
@ -26,7 +22,7 @@ ynh_add_swap () {
# Swap on SD card only if it's is specified
if ynh_is_main_device_a_sd_card && [ "$SD_CARD_CAN_SWAP" == "0" ]
then
ynh_print_warn --message="The main mountpoint of your system '/' is on an SD card, swap will not be added to prevent some damage of this one, but that can cause troubles for the app $app. If you still want activate the swap, you can relaunch the command preceded by 'SD_CARD_CAN_SWAP=1'"
ynh_print_warn "The main mountpoint of your system '/' is on an SD card, swap will not be added to prevent some damage of this one, but that can cause troubles for the app $app. If you still want activate the swap, you can relaunch the command preceded by 'SD_CARD_CAN_SWAP=1'"
return
fi

View file

@ -1,25 +1,16 @@
#!/bin/bash
#=================================================
# GENERIC START
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
#Keep this path for calling _common.sh inside the execution's context of backup and restore scripts
source ../settings/scripts/_common.sh
source /usr/share/yunohost/helpers
#=================================================
# DECLARE DATA AND CONF FILES TO BACKUP
#=================================================
ynh_print_info --message="Declaring files to be backed up..."
ynh_print_info "Declaring files to be backed up..."
#=================================================
# BACKUP THE NGINX CONFIGURATION
#=================================================
ynh_backup --src_path="/etc/nginx/conf.d/$domain.d/$app.conf"
ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf"
#=================================================
# BACKUP GITLAB DATABASE
@ -30,19 +21,19 @@ ynh_backup --src_path="/etc/nginx/conf.d/$domain.d/$app.conf"
# For the filename: https://docs.gitlab.com/ce/raketasks/backup_restore.html#backup-filename
gitlab-backup create BACKUP=last
ynh_backup --src_path="/var/opt/$app/backups/last_gitlab_backup.tar"
ynh_backup "/var/opt/$app/backups/last_gitlab_backup.tar"
#=================================================
# BACKUP CONF FILES
#=================================================
config_path=/etc/$app
ynh_backup --src_path="$config_path/gitlab-secrets.json"
ynh_backup --src_path="$config_path/gitlab.rb"
ynh_backup --src_path="$config_path/gitlab-persistent.rb"
ynh_backup "$config_path/gitlab-secrets.json"
ynh_backup "$config_path/gitlab.rb"
ynh_backup "$config_path/gitlab-persistent.rb"
#=================================================
# END OF SCRIPT
#=================================================
ynh_print_info --message="Backup script completed for $app. (YunoHost will then actually copy those files to the archive)."
ynh_print_info "Backup script completed for $app. (YunoHost will then actually copy those files to the archive)."

View file

@ -1,24 +1,16 @@
#!/bin/bash
#=================================================
# GENERIC STARTING
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
source _common.sh
source /usr/share/yunohost/helpers
#=================================================
# STANDARD MODIFICATIONS
#=================================================
# MODIFY URL IN NGINX CONF
#=================================================
ynh_script_progression --message="Updating NGINX web server configuration..." --weight=1
ynh_script_progression "Updating NGINX web server configuration..."
#doc in: https://docs.gitlab.com/omnibus/settings/configuration.html#configure-the-external-url-for-gitlab
ynh_change_url_nginx_config
ynh_config_change_url_nginx
#=================================================
# SPECIFIC MODIFICATIONS
@ -30,7 +22,7 @@ modify_kernel_parameters="true"
for value_to_check in "kernel.shmall" "kernel.shmmax" "kernel.sem" "net.core.somaxconn"
do
if ! ynh_exec_fully_quiet sysctl --write $value_to_check="$(sysctl --value $value_to_check)"; then
if ! sysctl --write $value_to_check="$(sysctl --value $value_to_check)"; then
modify_kernel_parameters="false"
break
fi
@ -39,7 +31,7 @@ done
#=================================================
# CONFIGURE GITLAB
#=================================================
ynh_script_progression --message="Configure GitLab..." --weight=28
ynh_script_progression "Configure GitLab..."
config_path=/etc/$app
mkdir -p $config_path
@ -49,23 +41,23 @@ path="$new_path"
generated_external_url="https://$domain${path%/}"
ynh_add_config --template="$YNH_APP_BASEDIR/conf/gitlab.rb" --destination="$config_path/gitlab.rb"
ynh_config_add --template="$YNH_APP_BASEDIR/conf/gitlab.rb" --destination="$config_path/gitlab.rb"
#=================================================
# RECONFIGURE GITLAB
#=================================================
ynh_exec_warn_less gitlab-ctl reconfigure
ynh_hide_warnings gitlab-ctl reconfigure
#=================================================
# WAITING GITLAB
#=================================================
ynh_script_progression --message="Waiting for GitLab..." --weight=15
ynh_script_progression "Waiting for GitLab..."
ynh_systemd_action --action=restart --service_name="gitlab-runsvdir" --log_path="/var/log/$app/puma/current" --line_match="Listening on http://127.0.0.1:$port_puma" --timeout=300
ynh_systemctl --action=restart --service="gitlab-runsvdir" --log_path="/var/log/$app/puma/current" --wait_until="Listening on http://127.0.0.1:$port_puma" --timeout=300
#=================================================
# END OF SCRIPT
#=================================================
ynh_script_progression --message="Change of URL completed for GitLab" --last
ynh_script_progression "Change of URL completed for GitLab"

View file

@ -1,14 +1,8 @@
#!/bin/bash
#=================================================
# GENERIC STARTING
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
source /usr/share/yunohost/helpers
ynh_abort_if_errors
#REMOVEME? ynh_abort_if_errors
#=================================================
# RETRIEVE ARGUMENTS
@ -28,11 +22,9 @@ set__use_web_account() {
echo "ApplicationSetting.last.update(password_authentication_enabled_for_web: $use_web_account, signup_enabled: $use_web_account)" | gitlab-rails console
# Update the config of the app
ynh_app_setting_set --app=$app --key=use_web_account --value=$use_web_account
ynh_app_setting_set --key=use_web_account --value=$use_web_account
fi
}
#=================================================
# GENERIC FINALIZATION
#=================================================
ynh_app_config_run $1

View file

@ -1,18 +1,12 @@
#!/bin/bash
#=================================================
# GENERIC START
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
source _common.sh
source /usr/share/yunohost/helpers
#=================================================
# CHECK IF THE APP CAN BE INSTALLED WITH THESE ARGS
#=================================================
ynh_script_progression --message="Validating installation parameters..." --weight=1
ynh_script_progression "Validating installation parameters..."
config_path=/etc/$app
@ -26,7 +20,7 @@ elif [ -n "$(uname -m | grep 86)" ]; then
elif [ -n "$(uname -m | grep arm)" ]; then
architecture="arm"
else
ynh_die --message="Unable to detect your achitecture, please open a bug describing \
ynh_die "Unable to detect your achitecture, please open a bug describing \
your hardware and the result of the command \"uname -m\"." 1
fi
@ -36,14 +30,12 @@ client_max_body_size="250m"
#=================================================
# STORE SETTINGS FROM MANIFEST
#=================================================
ynh_script_progression --message="Storing installation settings..." --weight=2
ynh_script_progression "Storing installation settings..."
ynh_app_setting_set --app=$app --key=architecture --value=$architecture
ynh_app_setting_set --app=$app --key=client_max_body_size --value=$client_max_body_size
ynh_app_setting_set --app=$app --key=overwrite_nginx --value="1"
ynh_app_setting_set --key=architecture --value=$architecture
ynh_app_setting_set --key=client_max_body_size --value=$client_max_body_size
ynh_app_setting_set --key=overwrite_nginx --value="1"
#=================================================
# STANDARD MODIFICATIONS
#=================================================
# ADD SWAP IF NEEDED
#=================================================
@ -58,9 +50,9 @@ if [ $total_ram -lt 4096 ]; then
fi
if [ $swap_needed -gt 0 ]; then
ynh_script_progression --message="Adding $swap_needed Mo to swap..."
ynh_script_progression "Adding $swap_needed Mo to swap..."
if ! ynh_add_swap --size=$swap_needed; then
ynh_print_warn --message="Please add $swap_needed Mo to swap to make GitLab work properly"
ynh_print_warn "Please add $swap_needed Mo to swap to make GitLab work properly"
fi
fi
@ -72,7 +64,7 @@ modify_kernel_parameters="true"
for value_to_check in "kernel.shmall" "kernel.shmmax" "kernel.sem" "net.core.somaxconn"
do
if ! ynh_exec_fully_quiet sysctl --write $value_to_check="$(sysctl --value $value_to_check)"; then
if ! sysctl --write $value_to_check="$(sysctl --value $value_to_check)"; then
modify_kernel_parameters="false"
break
fi
@ -81,53 +73,52 @@ done
#=================================================
# PRECONFIGURE GITLAB
#=================================================
ynh_script_progression --message="Preconfigure GitLab..." --weight=1
ynh_script_progression "Preconfigure GitLab..."
mkdir -p $config_path
touch "$config_path/gitlab-persistent.rb"
chown root:root "$config_path/gitlab-persistent.rb"
chmod 640 "$config_path/gitlab-persistent.rb"
#REMOVEME? Assuming the file is setup using ynh_config_add, the proper chmod/chowns are now already applied and it shouldn't be necessary to tweak perms | chown root:root "$config_path/gitlab-persistent.rb"
#REMOVEME? Assuming the file is setup using ynh_config_add, the proper chmod/chowns are now already applied and it shouldn't be necessary to tweak perms | chmod 640 "$config_path/gitlab-persistent.rb"
ssh_port=$(grep -P "Port\s+\d+" /etc/ssh/sshd_config | grep -P -o "\d+")
generated_external_url="https://$domain${path%/}"
ynh_add_config --template="$YNH_APP_BASEDIR/conf/gitlab.rb" --destination="$config_path/gitlab.rb"
ynh_config_add --template="$YNH_APP_BASEDIR/conf/gitlab.rb" --destination="$config_path/gitlab.rb"
#=================================================
# DOWNLOAD, CHECK AND UNPACK SOURCE
#=================================================
ynh_script_progression --message="Setting up source files..." --weight=50
ynh_script_progression "Setting up source files..."
source $YNH_APP_BASEDIR/scripts/upgrade.d/upgrade.last.sh
ynh_add_config --template="$YNH_APP_BASEDIR/conf/$architecture.src.default" --destination="$YNH_APP_BASEDIR/conf/$architecture.src"
ynh_config_add --template="$YNH_APP_BASEDIR/conf/$architecture.src.default" --destination="$YNH_APP_BASEDIR/conf/$architecture.src"
tempdir="$(mktemp -d)"
ynh_setup_source --dest_dir=$tempdir --source_id=$architecture
chmod 755 $install_dir
#REMOVEME? Assuming the install dir is setup using ynh_setup_source, the proper chmod/chowns are now already applied and it shouldn't be necessary to tweak perms | chmod 755 $install_dir
# https://docs.gitlab.com/omnibus/settings/configuration.html#specify-the-external-url-at-the-time-of-installation
EXTERNAL_URL="$generated_external_url" ynh_exec_warn_less dpkg -i $tempdir/$gitlab_filename
EXTERNAL_URL="$generated_external_url" ynh_hide_warnings dpkg -i $tempdir/$gitlab_filename
ynh_secure_remove --file="$tempdir"
ynh_safe_rm "$tempdir"
#=================================================
# NGINX CONFIGURATION
#=================================================
ynh_script_progression --message="Configuring NGINX web server..." --weight=2
ynh_script_progression "Configuring NGINX web server..."
# Create a dedicated NGINX config
ynh_add_nginx_config client_max_body_size
ynh_config_add_nginx client_max_body_size
#=================================================
# SPECIFIC SETUP
#=================================================
# ADD USER AND CONFIGURE SIGN IN SYSTEM
#=================================================
ynh_script_progression --message="Creating an administrator user..." --weight=13
ynh_script_progression "Creating an administrator user..."
mailAdmin=$(ynh_user_get_info --username=$admin --key=mail)
fullnameAdmin=$(ynh_user_get_info --username=$admin --key=fullname)
@ -141,15 +132,13 @@ gitlab-rails runner "newuser = User.new(username: \"$admin\", email: \"$mailAdmi
#=================================================
# RECONFIGURE TO TAKE INTO ACCOUNT CHANGES
#=================================================
ynh_script_progression --message="Reconfigure GitLab..." --weight=13
ynh_script_progression "Reconfigure GitLab..."
ynh_exec_warn_less gitlab-ctl reconfigure
ynh_hide_warnings gitlab-ctl reconfigure
# Allow ssh for git
usermod -a -G "ssh.app" "git"
#=================================================
# GENERIC FINALIZATION
#=================================================
# ADVERTISE SERVICE IN ADMIN PANEL
#=================================================
@ -160,17 +149,17 @@ yunohost service add "gitlab-runsvdir" --log "/var/log/$app/gitlab-rails/applica
# RELOAD NGINX
#=================================================
ynh_systemd_action --action=reload --service_name=nginx
ynh_systemctl --action=reload --service=nginx
#=================================================
# RESTART GITLAB
#=================================================
ynh_script_progression --message="Restarting GitLab..." --weight=15
ynh_script_progression "Restarting GitLab..."
ynh_systemd_action --action=restart --service_name="gitlab-runsvdir" --log_path="/var/log/$app/puma/current" --line_match="Listening on http://127.0.0.1:$port_puma" --timeout=300
ynh_systemctl --action=restart --service="gitlab-runsvdir" --log_path="/var/log/$app/puma/current" --wait_until="Listening on http://127.0.0.1:$port_puma" --timeout=300
#=================================================
# END OF SCRIPT
#=================================================
ynh_script_progression --message="Installation of GitLab completed" --last
ynh_script_progression "Installation of GitLab completed"

View file

@ -1,11 +1,5 @@
#!/bin/bash
#=================================================
# GENERIC START
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
source _common.sh
source /usr/share/yunohost/helpers
@ -16,22 +10,22 @@ source /usr/share/yunohost/helpers
if yunohost service status "gitlab-runsvdir" >/dev/null 2>&1
then
ynh_script_progression --message="Removing $app service" --weight=1
ynh_script_progression "Removing $app service"
yunohost service remove "gitlab-runsvdir"
fi
#=================================================
# STOP GITLAB
#=================================================
ynh_script_progression --message="Stopping GitLab" --weight=8
ynh_script_progression "Stopping GitLab"
# I use gitlab-ctl and not ynh_systemd_action or systemctl to stop the service to avoid this error: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/common_installation_problems/README.md#reconfigure-freezes-at-ruby_blocksupervise_redis_sleep-action-run during the reinstall of the app
# I use gitlab-ctl and not ynh_systemctl or systemctl to stop the service to avoid this error: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/common_installation_problems/README.md#reconfigure-freezes-at-ruby_blocksupervise_redis_sleep-action-run during the reinstall of the app
gitlab-ctl stop
#=================================================
# REMOVE GITLAB
#=================================================
ynh_script_progression --message="Removing GitLab" --weight=4
ynh_script_progression "Removing GitLab"
dpkg --remove gitlab-ce
@ -41,15 +35,15 @@ dpkg --remove gitlab-ce
# Remove the app directory securely
config_path=/etc/$app
ynh_secure_remove --file="$config_path"
ynh_safe_rm "$config_path"
#=================================================
# REMOVE NGINX CONFIGURATION
#=================================================
ynh_script_progression --message="Removing NGINX web server configuration" --weight=1
ynh_script_progression "Removing NGINX web server configuration"
# Remove the dedicated NGINX config
ynh_remove_nginx_config
ynh_config_remove_nginx
#=================================================
# SPECIFIC REMOVE
@ -57,7 +51,7 @@ ynh_remove_nginx_config
# REMOVE GITLAB FILES
#=================================================
ynh_secure_remove --file="/var/opt/$app"
ynh_safe_rm "/var/opt/$app"
# Remove swap
ynh_del_swap
@ -66,4 +60,4 @@ ynh_del_swap
# END OF SCRIPT
#=================================================
ynh_script_progression --message="Removal of GitLab completed" --last
ynh_script_progression "Removal of GitLab completed"

View file

@ -1,11 +1,5 @@
#!/bin/bash
#=================================================
# GENERIC START
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
#Keep this path for calling _common.sh inside the execution's context of backup and restore scripts
source ../settings/scripts/_common.sh
source /usr/share/yunohost/helpers
@ -16,7 +10,7 @@ source /usr/share/yunohost/helpers
# RESTORE THE NGINX CONFIGURATION
#=================================================
ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf"
ynh_restore "/etc/nginx/conf.d/$domain.d/$app.conf"
#=================================================
# ADD SWAP IF NEEDED
@ -32,40 +26,39 @@ if [ $total_ram -lt 4096 ]; then
fi
if [ $swap_needed -gt 0 ]; then
ynh_script_progression --message="Adding $swap_needed Mo to swap..."
ynh_script_progression "Adding $swap_needed Mo to swap..."
if ! ynh_add_swap --size=$swap_needed; then
ynh_print_warn --message="Please add $swap_needed Mo to swap to make GitLab work properly"
ynh_print_warn "Please add $swap_needed Mo to swap to make GitLab work properly"
fi
fi
#=================================================
# RESTORE CONF FILES
#=================================================
ynh_script_progression --message="Restoring configuration files of GitLab..." --weight=1
ynh_script_progression "Restoring configuration files of GitLab..."
config_path=/etc/$app
chmod 755 $install_dir
ynh_restore_file --origin_path="$config_path/gitlab-secrets.json"
ynh_restore_file --origin_path="$config_path/gitlab.rb"
ynh_restore_file --origin_path="$config_path/gitlab-persistent.rb"
#REMOVEME? Assuming the install dir is setup using ynh_setup_source, the proper chmod/chowns are now already applied and it shouldn't be necessary to tweak perms | chmod 755 $install_dir
ynh_restore "$config_path/gitlab-secrets.json"
ynh_restore "$config_path/gitlab.rb"
ynh_restore "$config_path/gitlab-persistent.rb"
#=================================================
# RESTORE THE APP MAIN DIR
#=================================================
ynh_script_progression --message="Reinstalling GitLab..." --weight=50
ynh_script_progression "Reinstalling GitLab..."
source $YNH_APP_BASEDIR/scripts/upgrade.d/upgrade.last.sh
ynh_add_config --template="$YNH_APP_BASEDIR/conf/$architecture.src.default" --destination="$YNH_APP_BASEDIR/conf/$architecture.src"
ynh_config_add --template="$YNH_APP_BASEDIR/conf/$architecture.src.default" --destination="$YNH_APP_BASEDIR/conf/$architecture.src"
tempdir="$(mktemp -d)"
ynh_setup_source --dest_dir=$tempdir --source_id=$architecture
if ! ynh_exec_warn_less dpkg -i $tempdir/$gitlab_filename ;
if ! ynh_hide_warnings dpkg -i $tempdir/$gitlab_filename ;
then # This command will fail in lxc env
package_check_action # defined in upgrade.d/upgrade.last.sh
ynh_exec_warn_less dpkg --configure gitlab-ce
ynh_hide_warnings dpkg --configure gitlab-ce
fi
#=================================================
@ -73,9 +66,9 @@ fi
#=================================================
# RESTORE GITLAB DATABASE
#=================================================
ynh_script_progression --message="Restoring GitLab..." --weight=35
ynh_script_progression "Restoring GitLab..."
ynh_restore_file --origin_path="/var/opt/$app/backups/last_gitlab_backup.tar"
ynh_restore "/var/opt/$app/backups/last_gitlab_backup.tar"
last_backup="last"
@ -84,15 +77,13 @@ gitlab-ctl stop sidekiq
# Use gitlab-rake to backup
# Doc: https://docs.gitlab.com/ce/raketasks/backup_restore.html#restore-for-omnibus-gitlab-installations
ynh_exec_warn_less gitlab-backup restore force=yes BACKUP=$last_backup
ynh_hide_warnings gitlab-backup restore force=yes BACKUP=$last_backup
# https://docs.gitlab.com/ce/raketasks/backup_restore.html#container-registry-push-failures-after-restoring-from-a-backup
if ynh_system_user_exists --username="registry" && [ -d "/var/opt/gitlab/gitlab-rails/shared/registry/docker" ]; then
chown -R registry:registry /var/opt/gitlab/gitlab-rails/shared/registry/docker
fi
#=================================================
# GENERIC FINALIZATION
#=================================================
# ADVERTISE SERVICE IN ADMIN PANEL
#=================================================
@ -102,9 +93,9 @@ yunohost service add "gitlab-runsvdir" --log "/var/log/$app/gitlab-rails/applica
#=================================================
# WAITING GITLAB
#=================================================
ynh_script_progression --message="Waiting for GitLab..." --weight=14
ynh_script_progression "Waiting for GitLab..."
ynh_systemd_action --action=restart --service_name="gitlab-runsvdir" --log_path="/var/log/$app/puma/current" --line_match="Listening on http://127.0.0.1:$port_puma" --timeout=300
ynh_systemctl --action=restart --service="gitlab-runsvdir" --log_path="/var/log/$app/puma/current" --wait_until="Listening on http://127.0.0.1:$port_puma" --timeout=300
#=================================================
# CHECK THE RESTORED DATA
@ -118,12 +109,12 @@ usermod -a -G "ssh.app" "git"
#=================================================
# RELOAD NGINX
#=================================================
ynh_script_progression --message="Reloading NGINX web server..." --weight=1
ynh_script_progression "Reloading NGINX web server..."
ynh_systemd_action --action=reload --service_name=nginx
ynh_systemctl --action=reload --service=nginx
#=================================================
# END OF SCRIPT
#=================================================
ynh_script_progression --message="Restoration completed for GitLab" --last
ynh_script_progression "Restoration completed for GitLab"

View file

@ -1,46 +1,33 @@
#!/bin/bash
#=================================================
# GENERIC START
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
source _common.sh
source /usr/share/yunohost/helpers
#=================================================
# CHECK VERSION
#=================================================
upgrade_type=$(ynh_check_app_version_changed)
#=================================================
# ENSURE DOWNWARD COMPATIBILITY
#=================================================
if [ -n $(ynh_app_setting_get --app=$app --key=web_port) ]
if [ -n $(ynh_app_setting_get --key=web_port) ]
then
ynh_app_setting_set --app=$app --key=port --value=$(ynh_app_setting_get --app=$app --key=web_port)
ynh_app_setting_delete --app=$app --key=web_port
ynh_app_setting_set --key=port --value=$(ynh_app_setting_get --key=web_port)
ynh_app_setting_delete --key=web_port
fi
config_path=/etc/$app
chmod 755 $install_dir
if [ -n $(ynh_app_setting_get --app=$app --key=puma_worker_processes) ]
#REMOVEME? Assuming the install dir is setup using ynh_setup_source, the proper chmod/chowns are now already applied and it shouldn't be necessary to tweak perms | chmod 755 $install_dir
if [ -n $(ynh_app_setting_get --key=puma_worker_processes) ]
then
ynh_app_setting_delete --app=$app --key=puma_worker_processes
ynh_app_setting_delete --key=puma_worker_processes
fi
if [ -n $(ynh_app_setting_get --app=$app --key=puma_max_threads) ]
if [ -n $(ynh_app_setting_get --key=puma_max_threads) ]
then
ynh_app_setting_delete --app=$app --key=puma_max_threads
ynh_app_setting_delete --key=puma_max_threads
fi
if [ -n $(ynh_app_setting_get --app=$app --key=puma_min_threads) ]
if [ -n $(ynh_app_setting_get --key=puma_min_threads) ]
then
ynh_app_setting_delete --app=$app --key=puma_min_threads
ynh_app_setting_delete --key=puma_min_threads
fi
# If architecture doesn't exist, create it
@ -54,25 +41,23 @@ if [ -z "$architecture" ]; then
elif [ -n "$(uname -m | grep arm)" ]; then
architecture="arm"
else
ynh_die --message="Unable to detect your achitecture, please open a bug describing \
ynh_die "Unable to detect your achitecture, please open a bug describing \
your hardware and the result of the command \"uname -m\"." 1
fi
ynh_app_setting_set --app=$app --key=architecture --value=$architecture
ynh_app_setting_set --key=architecture --value=$architecture
fi
# If client_max_body_size doesn't exist, create it
if [ -z "$client_max_body_size" ]; then
client_max_body_size="250m"
ynh_app_setting_set --app=$app --key=client_max_body_size --value=$client_max_body_size
ynh_app_setting_set --key=client_max_body_size --value=$client_max_body_size
fi
# if this source file exist, remove it
if [ -e "/etc/apt/sources.list.d/gitlab-ce.list" ]; then
ynh_secure_remove --file="/etc/apt/sources.list.d/gitlab-ce.list"
ynh_safe_rm "/etc/apt/sources.list.d/gitlab-ce.list"
fi
#=================================================
# STANDARD UPGRADE STEPS
#=================================================
# ADD SWAP IF NEEDED
#=================================================
@ -87,9 +72,9 @@ if [ $total_ram -lt 4096 ]; then
fi
if [ $swap_needed -gt 0 ]; then
ynh_script_progression --message="Adding $swap_needed Mo to swap..."
ynh_script_progression "Adding $swap_needed Mo to swap..."
if ! ynh_add_swap --size=$swap_needed; then
ynh_print_warn --message="Please add $swap_needed Mo to swap to make GitLab work properly"
ynh_print_warn "Please add $swap_needed Mo to swap to make GitLab work properly"
fi
fi
@ -101,7 +86,7 @@ modify_kernel_parameters="true"
for value_to_check in "kernel.shmall" "kernel.shmmax" "kernel.sem" "net.core.somaxconn"
do
if ! ynh_exec_fully_quiet sysctl --write $value_to_check="$(sysctl --value $value_to_check)"; then
if ! sysctl --write $value_to_check="$(sysctl --value $value_to_check)"; then
modify_kernel_parameters="false"
break
fi
@ -118,9 +103,10 @@ generated_external_url="https://$domain${path%/}"
# DOWNLOAD, CHECK AND UNPACK SOURCE
#=================================================
if [ "$upgrade_type" == "UPGRADE_APP" ]
# FIXME: this is still supported but the recommendation is now to *always* re-setup the app sources wether or not the upstream sources changed
if ynh_app_upstream_version_changed
then
ynh_script_progression --message="Setting up source files..." --weight=50
ynh_script_progression "Setting up source files..."
# To avoid the automatic backup, already performed by YunoHost: https://docs.gitlab.com/omnibus/update/#updating-methods
touch $config_path/skip-auto-backup
@ -171,7 +157,8 @@ then
fi
}
# To upgrade GitLab from a major version A to a major version B,
# To upgrade GitLab from a major version A to a major version B,
# we need to follow a specific path described here https://gitlab-com.gitlab.io/support/toolbox/upgrade-path/
# A.last -> B.first -> -> B.X -> B.Y -> B.last
@ -193,7 +180,7 @@ then
counter=$((counter + 1))
if [ $counter -gt 1200 ]
then
ynh_print_warn --message="Timeout: a background migration runs for at least 20min !"
ynh_print_warn "Timeout: a background migration runs for at least 20min !"
break
fi
@ -206,7 +193,7 @@ then
then
checkBatchedBackgroundMigration=0
fi
ynh_print_info --message="Wait for the migration in the background to finish"
ynh_print_info "Wait for the migration in the background to finish"
sleep 1
done
@ -214,20 +201,20 @@ then
source_next_version
ynh_print_info --message="Upgrade from ${current_version} to ${gitlab_version}"
ynh_print_info "Upgrade from ${current_version} to ${gitlab_version}"
ynh_add_config --template="$YNH_APP_BASEDIR/conf/$architecture.src.default" --destination="$YNH_APP_BASEDIR/conf/$architecture.src"
ynh_config_add --template="$YNH_APP_BASEDIR/conf/$architecture.src.default" --destination="$YNH_APP_BASEDIR/conf/$architecture.src"
tempdir="$(mktemp -d)"
ynh_setup_source --dest_dir=$tempdir --source_id=$architecture
if ! ynh_exec_warn_less dpkg -i $tempdir/$gitlab_filename; then # This command will fail in lxc env
if ! ynh_hide_warnings dpkg -i $tempdir/$gitlab_filename; then # This command will fail in lxc env
package_check_action # defined in upgrade.d/upgrade.X.sh
ynh_exec_warn_less dpkg --configure gitlab-ce
ynh_hide_warnings dpkg --configure gitlab-ce
fi
ynh_exec_warn_less ynh_secure_remove --file="$tempdir"
ynh_safe_rm "$tempdir"
current_version=$(grep gitlab-ce /opt/gitlab/version-manifest.txt | cut -d' ' -f2)
@ -237,16 +224,16 @@ then
source $YNH_APP_BASEDIR/scripts/upgrade.d/upgrade.$current_major_version.last.sh
fi
if dpkg --compare-versions "$gitlab_version" "ge" "$current_version"; then
ynh_add_config --template="$YNH_APP_BASEDIR/conf/gitlab.$current_major_version.rb" --destination="$config_path/gitlab.rb"
ynh_config_add --template="$YNH_APP_BASEDIR/conf/gitlab.$current_major_version.rb" --destination="$config_path/gitlab.rb"
touch "$config_path/gitlab-persistent.rb"
chown root:root "$config_path/gitlab-persistent.rb"
chmod 640 "$config_path/gitlab-persistent.rb"
#REMOVEME? Assuming the file is setup using ynh_config_add, the proper chmod/chowns are now already applied and it shouldn't be necessary to tweak perms | chown root:root "$config_path/gitlab-persistent.rb"
#REMOVEME? Assuming the file is setup using ynh_config_add, the proper chmod/chowns are now already applied and it shouldn't be necessary to tweak perms | chmod 640 "$config_path/gitlab-persistent.rb"
# During large migrations, the logs are too big to be sent to paste.yunohost.org
# Send the reconfigure logs in a file, and if the process succeeds, just delete it.
gitlab-ctl reconfigure > "/tmp/gitlab_upgrade_$current_version.log"
ynh_secure_remove --file="/tmp/gitlab_upgrade_$current_version.log"
ynh_safe_rm "/tmp/gitlab_upgrade_$current_version.log"
fi
fi
done
@ -255,15 +242,15 @@ fi
#=================================================
# RECONFIGURE GITLAB
#=================================================
ynh_script_progression --message="Reconfigure GitLab..." --weight=13
ynh_script_progression "Reconfigure GitLab..."
ynh_add_config --template="$YNH_APP_BASEDIR/conf/gitlab.rb" --destination="$config_path/gitlab.rb"
ynh_config_add --template="$YNH_APP_BASEDIR/conf/gitlab.rb" --destination="$config_path/gitlab.rb"
touch "$config_path/gitlab-persistent.rb"
chown root:root "$config_path/gitlab-persistent.rb"
chmod 640 "$config_path/gitlab-persistent.rb"
#REMOVEME? Assuming the file is setup using ynh_config_add, the proper chmod/chowns are now already applied and it shouldn't be necessary to tweak perms | chown root:root "$config_path/gitlab-persistent.rb"
#REMOVEME? Assuming the file is setup using ynh_config_add, the proper chmod/chowns are now already applied and it shouldn't be necessary to tweak perms | chmod 640 "$config_path/gitlab-persistent.rb"
ynh_exec_warn_less gitlab-ctl reconfigure
ynh_hide_warnings gitlab-ctl reconfigure
# Allow ssh for git
usermod -a -G "ssh.app" "git"
@ -275,13 +262,11 @@ usermod -a -G "ssh.app" "git"
# Overwrite the nginx configuration only if it's allowed
if [ $overwrite_nginx -eq 1 ]
then
ynh_script_progression --message="Configuring NGINX web server..." --weight=2
ynh_script_progression "Configuring NGINX web server..."
# Create a dedicated nginx config
ynh_add_nginx_config client_max_body_size
ynh_config_add_nginx client_max_body_size
fi
#=================================================
# GENERIC FINALIZATION
#=================================================
# ADVERTISE SERVICE IN ADMIN PANEL
#=================================================
@ -292,21 +277,22 @@ yunohost service add "gitlab-runsvdir" --log "/var/log/$app/gitlab-rails/applica
# WAITING GITLAB
#=================================================
if [ "$upgrade_type" == "UPGRADE_APP" ]
# FIXME: this is still supported but the recommendation is now to *always* re-setup the app sources wether or not the upstream sources changed
if ynh_app_upstream_version_changed
then
ynh_script_progression --message="Restarting GitLab..." --weight=15
ynh_script_progression "Restarting GitLab..."
ynh_systemd_action --action=restart --service_name="gitlab-runsvdir" --log_path="/var/log/$app/puma/current" --line_match="Listening on http://127.0.0.1:$port_puma" --timeout=300
ynh_systemctl --action=restart --service="gitlab-runsvdir" --log_path="/var/log/$app/puma/current" --wait_until="Listening on http://127.0.0.1:$port_puma" --timeout=300
fi
#=================================================
# RELOAD NGINX
#=================================================
ynh_systemd_action --action=reload --service_name=nginx
ynh_systemctl --action=reload --service=nginx
#=================================================
# END OF SCRIPT
#=================================================
ynh_script_progression --message="Upgrade of GitLab completed" --last
ynh_script_progression "Upgrade of GitLab completed"