mirror of
https://github.com/YunoHost-Apps/gitlab_ynh.git
synced 2024-09-03 18:36:35 +02:00
Merge pull request #18 from YunoHost-Apps/testing
Fix web account and add function to wait gitlab service
This commit is contained in:
commit
f39f81ce30
6 changed files with 73 additions and 46 deletions
|
@ -3,7 +3,7 @@
|
||||||
;; Test complet
|
;; Test complet
|
||||||
; Manifest
|
; Manifest
|
||||||
domain="domain.tld" (DOMAIN)
|
domain="domain.tld" (DOMAIN)
|
||||||
path="/" (PATH)
|
path="/gitlab" (PATH)
|
||||||
admin="john" (USER)
|
admin="john" (USER)
|
||||||
is_public=1 (PUBLIC|public=1|private=0)
|
is_public=1 (PUBLIC|public=1|private=0)
|
||||||
password="pass"
|
password="pass"
|
||||||
|
|
|
@ -61,13 +61,13 @@
|
||||||
"default": true
|
"default": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "only_use_ldap",
|
"name": "use_web_account",
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"ask": {
|
"ask": {
|
||||||
"en": "Use only Yunohost account to sign in?",
|
"en": "Allow account creation via the gitlab web interface?",
|
||||||
"fr": "Utiliser seulement les comptes Yunohost pour se connecter ?"
|
"fr": "Autoriser la création de compte via l'interface web de gitlab ?"
|
||||||
},
|
},
|
||||||
"default": true
|
"default": false
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -117,8 +117,54 @@ setup_source() {
|
||||||
then
|
then
|
||||||
dpkg -i $src_filename || true # This command will fail in lxc env
|
dpkg -i $src_filename || true # This command will fail in lxc env
|
||||||
sed -i 's/command \"cat \/etc\/sysctl.conf \/etc\/sysctl.d\/\*.conf | sysctl -e -p -\"/command \"cat \/etc\/sysctl.conf\"/g' $final_path/embedded/cookbooks/package/resources/sysctl.rb
|
sed -i 's/command \"cat \/etc\/sysctl.conf \/etc\/sysctl.d\/\*.conf | sysctl -e -p -\"/command \"cat \/etc\/sysctl.conf\"/g' $final_path/embedded/cookbooks/package/resources/sysctl.rb
|
||||||
sudo gitlab-ctl reconfigure
|
dpkg --configure gitlab-ce || true
|
||||||
else
|
else
|
||||||
dpkg -i $src_filename
|
dpkg -i $src_filename || true
|
||||||
fi;
|
fi;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# WAIT
|
||||||
|
#=================================================
|
||||||
|
# This function is inspired by the ynh_systemd_action function
|
||||||
|
waiting_to_start() {
|
||||||
|
|
||||||
|
echo "Start Waiting"
|
||||||
|
|
||||||
|
log_path="/var/log/gitlab/unicorn/current"
|
||||||
|
|
||||||
|
if [ ! -f "$log_path" ]
|
||||||
|
then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
line_match_new="adopted new unicorn master"
|
||||||
|
line_match_existing="adopted existing unicorn master"
|
||||||
|
|
||||||
|
clean_check_starting() {
|
||||||
|
# Stop the execution of tail
|
||||||
|
kill -s 15 $pid_tail 2>&1
|
||||||
|
ynh_secure_remove "$templog" 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Following the starting of the app in its log
|
||||||
|
local templog="$(mktemp)"
|
||||||
|
tail -F -n1 "$log_path" > "$templog" &
|
||||||
|
# get the PID of the tail command
|
||||||
|
local pid_tail=$!
|
||||||
|
|
||||||
|
for i in $(seq 1 100)
|
||||||
|
do
|
||||||
|
if grep --quiet "${line_match_new}" $templog || grep --quiet "${line_match_existing}" $templog
|
||||||
|
then
|
||||||
|
echo "Gitlab has correctly started." >&2
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
sleep 1
|
||||||
|
echo -n "." >&2
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Stop Waiting"
|
||||||
|
|
||||||
|
clean_check_starting
|
||||||
|
}
|
|
@ -108,6 +108,7 @@ sudo gitlab-ctl reconfigure
|
||||||
if [ $change_path -eq 1 ]
|
if [ $change_path -eq 1 ]
|
||||||
then
|
then
|
||||||
sudo gitlab-ctl restart
|
sudo gitlab-ctl restart
|
||||||
|
sudo gitlab-ctl restart unicorn
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -118,17 +119,8 @@ fi
|
||||||
|
|
||||||
systemctl reload nginx
|
systemctl reload nginx
|
||||||
|
|
||||||
#Fix for the CI
|
#=================================================
|
||||||
if sudo grep -qa container=lxc /proc/1/environ;
|
# WAIT
|
||||||
then
|
#=================================================
|
||||||
status_code=$(curl -s -o /dev/null -w '%{http_code}' "$domain${path_url%/}")
|
|
||||||
inc=0
|
|
||||||
|
|
||||||
# Have to wait the time that gitlab reload
|
waiting_to_start
|
||||||
while [ $status_code == "502" ] && [ $inc -lt 10 ]
|
|
||||||
do
|
|
||||||
sleep 10;
|
|
||||||
status_code=$(curl -s -o /dev/null -w '%{http_code}' "$domain${path_url%/}")
|
|
||||||
((inc++))
|
|
||||||
done;
|
|
||||||
fi;
|
|
|
@ -22,7 +22,7 @@ source ./_common.sh
|
||||||
domain=$YNH_APP_ARG_DOMAIN
|
domain=$YNH_APP_ARG_DOMAIN
|
||||||
path_url=$YNH_APP_ARG_PATH
|
path_url=$YNH_APP_ARG_PATH
|
||||||
is_public=$YNH_APP_ARG_IS_PUBLIC
|
is_public=$YNH_APP_ARG_IS_PUBLIC
|
||||||
only_use_ldap=$YNH_APP_ARG_IS_PUBLIC
|
use_web_account=$YNH_APP_ARG_USE_WEB_ACCOUNT
|
||||||
admin=$YNH_APP_ARG_ADMIN
|
admin=$YNH_APP_ARG_ADMIN
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
|
@ -50,7 +50,7 @@ ynh_user_exists "$admin" \
|
||||||
ynh_app_setting_set $app admin $admin
|
ynh_app_setting_set $app admin $admin
|
||||||
ynh_app_setting_set $app path_url $path_url
|
ynh_app_setting_set $app path_url $path_url
|
||||||
ynh_app_setting_set $app is_public $is_public
|
ynh_app_setting_set $app is_public $is_public
|
||||||
ynh_app_setting_set $app only_use_ldap $only_use_ldap
|
ynh_app_setting_set $app use_web_account $use_web_account
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# STANDARD MODIFICATIONS
|
# STANDARD MODIFICATIONS
|
||||||
|
@ -107,7 +107,7 @@ newuser.admin = true
|
||||||
newuser.confirmed_at = Time.now
|
newuser.confirmed_at = Time.now
|
||||||
newuser.confirmation_token = nil
|
newuser.confirmation_token = nil
|
||||||
newuser.save
|
newuser.save
|
||||||
ApplicationSetting.last.update_attributes(password_authentication_enabled_for_web: $only_use_ldap, signup_enabled: $only_use_ldap)" | sudo gitlab-rails console
|
ApplicationSetting.last.update_attributes(password_authentication_enabled_for_web: $use_web_account, signup_enabled: $use_web_account)" | sudo gitlab-rails console
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# RESTART TO TAKE INTO ACCOUNT CHANGES
|
# RESTART TO TAKE INTO ACCOUNT CHANGES
|
||||||
|
@ -134,8 +134,7 @@ fi
|
||||||
systemctl reload nginx
|
systemctl reload nginx
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# SETUP LOGROTATE
|
# WAIT
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
# Configure logrotate
|
waiting_to_start
|
||||||
#ynh_use_logrotate "/var/log/$app"
|
|
|
@ -30,13 +30,12 @@ portUnicorn=$(ynh_app_setting_get "$app" unicorn_port)
|
||||||
# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP
|
# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
# TODO: Backup and Restore Scripts
|
# Backup the current version of the app
|
||||||
## Backup the current version of the app
|
ynh_backup_before_upgrade
|
||||||
#ynh_backup_before_upgrade
|
ynh_clean_setup () {
|
||||||
#ynh_clean_setup () {
|
# restore it if the upgrade fails
|
||||||
# # restore it if the upgrade fails
|
ynh_restore_upgradebackup
|
||||||
# ynh_restore_upgradebackup
|
}
|
||||||
#}
|
|
||||||
|
|
||||||
# Exit if an error occurs during the execution of the script
|
# Exit if an error occurs during the execution of the script
|
||||||
ynh_abort_if_errors
|
ynh_abort_if_errors
|
||||||
|
@ -96,17 +95,8 @@ fi
|
||||||
# Reload nginx service
|
# Reload nginx service
|
||||||
systemctl reload nginx
|
systemctl reload nginx
|
||||||
|
|
||||||
#Fix for the CI
|
#=================================================
|
||||||
if sudo grep -qa container=lxc /proc/1/environ;
|
# WAIT
|
||||||
then
|
#=================================================
|
||||||
status_code=$(curl -s -o /dev/null -w '%{http_code}' "$domain${path_url%/}")
|
|
||||||
inc=0
|
|
||||||
|
|
||||||
# Have to wait the time that gitlab reload
|
waiting_to_start
|
||||||
while [ $status_code == "502" ] && [ $inc -lt 10 ]
|
|
||||||
do
|
|
||||||
sleep 10;
|
|
||||||
status_code=$(curl -s -o /dev/null -w '%{http_code}' "$domain${path_url%/}")
|
|
||||||
((inc++))
|
|
||||||
done;
|
|
||||||
fi;
|
|
Loading…
Reference in a new issue