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

General Upgrade

This commit is contained in:
Kayou 2019-03-16 02:38:12 +01:00
parent 318bd2c508
commit f9089c0dac
No known key found for this signature in database
GPG key ID: 823A2CBE071D3126
13 changed files with 508 additions and 349 deletions

View file

@ -6,6 +6,7 @@
path="/gitlab" (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)
use_web_account=0
; Checks ; Checks
pkg_linter=1 pkg_linter=1
setup_sub_dir=1 setup_sub_dir=1
@ -17,20 +18,17 @@
upgrade=1 from_commit=2cc84310aeff7055342b445c1aee01d4183d5ae2 upgrade=1 from_commit=2cc84310aeff7055342b445c1aee01d4183d5ae2
backup_restore=1 backup_restore=1
multi_instance=0 multi_instance=0
incorrect_path=1
port_already_use=1 (8080) port_already_use=1 (8080)
change_url=1 change_url=1
;;; Levels ;;; Levels
Level 1=auto Level 1=auto
Level 2=auto Level 2=auto
Level 3=auto Level 3=auto
# Level 4: Level 4=auto
Level 4=1
# Level 5:
Level 5=auto Level 5=auto
Level 6=auto Level 6=auto
Level 7=auto Level 7=auto
Level 8=0 Level 8=auto
Level 9=0 Level 9=0
Level 10=0 Level 10=0
;;; Options ;;; Options

View file

@ -1,6 +1,6 @@
SOURCE_URL=https://packages.gitlab.com/gitlab/raspberry-pi2/packages/raspbian/stretch/gitlab-ce___VERSION__-ce.0_armhf.deb/download.deb SOURCE_URL=https://packages.gitlab.com/gitlab/raspberry-pi2/packages/raspbian/stretch/gitlab-ce___VERSION__-ce.0_armhf.deb/download.deb
SOURCE_SUM=__SHA256_SUM__ SOURCE_SUM=__SHA256_SUM__
SOURCE_SUM_PRG=sha256sum SOURCE_SUM_PRG=sha256sum
SOURCE_FILENAME=gitlab-ce___VERSION__-ce.0_armhf.deb SOURCE_FILENAME=__SOURCE_FILENAME__
SOURCE_EXTRACT=false SOURCE_EXTRACT=false
SOURCE_FORMAT=deb SOURCE_FORMAT=deb

View file

@ -1,6 +1,6 @@
SOURCE_URL=https://packages.gitlab.com/gitlab/gitlab-ce/packages/debian/stretch/gitlab-ce___VERSION__-ce.0_amd64.deb/download.deb SOURCE_URL=https://packages.gitlab.com/gitlab/gitlab-ce/packages/debian/stretch/gitlab-ce___VERSION__-ce.0_amd64.deb/download.deb
SOURCE_SUM=__SHA256_SUM__ SOURCE_SUM=__SHA256_SUM__
SOURCE_SUM_PRG=sha256sum SOURCE_SUM_PRG=sha256sum
SOURCE_FILENAME=gitlab-ce___VERSION__-ce.0_amd64.deb SOURCE_FILENAME=__SOURCE_FILENAME__
SOURCE_EXTRACT=false SOURCE_EXTRACT=false
SOURCE_FORMAT=deb SOURCE_FORMAT=deb

View file

@ -2,7 +2,7 @@
"name": "Gitlab", "name": "Gitlab",
"id": "gitlab", "id": "gitlab",
"packaging_format": 1, "packaging_format": 1,
"version": "11.8.2~ynh1", "version": "11.8.2~ynh2",
"description": { "description": {
"en": "GitLab is a Git-repository manager.", "en": "GitLab is a Git-repository manager.",
"fr": "GitLab est un gestionnaire de dépôts Git." "fr": "GitLab est un gestionnaire de dépôts Git."

23
pull_request_template.md Normal file
View file

@ -0,0 +1,23 @@
## Problem
- *Description of why you made this PR*
## Solution
- *And how do you fix that problem*
## PR Status
- [ ] Code finished.
- [ ] Tested with Package_check.
- [ ] Fix or enhancement tested.
- [ ] Upgrade from last version tested.
- [ ] Can be reviewed and tested.
## Validation
---
- [ ] **Code review**
- [ ] **Approval (LGTM)**
*Code review and approval have to be from a member of @YunoHost/apps group*
- **CI succeeded** :
[![Build Status](https://ci-apps-hq.yunohost.org/jenkins/job/gitlab_ynh%20-BRANCH-/badge/icon)](https://ci-apps-hq.yunohost.org/jenkins/job/gitlab_ynh%20-BRANCH-/)
*Please replace '-BRANCH-' in this link by the name of the branch used.*
*If the PR is from a forked repository. Please provide public results from package_check.*
When the PR is marked as ready to merge, you have to wait for 3 days before really merging it.

View file

@ -1,175 +1,111 @@
#!/bin/bash
#================================================= #=================================================
# SET ALL CONSTANTS # SET ALL CONSTANTS
#================================================= #=================================================
app=$YNH_APP_INSTANCE_NAME pkg_dependencies="openssh-server"
config_path="/etc/$app"
final_path="/opt/$app"
#================================================= #=================================================
# DETECT THE SYSTEM ARCHITECTURE # PACKAGE CHECK BYPASSING...
#================================================= #=================================================
# Detect the system architecture to download the right file
# NOTE: `uname -m` is more accurate and universal than `arch`
# See https://en.wikipedia.org/wiki/Uname
if [ -n "$(uname -m | grep 64)" ]; then
architecture="x86-64"
elif [ -n "$(uname -m | grep 86)" ]; then
ynh_die "Gitlab is not compatible with x86 architecture"
elif [ -n "$(uname -m | grep arm)" ]; then
architecture="arm"
else
ynh_die "Unable to detect your achitecture, please open a bug describing \
your hardware and the result of the command \"uname -m\"." 1
fi
#================================================= IS_PACKAGE_CHECK () {
# CREATE FOLDERS return $(env | grep -c container=lxc)
#=================================================
create_dir() {
mkdir -p "$config_path"
}
#=================================================
# CONFIGURATION FILE FOR GITLAB
#=================================================
config_gitlab() {
ynh_print_info "Configuring Gitlab..."
create_dir
gitlab_conf_path="$config_path/gitlab.rb"
ynh_backup_if_checksum_is_different $gitlab_conf_path
# Gitlab configuration
cp -f ../conf/gitlab.rb $gitlab_conf_path
ynh_replace_string "__GENERATED_EXTERNAL_URL__" "https://$domain${path_url%/}" $gitlab_conf_path
ynh_replace_string "__PORT__" "$port" $gitlab_conf_path
ynh_replace_string "__PORTUNICORN__" "$portUnicorn" $gitlab_conf_path
ynh_store_file_checksum $gitlab_conf_path
}
#=================================================
# REMOVE THE CONFIGURATION FILE FOR GITLAB
#=================================================
remove_config_gitlab() {
ynh_print_info "Removing the configuration file..."
ynh_secure_remove "$config_path/gitlab.rb"
}
#=================================================
# UPDATE SOURCES FILES
#=================================================
update_src_version() {
source ./upgrade.d/upgrade.last.sh
cp ../conf/arm.src.default ../conf/arm.src
ynh_replace_string "__VERSION__" "$gitlab_version" "../conf/arm.src"
ynh_replace_string "__SHA256_SUM__" "$gitlab_arm_source_sha256" "../conf/arm.src"
cp ../conf/x86-64.src.default ../conf/x86-64.src
ynh_replace_string "__VERSION__" "$gitlab_version" "../conf/x86-64.src"
ynh_replace_string "__SHA256_SUM__" "$gitlab_x86_64_source_sha256" "../conf/x86-64.src"
}
#=================================================
# INSTALL GITLAB
#=================================================
# This function is inspired by the ynh_setup_source function, adapted to deal with .deb files
setup_source() {
local src_id=${1:-app} # If the argument is not given, source_id equals "app"
update_src_version # Update source file
# Load value from configuration file (see above for a small doc about this file
# format)
local src_url=$(grep 'SOURCE_URL=' "$YNH_CWD/../conf/${src_id}.src" | cut -d= -f2-)
local src_sum=$(grep 'SOURCE_SUM=' "$YNH_CWD/../conf/${src_id}.src" | cut -d= -f2-)
local src_sumprg=$(grep 'SOURCE_SUM_PRG=' "$YNH_CWD/../conf/${src_id}.src" | cut -d= -f2-)
local src_format=$(grep 'SOURCE_FORMAT=' "$YNH_CWD/../conf/${src_id}.src" | cut -d= -f2-)
local src_extract=$(grep 'SOURCE_EXTRACT=' "$YNH_CWD/../conf/${src_id}.src" | cut -d= -f2-)
local src_in_subdir=$(grep 'SOURCE_IN_SUBDIR=' "$YNH_CWD/../conf/${src_id}.src" | cut -d= -f2-)
local src_filename=$(grep 'SOURCE_FILENAME=' "$YNH_CWD/../conf/${src_id}.src" | cut -d= -f2-)
# Default value
src_sumprg=${src_sumprg:-sha256sum}
src_in_subdir=${src_in_subdir:-true}
src_format=${src_format:-tar.gz}
src_format=$(echo "$src_format" | tr '[:upper:]' '[:lower:]')
src_extract=${src_extract:-true}
if [ "$src_filename" = "" ]; then
src_filename="${src_id}.${src_format}"
fi
local local_src="/opt/yunohost-apps-src/${YNH_APP_ID}/${src_filename}"
ynh_print_info "Downloading Gitlab files..."
if test -e "$local_src"; then # Use the local source file if it is present
cp $local_src $src_filename
else # If not, download the source
wget -q --show-progress -O $src_filename $src_url
fi
# Check the control sum
echo "${src_sum} ${src_filename}" | ${src_sumprg} -c --status ||
ynh_die "Corrupt source"
ynh_print_info "Installing Gitlab..."
#Fix for the CI
if grep -qa container=lxc /proc/1/environ; then
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
dpkg --configure gitlab-ce || true
else
dpkg -i $src_filename || true
fi
} }
#================================================= #=================================================
# WAIT # WAIT
#================================================= #=================================================
# This function is inspired by the ynh_systemd_action function # This function is inspired by the ynh_systemd_action function
waiting_to_start() {
ynh_print_info "Waiting for a response from Gitlab..." # Start (or other actions) a service, print a log in case of failure and optionnaly wait until the service is completely started
#
# usage: ynh_systemd_action [-n service_name] [-a action] [ [-l "line to match"] [-p log_path] [-t timeout] [-e length] ]
# | arg: -n, --service_name= - Name of the service to start. Default : $app
# | arg: -a, --action= - Action to perform with systemctl. Default: start
# | arg: -l, --line_match= - Line to match - The line to find in the log to attest the service have finished to boot.
# If not defined it don't wait until the service is completely started.
# WARNING: When using --line_match, you should always add `ynh_clean_check_starting` into your
# `ynh_clean_setup` at the beginning of the script. Otherwise, tail will not stop in case of failure
# of the script. The script will then hang forever.
# | arg: -p, --log_path= - Log file - Path to the log file. Default : /var/log/$app/$app.log
# | arg: -t, --timeout= - Timeout - The maximum time to wait before ending the watching. Default : 300 seconds.
# | arg: -e, --length= - Length of the error log : Default : 20
gitlab_ctl_action() {
# Declare an array to define the options of this helper.
declare -Ar args_array=( [a]=action= [l]=line_match= [p]=log_path= [t]=timeout= [e]=length= )
local service_name
local action
local line_match
local length
local log_path
local timeout
log_path="/var/log/gitlab/unicorn/current" # Manage arguments with getopts
ynh_handle_getopts_args "$@"
if [ ! -f "$log_path" ]; then local service_name="${service_name:-$app}"
return 0 local action=${action:-start}
fi local log_path="${log_path:-/var/log/$service_name/$service_name.log}"
local length=${length:-20}
local timeout=${timeout:-300}
line_match_new="adopted new unicorn master" # Start to read the log
line_match_existing="adopted existing unicorn master" if [[ -n "${line_match:-}" ]]
line_match_error="master failed to start" then
local templog="$(mktemp)"
# Following the starting of the app in its log
if [ "$log_path" == "systemd" ] ; then
# Read the systemd journal
journalctl --unit=$service_name --follow --since=-0 --quiet > "$templog" &
# Get the PID of the journalctl command
local pid_tail=$!
else
# Read the specified log file
tail -F -n0 "$log_path" > "$templog" 2>&1 &
# Get the PID of the tail command
local pid_tail=$!
fi
fi
clean_check_starting() { ynh_print_info --message="${action^} gitlab"
# 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 gitlab-ctl $action $service_name \
local templog="$(mktemp)" || ( journalctl --no-pager --lines=$length -u $service_name >&2 \
tail -F -n1 "$log_path" >"$templog" & ; test -e "$log_path" && echo "--" >&2 && tail --lines=$length "$log_path" >&2 \
# get the PID of the tail command ; false )
local pid_tail=$!
if grep --quiet "${line_match_error}" $templog; then # error, so restart gitlab # Start the timeout and try to find line_match
gitlab-ctl restart if [[ -n "${line_match:-}" ]]
fi then
local i=0
for i in $(seq 1 3600); do for i in $(seq 1 $timeout)
if grep --quiet "${line_match_new}" $templog || grep --quiet "${line_match_existing}" $templog; then do
echo "Gitlab has correctly started." >&2 # Read the log until the sentence is found, that means the app finished to start. Or run until the timeout
break if grep --quiet "$line_match" "$templog"
fi then
sleep 1 ynh_print_info --message="The service $service_name has correctly started."
echo -n "." >&2 break
done fi
if [ $i -eq 3 ]; then
clean_check_starting echo -n "Please wait, the service $service_name is ${action}ing" >&2
fi
if [ $i -ge 3 ]; then
echo -n "." >&2
fi
sleep 1
done
if [ $i -ge 3 ]; then
echo "" >&2
fi
if [ $i -eq $timeout ]
then
ynh_print_warn --message="The service $service_name didn't fully started before the timeout."
ynh_print_warn --message="Please find here an extract of the end of the log of the service $service_name:"
journalctl --no-pager --lines=$length -u $service_name >&2
test -e "$log_path" && echo "--" >&2 && tail --lines=$length "$log_path" >&2
fi
ynh_clean_check_starting
fi
} }

View file

@ -6,56 +6,65 @@
# IMPORT GENERIC HELPERS # IMPORT GENERIC HELPERS
#================================================= #=================================================
# Source YunoHost helpers #Keep this path for calling _common.sh inside the execution's context of backup and restore scripts
source /usr/share/yunohost/helpers
# Load common variables and helpers
source ../settings/scripts/_common.sh source ../settings/scripts/_common.sh
source /usr/share/yunohost/helpers
#================================================= #=================================================
# MANAGE SCRIPT FAILURE # MANAGE SCRIPT FAILURE
#================================================= #=================================================
ynh_clean_setup() { ynh_clean_setup () {
### Remove this function if there's nothing to clean before calling the remove script.
rm /var/opt/gitlab/backups/*_gitlab_backup.tar
true true
} }
# 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
#================================================= #=================================================
# LOAD SETTINGS # LOAD SETTINGS
#================================================= #=================================================
ynh_print_info "Loading installation settings..."
# Copy NGINX configuration app=$YNH_APP_INSTANCE_NAME
domain=$(ynh_app_setting_get "$app" domain)
final_path=$(ynh_app_setting_get $app final_path)
config_path=$(ynh_app_setting_get $app config_path)
domain=$(ynh_app_setting_get $app domain)
#================================================= #=================================================
# STANDARD BACKUP STEPS # STANDARD BACKUP STEPS
#================================================= #=================================================
# BACKUP THE NGINX CONFIGURATION # BACKUP THE NGINX CONFIGURATION
#================================================= #=================================================
ynh_print_info "Backing up nginx web server configuration..."
ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf"
#================================================= #=================================================
# BACKUP GITLAB DATABASE # BACKUP GITLAB DATABASE
#================================================= #=================================================
ynh_print_info "Backuping of Gitlab..." ynh_print_info "Backuping of Gitlab..."
# Use gitlab-rake to backup # Use gitlab-rake to backup
gitlab-rake gitlab:backup:create gitlab-rake gitlab:backup:create > backup.log
ynh_backup "/var/opt/$app/backups/" # Searching in backup logs the
last_backup=$(grep _gitlab_backup.tar backup.log | cut -d' ' -f4)
mv "/var/opt/$app/backups/$last_backup" "/var/opt/$app/backups/last_gitlab_backup.tar"
ynh_backup "/var/opt/$app/backups/last_gitlab_backup.tar"
#================================================= #=================================================
# BACKUP CONF FILES # BACKUP CONF FILES
#================================================= #=================================================
ynh_print_info "Backuping configuration files of Gitlab..." ynh_print_info "Backuping configuration files of Gitlab..."
ynh_backup "$config_path/gitlab-secrets.json" ynh_backup "$config_path/gitlab-secrets.json"
ynh_backup "$config_path/gitlab.rb" ynh_backup "$config_path/gitlab.rb"
#=================================================
# END OF SCRIPT
#=================================================
ynh_print_info "Backup script completed for $app. (YunoHost will then actually copy those files to the archive)."

View file

@ -1,20 +1,14 @@
#!/bin/bash #!/bin/bash
#================================================= #=================================================
# GENERIC START # GENERIC STARTING
#================================================= #=================================================
# IMPORT GENERIC HELPERS # IMPORT GENERIC HELPERS
#================================================= #=================================================
# IMPORT GENERIC HELPERS source _common.sh
source /usr/share/yunohost/helpers source /usr/share/yunohost/helpers
# Exit if an error occurs during the execution of the script
ynh_abort_if_errors
# Import common cmd
source ./_common.sh
#================================================= #=================================================
# RETRIEVE ARGUMENTS # RETRIEVE ARGUMENTS
#================================================= #=================================================
@ -30,12 +24,16 @@ app=$YNH_APP_INSTANCE_NAME
#================================================= #=================================================
# LOAD SETTINGS # LOAD SETTINGS
#================================================= #=================================================
ynh_print_info "Loading installation settings..."
# Needed for helper "ynh_add_nginx_config"
final_path=$(ynh_app_setting_get $app final_path)
config_path=$(ynh_app_setting_get $app config_path)
port=$(ynh_app_setting_get "$app" web_port) port=$(ynh_app_setting_get "$app" web_port)
portUnicorn=$(ynh_app_setting_get "$app" unicorn_port) portUnicorn=$(ynh_app_setting_get "$app" unicorn_port)
#================================================= #=================================================
# CHECK PATHS SYNTAX # CHECK THE SYNTAX OF THE PATHS
#================================================= #=================================================
test -n "$old_path" || old_path="/" test -n "$old_path" || old_path="/"
@ -43,9 +41,6 @@ test -n "$new_path" || new_path="/"
new_path=$(ynh_normalize_url_path $new_path) new_path=$(ynh_normalize_url_path $new_path)
old_path=$(ynh_normalize_url_path $old_path) old_path=$(ynh_normalize_url_path $old_path)
domain="$new_domain"
path_url="$new_path"
#================================================= #=================================================
# CHECK WHICH PARTS SHOULD BE CHANGED # CHECK WHICH PARTS SHOULD BE CHANGED
#================================================= #=================================================
@ -63,17 +58,17 @@ fi
#================================================= #=================================================
# STANDARD MODIFICATIONS # STANDARD MODIFICATIONS
#================================================= #=================================================
# MODIFY URL IN NGINX # MODIFY URL IN NGINX CONF
#================================================= #=================================================
ynh_print_info "Updating nginx web server configuration..."
#doc in: https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
# Gitlab configuration
nginx_conf_path=/etc/nginx/conf.d/$old_domain.d/$app.conf nginx_conf_path=/etc/nginx/conf.d/$old_domain.d/$app.conf
if [ $change_path -eq 1 ]; then if [ $change_path -eq 1 ]; then
ynh_print_info "Changing path..." ynh_print_info "Changing path..."
#doc in: https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
gitlab-ctl stop unicorn gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq gitlab-ctl stop sidekiq
@ -97,29 +92,44 @@ if [ $change_domain -eq 1 ]; then
ynh_store_file_checksum "/etc/nginx/conf.d/$new_domain.d/$app.conf" ynh_store_file_checksum "/etc/nginx/conf.d/$new_domain.d/$app.conf"
fi fi
#=================================================
# SPECIFIC MODIFICATIONS
#================================================= #=================================================
# CONFIGURE GITLAB # CONFIGURE GITLAB
#================================================= #=================================================
ynh_print_info "Configure gitlab..."
config_gitlab ynh_backup_if_checksum_is_different "$config_path/gitlab.rb"
mkdir -p $config_path
cp -f ../conf/gitlab.rb "$config_path/gitlab.rb"
ynh_replace_string "__GENERATED_EXTERNAL_URL__" "https://$domain${path_url%/}" "$config_path/gitlab.rb"
ynh_replace_string "__PORT__" "$port" "$config_path/gitlab.rb"
ynh_replace_string "__PORTUNICORN__" "$portUnicorn" "$config_path/gitlab.rb"
ynh_store_file_checksum "$config_path/gitlab.rb"
#=================================================
# RECONFIGURE GITLAB
#=================================================
gitlab-ctl reconfigure gitlab-ctl reconfigure
if [ $change_path -eq 1 ]; then gitlab_ctl_action --action=restart --line_match="adopted new unicorn master" --log_path="/var/log/gitlab/unicorn/current" --timeout=3600
gitlab-ctl restart
gitlab-ctl restart unicorn
fi
#================================================= #=================================================
# GENERIC FINALISATION # GENERIC FINALISATION
#================================================= #=================================================
# RELOAD NGINX # RELOAD NGINX
#================================================= #=================================================
ynh_print_info "Reloading nginx web server..."
systemctl reload nginx ynh_systemd_action --action=reload --service_name=nginx
#================================================= #=================================================
# WAIT # END OF SCRIPT
#================================================= #=================================================
waiting_to_start ynh_print_info "Change of URL completed for $app"

View file

@ -6,101 +6,160 @@
# IMPORT GENERIC HELPERS # IMPORT GENERIC HELPERS
#================================================= #=================================================
source _common.sh
source /usr/share/yunohost/helpers source /usr/share/yunohost/helpers
#=================================================
# MANAGE SCRIPT FAILURE
#=================================================
ynh_clean_setup () {
ynh_secure_remove "$tempdir" 2>&1
ynh_clean_check_starting
}
# 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
# Load common variables and helpers
source ./_common.sh
#================================================= #=================================================
# RETRIEVE ARGUMENTS # RETRIEVE ARGUMENTS FROM THE MANIFEST
#================================================= #=================================================
# Retrieve arguments
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
use_web_account=$YNH_APP_ARG_USE_WEB_ACCOUNT use_web_account=$YNH_APP_ARG_USE_WEB_ACCOUNT
admin=$YNH_APP_ARG_ADMIN admin=$YNH_APP_ARG_ADMIN
#================================================= app=$YNH_APP_INSTANCE_NAME
# REGISTER DOMAIN
#================================================= #=================================================
# CHECK IF THE APP CAN BE INSTALLED WITH THESE ARGS
#=================================================
ynh_print_info "Validating installation parameters..."
config_path=/etc/$app
final_path=/opt/$app
test ! -e "$final_path" || ynh_die "This path already contains a folder"
# Detect the system architecture
if [ -n "$(uname -m | grep 64)" ]; then
architecture="x86-64"
elif [ -n "$(uname -m | grep 86)" ]; then
ynh_die "Gitlab is not compatible with x86 architecture"
elif [ -n "$(uname -m | grep arm)" ]; then
architecture="arm"
else
ynh_die "Unable to detect your achitecture, please open a bug describing \
your hardware and the result of the command \"uname -m\"." 1
fi
# Normalize the url path syntax
path_url=$(ynh_normalize_url_path $path_url) path_url=$(ynh_normalize_url_path $path_url)
# This function check also the availability of this one # Register (book) web path
ynh_webpath_register $app $domain $path_url ynh_webpath_register $app $domain $path_url
#=================================================
# REGISTER DOMAIN
#=================================================
# Check user parameter
ynh_user_exists "$admin" ||
ynh_die "The chosen admin user does not exist."
#================================================= #=================================================
# STORE SETTINGS FROM MANIFEST # STORE SETTINGS FROM MANIFEST
#================================================= #=================================================
ynh_print_info "Storing installation settings..."
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 use_web_account $use_web_account ynh_app_setting_set $app use_web_account $use_web_account
ynh_app_setting_set $app final_path $final_path
ynh_app_setting_set $app config_path $config_path
ynh_app_setting_set $app architecture $architecture
#================================================= #=================================================
# STANDARD MODIFICATIONS # STANDARD MODIFICATIONS
#================================================= #=================================================
# FIND AND OPEN PORTS # FIND AND OPEN A PORT
#================================================= #=================================================
ynh_print_info "Configuring firewall..."
ynh_print_info "Getting ports..."
# Find free ports # Find free ports
port=$(ynh_find_port 8080) port=$(ynh_find_port 8080)
portUnicorn=$(ynh_find_port $(($port + 1))) portUnicorn=$(ynh_find_port $(($port + 1)))
# Open these port
yunohost firewall allow --no-upnp TCP $port 2>&1 yunohost firewall allow --no-upnp TCP $port 2>&1
yunohost firewall allow --no-upnp TCP $portUnicorn 2>&1 yunohost firewall allow --no-upnp TCP $portUnicorn 2>&1
ynh_app_setting_set $app web_port $port ynh_app_setting_set $app web_port $port
ynh_app_setting_set $app unicorn_port $portUnicorn ynh_app_setting_set $app unicorn_port $portUnicorn
#=================================================
# INSTALL DEPENDENCIES
#=================================================
ynh_print_info "Installing dependencies..."
ynh_install_app_dependencies $pkg_dependencies
#=================================================
# PRECONFIGURE GITLAB
#=================================================
ynh_print_info "Preconfigure gitlab..."
mkdir -p $config_path
cp -f ../conf/gitlab.rb "$config_path/gitlab.rb"
ynh_replace_string "__GENERATED_EXTERNAL_URL__" "https://$domain${path_url%/}" "$config_path/gitlab.rb"
ynh_replace_string "__PORT__" "$port" "$config_path/gitlab.rb"
ynh_replace_string "__PORTUNICORN__" "$portUnicorn" "$config_path/gitlab.rb"
#=================================================
# STORE THE CONFIG FILE CHECKSUM
#=================================================
ynh_store_file_checksum "$config_path/gitlab.rb"
#=================================================
# DOWNLOAD, CHECK AND UNPACK SOURCE
#=================================================
ynh_print_info "Setting up source files..."
update_src_version() {
source ./upgrade.d/upgrade.last.sh
cp ../conf/arm.src.default ../conf/arm.src
ynh_replace_string "__VERSION__" "$gitlab_version" "../conf/arm.src"
ynh_replace_string "__SHA256_SUM__" "$gitlab_arm_source_sha256" "../conf/arm.src"
ynh_replace_string "__SOURCE_FILENAME__" "$gitlab_filename" "../conf/arm.src"
cp ../conf/x86-64.src.default ../conf/x86-64.src
ynh_replace_string "__VERSION__" "$gitlab_version" "../conf/x86-64.src"
ynh_replace_string "__SHA256_SUM__" "$gitlab_x86_64_source_sha256" "../conf/x86-64.src"
ynh_replace_string "__SOURCE_FILENAME__" "$gitlab_filename" "../conf/x86-64.src"
}
update_src_version
tempdir="$(mktemp -d)"
ynh_setup_source $tempdir $architecture
if IS_PACKAGE_CHECK; then
dpkg -i $tempdir/$gitlab_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
dpkg --configure gitlab-ce
else
dpkg -i $tempdir/$gitlab_filename
fi
#================================================= #=================================================
# NGINX CONFIGURATION # NGINX CONFIGURATION
#================================================= #=================================================
ynh_print_info "Configuring nginx web server..."
# Create a dedicated nginx config # Create a dedicated nginx config
ynh_add_nginx_config ynh_add_nginx_config
#=================================================
# CONFIGURE GITLAB
#=================================================
# Configure gitlab with gitlab.rb file
config_gitlab
#=================================================
# INSTALL DEPENDENCIES
#=================================================
ynh_install_app_dependencies openssh-server
#=================================================
# DOWNLOAD, CHECK AND INSTALL GITLAB
#=================================================
setup_source $architecture
#================================================= #=================================================
# SPECIFIC SETUP # SPECIFIC SETUP
#================================================= #=================================================
# GETTING ADMIN INFO AND ADD AS A GITLAB USER AND CONFIGURE SIGN IN SYSTEM # ADD USER AND CONFIGURE SIGN IN SYSTEM
#================================================= #=================================================
ynh_print_info "Creating an administrator user..." ynh_print_info "Creating an administrator user..."
mailadmin=$(ynh_user_get_info $admin mail) mailadmin=$(ynh_user_get_info $admin mail)
@ -114,31 +173,41 @@ newuser.save
ApplicationSetting.last.update_attributes(password_authentication_enabled_for_web: $use_web_account, signup_enabled: $use_web_account)" | gitlab-rails console ApplicationSetting.last.update_attributes(password_authentication_enabled_for_web: $use_web_account, signup_enabled: $use_web_account)" | gitlab-rails console
#================================================= #=================================================
# RESTART TO TAKE INTO ACCOUNT CHANGES # RECONFIGURE TO TAKE INTO ACCOUNT CHANGES
#================================================= #=================================================
ynh_print_info "Reconfigure gitlab..."
gitlab-ctl reconfigure gitlab-ctl reconfigure
#=================================================
# GENERIC FINALIZATION
#================================================= #=================================================
# SETUP SSOWAT # SETUP SSOWAT
#================================================= #=================================================
ynh_print_info "Configuring SSOwat..."
# If app is public, add url to SSOWat conf as skipped_uris # Make app public if necessary
if [[ $is_public -eq 1 ]]; then if [ $is_public -eq 1 ]; then
# unprotected_uris allows SSO credentials to be passed anyway. # unprotected_uris allows SSO credentials to be passed anyway.
ynh_app_setting_set "$app" unprotected_uris "/" ynh_app_setting_set $app unprotected_uris "/"
fi fi
#================================================= #=================================================
# GENERIC FINALISATION # RESTART GITLAB
#=================================================
ynh_print_info "Restarting gitlab..."
gitlab_ctl_action --action=restart --line_match="adopted new unicorn master" --log_path="/var/log/gitlab/unicorn/current" --timeout=3600
#================================================= #=================================================
# RELOAD NGINX # RELOAD NGINX
#================================================= #=================================================
ynh_print_info "Reloading nginx web server..."
systemctl reload nginx ynh_systemd_action --action=reload --service_name=nginx
#================================================= #=================================================
# WAIT # END OF SCRIPT
#================================================= #=================================================
waiting_to_start ynh_print_info "Installation of $app completed"

View file

@ -6,81 +6,90 @@
# IMPORT GENERIC HELPERS # IMPORT GENERIC HELPERS
#================================================= #=================================================
# Source YunoHost helpers source _common.sh
source /usr/share/yunohost/helpers source /usr/share/yunohost/helpers
# Load common variables and helpers
source ./_common.sh
#================================================= #=================================================
# LOAD SETTINGS # LOAD SETTINGS
#================================================= #=================================================
ynh_print_info "Loading installation settings..."
# See comments in install script
app=$YNH_APP_INSTANCE_NAME app=$YNH_APP_INSTANCE_NAME
domain=$(ynh_app_setting_get "$app" domain) domain=$(ynh_app_setting_get "$app" domain)
port=$(ynh_app_setting_get "$app" web_port) port=$(ynh_app_setting_get "$app" web_port)
portUnicorn=$(ynh_app_setting_get "$app" unicorn_port) portUnicorn=$(ynh_app_setting_get "$app" unicorn_port)
final_path=$(ynh_app_setting_get $app final_path)
config_path=$(ynh_app_setting_get $app config_path)
#================================================= #=================================================
# STANDARD REMOVE # STANDARD REMOVE
#================================================= #=================================================
# REMOVE GITLAB # STOP GITLAB
#================================================= #=================================================
ynh_print_info "Stopping gitlab"
ynh_print_info "Removing Gitlab..."
gitlab-ctl stop gitlab-ctl stop
# Remove gitlab #=================================================
# REMOVE GITLAB
#=================================================
ynh_print_info "Removing Gitlab"
dpkg --remove gitlab-ce dpkg --remove gitlab-ce
#=================================================
# REMOVE CONF GILE
#=================================================
# Remove Config
remove_config_gitlab
#================================================= #=================================================
# REMOVE DEPENDENCIES # REMOVE DEPENDENCIES
#================================================= #=================================================
ynh_print_info "Removing dependencies"
# Remove metapackage and its dependencies
ynh_remove_app_dependencies ynh_remove_app_dependencies
#================================================= #=================================================
# REMOVE APP MAIN DIR # REMOVE APP MAIN DIR
#================================================= #=================================================
ynh_print_info "Removing app main directory"
# Remove the app directory securely
ynh_secure_remove "$final_path" ynh_secure_remove "$final_path"
ynh_secure_remove "$config_path" ynh_secure_remove "$config_path"
ynh_secure_remove "/var/opt/$app"
# Remove the log files
ynh_secure_remove "/var/log/$app"
#=================================================
# CLOSE PORTS
#=================================================
if yunohost firewall list | grep -q "\- $port$"; then
echo "Close port $port" >&2
yunohost firewall disallow TCP $port 2>&1
fi
if yunohost firewall list | grep -q "\- $portUnicorn$"; then
echo "Close port $portUnicorn" >&2
yunohost firewall disallow TCP $portUnicorn 2>&1
fi
#================================================= #=================================================
# REMOVE NGINX CONFIGURATION # REMOVE NGINX CONFIGURATION
#================================================= #=================================================
ynh_print_info "Removing nginx web server configuration"
# Remove the dedicated nginx config
ynh_remove_nginx_config ynh_remove_nginx_config
#================================================= #=================================================
# REMOVE LOGROTATE CONFIGURATION # CLOSE A PORT
#================================================= #=================================================
#ynh_remove_logrotate if yunohost firewall list | grep -q "\- $port$"; then
ynh_print_info "Closing port $port"
ynh_exec_warn_less yunohost firewall disallow TCP $port
fi
if yunohost firewall list | grep -q "\- $portUnicorn$"; then
ynh_print_info "Closing port $portUnicorn"
ynh_exec_warn_less yunohost firewall disallow TCP $portUnicorn
fi
#=================================================
# SPECIFIC REMOVE
#=================================================
# REMOVE GITLAB FILES
#=================================================
ynh_secure_remove "/var/opt/$app"
# Remove the log files
ynh_secure_remove "/var/log/$app/"
#=================================================
# END OF SCRIPT
#=================================================
ynh_print_info "Removal of $app completed"

View file

@ -6,52 +6,44 @@
# IMPORT GENERIC HELPERS # IMPORT GENERIC HELPERS
#================================================= #=================================================
# Source YunoHost 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 source /usr/share/yunohost/helpers
#================================================= #=================================================
# MANAGE SCRIPT FAILURE # MANAGE SCRIPT FAILURE
#================================================= #=================================================
ynh_clean_setup() { ynh_clean_setup () {
ynh_secure_remove "$tempdir" 2>&1
rm /var/opt/gitlab/backups/*_gitlab_backup.tar
true
} }
# 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
if [ ! -e _common.sh ]; then
# Get the _common.sh file if it's not in the current directory
cp ../settings/scripts/_common.sh ./_common.sh
mkdir ./upgrade.d
mkdir ../conf
cp ../settings/scripts/upgrade.d/*.sh ./upgrade.d/
cp ../settings/conf/*.default ../conf/
chmod a+rx _common.sh upgrade.d/*
fi
# Load common variables and helpers
source _common.sh
#================================================= #=================================================
# LOAD SETTINGS # LOAD SETTINGS
#================================================= #=================================================
ynh_print_info "Loading settings..."
# Copy NGINX configuration app=$YNH_APP_INSTANCE_NAME
domain=$(ynh_app_setting_get "$app" domain)
path_url=$(ynh_app_setting_get "$app" path_url) domain=$(ynh_app_setting_get $app domain)
path_url=$(ynh_app_setting_get $app path)
final_path=$(ynh_app_setting_get $app final_path)
config_path=$(ynh_app_setting_get $app config_path)
port=$(ynh_app_setting_get "$app" web_port)
portUnicorn=$(ynh_app_setting_get "$app" unicorn_port)
architecture=$(ynh_app_setting_get "$app" architecture)
#================================================= #=================================================
# CHECK IF THE APP CAN BE RESTORED # CHECK IF THE APP CAN BE RESTORED
#================================================= #=================================================
ynh_print_info "Validating restoration parameters..."
ynh_webpath_available $domain $path_url || ynh_webpath_available $domain $path_url \
ynh_die "Path not available: ${domain}${path_url}" || ynh_die "Path not available: ${domain}${path_url}"
test ! -d $final_path || test ! -d $final_path \
ynh_die "There is already a directory: $final_path " || ynh_die "There is already a directory: $final_path "
#================================================= #=================================================
# STANDARD RESTORATION STEPS # STANDARD RESTORATION STEPS
@ -64,13 +56,14 @@ ynh_restore_file "/etc/nginx/conf.d/$domain.d/$app.conf"
#================================================= #=================================================
# REINSTALL DEPENDENCIES # REINSTALL DEPENDENCIES
#================================================= #=================================================
ynh_print_info "Reinstalling dependencies..."
ynh_install_app_dependencies openssh-server # Define and install dependencies
ynh_install_app_dependencies $pkg_dependencies
#================================================= #=================================================
# RESTORE CONF FILES # RESTORE CONF FILES
#================================================= #=================================================
ynh_print_info "Restoring configuration files of Gitlab..." ynh_print_info "Restoring configuration files of Gitlab..."
ynh_restore_file "$config_path/gitlab-secrets.json" ynh_restore_file "$config_path/gitlab-secrets.json"
@ -79,23 +72,46 @@ ynh_restore_file "$config_path/gitlab.rb"
#================================================= #=================================================
# RESTORE THE APP MAIN DIR # RESTORE THE APP MAIN DIR
#================================================= #=================================================
ynh_print_info "Reinstalling gitlab..."
setup_source $architecture update_src_version() {
source ../settings/scripts/upgrade.d/upgrade.last.sh
mkdir -p ../conf/
cp ../settings/conf/arm.src.default ../conf/arm.src
ynh_replace_string "__VERSION__" "$gitlab_version" "../conf/arm.src"
ynh_replace_string "__SHA256_SUM__" "$gitlab_arm_source_sha256" "../conf/arm.src"
ynh_replace_string "__SOURCE_FILENAME__" "$gitlab_filename" "../conf/arm.src"
ynh_restore_file "/var/opt/$app/backups/" cp ../conf/x86-64.src.default ../conf/x86-64.src
ynh_replace_string "__VERSION__" "$gitlab_version" "../conf/x86-64.src"
ynh_replace_string "__SHA256_SUM__" "$gitlab_x86_64_source_sha256" "../conf/x86-64.src"
ynh_replace_string "__SOURCE_FILENAME__" "$gitlab_filename" "../conf/x86-64.src"
}
update_src_version
tempdir="$(mktemp -d)"
ynh_setup_source $tempdir $architecture
if IS_PACKAGE_CHECK; then
dpkg -i $tempdir/$gitlab_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
dpkg --configure gitlab-ce
else
dpkg -i $tempdir/$gitlab_filename
fi
#================================================= #=================================================
# SPECIFIC RESTORATION # SPECIFIC RESTORATION
#================================================= #=================================================
# RESTORE GITLAB DATABASE # RESTORE GITLAB DATABASE
#================================================= #=================================================
ynh_print_info "Restoring Gitlab..." ynh_print_info "Restoring Gitlab..."
fullfile=$(ls /var/opt/gitlab/backups/*_gitlab* --file -c1 | head -1) ynh_restore_file "/var/opt/$app/backups/last_gitlab_backup.tar"
basename="/var/opt/gitlab/backups/"
filename=$(basename -- "$fullfile") last_backup="last"
last_backup="${filename%_gitlab_backup.tar}"
gitlab-ctl stop unicorn gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq gitlab-ctl stop sidekiq
@ -111,5 +127,12 @@ gitlab-rake gitlab:check SANITIZE=true
#================================================= #=================================================
# RELOAD NGINX # RELOAD NGINX
#================================================= #=================================================
ynh_print_info "Reloading nginx web server..."
systemctl reload nginx ynh_systemd_action --action=reload --service_name=nginx
#=================================================
# END OF SCRIPT
#=================================================
ynh_print_info "Restoration completed for $app"

View file

@ -23,8 +23,11 @@ domain=$(ynh_app_setting_get "$app" domain)
path_url=$(ynh_app_setting_get "$app" path_url) path_url=$(ynh_app_setting_get "$app" path_url)
admin=$(ynh_app_setting_get "$app" admin) admin=$(ynh_app_setting_get "$app" admin)
is_public=$(ynh_app_setting_get "$app" is_public) is_public=$(ynh_app_setting_get "$app" is_public)
final_path=$(ynh_app_setting_get $app final_path)
config_path=$(ynh_app_setting_get $app config_path)
port=$(ynh_app_setting_get "$app" web_port) port=$(ynh_app_setting_get "$app" web_port)
portUnicorn=$(ynh_app_setting_get "$app" unicorn_port) portUnicorn=$(ynh_app_setting_get "$app" unicorn_port)
architecture=$(ynh_app_setting_get "$app" architecture)
#================================================= #=================================================
# ENSURE DOWNWARD COMPATIBILITY # ENSURE DOWNWARD COMPATIBILITY
@ -39,6 +42,34 @@ elif [ "$is_public" = "No" ]; then
is_public=0 is_public=0
fi fi
# If final_path doesn't exist, create it
if [ -z "$final_path" ]; then
final_path=/opt/$app
ynh_app_setting_set $app final_path $final_path
fi
# If config_path doesn't exist, create it
if [ -z "$config_path" ]; then
config_path=/etc/$app
ynh_app_setting_set $app config_path $config_path
fi
# If architecture doesn't exist, create it
if [ -z "$architecture" ]; then
# Detect the system architecture
if [ -n "$(uname -m | grep 64)" ]; then
architecture="x86-64"
elif [ -n "$(uname -m | grep 86)" ]; then
ynh_die "Gitlab is not compatible with x86 architecture"
elif [ -n "$(uname -m | grep arm)" ]; then
architecture="arm"
else
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 architecture $architecture
fi
# If domain doesn't exist, retrieve it # If domain doesn't exist, retrieve it
if [ -z "$domain" ]; then if [ -z "$domain" ]; then
domain=$(grep "external_url" "/etc/gitlab/gitlab.rb" | cut -d'/' -f3) # retrieve $domain from conf file domain=$(grep "external_url" "/etc/gitlab/gitlab.rb" | cut -d'/' -f3) # retrieve $domain from conf file
@ -75,14 +106,18 @@ fi
#================================================= #=================================================
# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP # BACKUP BEFORE UPGRADE THEN ACTIVE TRAP
#================================================= #=================================================
ynh_print_info "Backing up the app before upgrading (may take a while)..."
# 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 () {
ynh_secure_remove "$tempdir" 2>&1
ynh_clean_check_starting
# 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
@ -95,33 +130,70 @@ path_url=$(ynh_normalize_url_path $path_url)
#================================================= #=================================================
# STANDARD UPGRADE STEPS # STANDARD UPGRADE STEPS
#=================================================
# INSTALL DEPENDENCIES
#=================================================
ynh_print_info "Installing dependencies..."
ynh_install_app_dependencies $pkg_dependencies
#=================================================
# PRECONFIGURE GITLAB
#=================================================
ynh_print_info "Preconfigure gitlab..."
ynh_backup_if_checksum_is_different "$config_path/gitlab.rb"
mkdir -p $config_path
cp -f ../conf/gitlab.rb "$config_path/gitlab.rb"
ynh_replace_string "__GENERATED_EXTERNAL_URL__" "https://$domain${path_url%/}" "$config_path/gitlab.rb"
ynh_replace_string "__PORT__" "$port" "$config_path/gitlab.rb"
ynh_replace_string "__PORTUNICORN__" "$portUnicorn" "$config_path/gitlab.rb"
ynh_store_file_checksum "$config_path/gitlab.rb"
#=================================================
# DOWNLOAD, CHECK AND UNPACK SOURCE
#=================================================
ynh_print_info "Setting up source files..."
update_src_version() {
source ./upgrade.d/upgrade.last.sh
cp ../conf/arm.src.default ../conf/arm.src
ynh_replace_string "__VERSION__" "$gitlab_version" "../conf/arm.src"
ynh_replace_string "__SHA256_SUM__" "$gitlab_arm_source_sha256" "../conf/arm.src"
ynh_replace_string "__SOURCE_FILENAME__" "$gitlab_filename" "../conf/arm.src"
cp ../conf/x86-64.src.default ../conf/x86-64.src
ynh_replace_string "__VERSION__" "$gitlab_version" "../conf/x86-64.src"
ynh_replace_string "__SHA256_SUM__" "$gitlab_x86_64_source_sha256" "../conf/x86-64.src"
ynh_replace_string "__SOURCE_FILENAME__" "$gitlab_filename" "../conf/x86-64.src"
}
update_src_version
tempdir="$(mktemp -d)"
ynh_setup_source $tempdir $architecture
if IS_PACKAGE_CHECK; then
dpkg -i $tempdir/$gitlab_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
dpkg --configure gitlab-ce
else
dpkg -i $tempdir/$gitlab_filename
fi
#================================================= #=================================================
# NGINX CONFIGURATION # NGINX CONFIGURATION
#================================================= #=================================================
ynh_print_info "Configuring nginx web server..."
# Modify Nginx configuration file and copy it to Nginx conf directory # Create a dedicated nginx config
ynh_add_nginx_config ynh_add_nginx_config
#=================================================
# CONFIGURE GITLAB
#=================================================
# Configure gitlab with gitlab.rb file
config_gitlab
#=================================================
# UPGRADE DEPENDENCIES
#=================================================
ynh_install_app_dependencies openssh-server
#=================================================
# DOWNLOAD, CHECK AND INSTALL GITLAB
#=================================================
# Update Gitlab
setup_source $architecture
#================================================= #=================================================
# GENERIC FINALIZATION # GENERIC FINALIZATION
#================================================= #=================================================
@ -134,15 +206,23 @@ if [[ $is_public -eq 1 ]]; then
ynh_app_setting_set "$app" unprotected_uris "/" ynh_app_setting_set "$app" unprotected_uris "/"
fi fi
#=================================================
# RESTART GITLAB
#=================================================
ynh_print_info "Restarting gitlab..."
gitlab_ctl_action --action=restart --line_match="adopted new unicorn master" --log_path="/var/log/gitlab/unicorn/current" --timeout=3600
#================================================= #=================================================
# RELOAD NGINX # RELOAD NGINX
#================================================= #=================================================
ynh_print_info "Reloading nginx web server..."
# Reload nginx service ynh_systemd_action --action=reload --service_name=nginx
systemctl reload nginx
#================================================= #=================================================
# WAIT # END OF SCRIPT
#================================================= #=================================================
waiting_to_start ynh_print_info "Upgrade of $app completed"

View file

@ -3,3 +3,5 @@ gitlab_version="11.8.2"
gitlab_x86_64_source_sha256="c1ea774a39b14c57a0821916d6c75c1c8f757d3222f7d38e6c3270a47799a34f" gitlab_x86_64_source_sha256="c1ea774a39b14c57a0821916d6c75c1c8f757d3222f7d38e6c3270a47799a34f"
gitlab_arm_source_sha256="886193a183a642e662923c6590c07c3b3d5cc1c2108e3818bcd84ab628e00bc3" gitlab_arm_source_sha256="886193a183a642e662923c6590c07c3b3d5cc1c2108e3818bcd84ab628e00bc3"
gitlab_filename="gitlab-ce.deb"