mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-22 14:41:29 +01:00
try installing MariaDB and PostgreSQL in one Travis run, enhanced post_install to install further domains
This commit is contained in:
parent
598e35fed6
commit
427620e9c4
22
.travis.yml
22
.travis.yml
@ -11,12 +11,6 @@ matrix:
|
|||||||
allow_failures:
|
allow_failures:
|
||||||
- php: hhvm
|
- php: hhvm
|
||||||
|
|
||||||
# test installation and run all tests with these databases
|
|
||||||
env:
|
|
||||||
matrix:
|
|
||||||
- DB=mysql
|
|
||||||
- DB=postgres
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
- memcached
|
- memcached
|
||||||
# - mysql we use mariadb instead installed via addons below
|
# - mysql we use mariadb instead installed via addons below
|
||||||
@ -70,19 +64,13 @@ before_script:
|
|||||||
- sudo chown travis /var/lib/egroupware
|
- sudo chown travis /var/lib/egroupware
|
||||||
|
|
||||||
script:
|
script:
|
||||||
# install egroupware (PostgreSQL need some specific handling as it is not the default and we can not create users via sql)
|
# install egroupware using MariaDB as domain "default"
|
||||||
- case $DB in
|
- php doc/rpm-build/post_install.php --domain default
|
||||||
postgres)
|
|
||||||
psql -U postgres -c 'create database egroupware';
|
|
||||||
php doc/rpm-build/post_install.php --php `which php` --db_type pgsql --db_port 5432 --db_user postgres --db_pass ''
|
|
||||||
--source_dir `pwd` --start_db '' --autostart_db '' --start_webserver '' --webserver_user ''
|
--source_dir `pwd` --start_db '' --autostart_db '' --start_webserver '' --webserver_user ''
|
||||||
;;
|
# install egroupware using PostgreSQL as domain "pgsql", need some specific handling we can not create users via sql
|
||||||
*)
|
- psql -U postgres -c 'create database egroupware';
|
||||||
php doc/rpm-build/post_install.php --php `which php`
|
- php doc/rpm-build/post_install.php --domain pgsql --db_type pgsql --db_port 5432 --db_user postgres --db_pass ''
|
||||||
--source_dir `pwd` --start_db '' --autostart_db '' --start_webserver '' --webserver_user ''
|
--source_dir `pwd` --start_db '' --autostart_db '' --start_webserver '' --webserver_user ''
|
||||||
;;
|
|
||||||
esac
|
|
||||||
#- mysql -uroot -e 'show tables' egroupware
|
|
||||||
# Ubuntu has problems with #!/usr/bin/env php -dapc.enable=1, it stalls forever
|
# Ubuntu has problems with #!/usr/bin/env php -dapc.enable=1, it stalls forever
|
||||||
- php -dapc.enable_cli=1 doc/test-cli.php
|
- php -dapc.enable_cli=1 doc/test-cli.php
|
||||||
- ./doc/php_syntax_check.sh
|
- ./doc/php_syntax_check.sh
|
||||||
|
@ -15,7 +15,7 @@ if (php_sapi_name() !== 'cli') // security precaution: forbit calling post_insta
|
|||||||
}
|
}
|
||||||
$verbose = false;
|
$verbose = false;
|
||||||
$config = array(
|
$config = array(
|
||||||
'php' => '/usr/bin/php',
|
'php' => PHP_BINARY,
|
||||||
'source_dir' => '/usr/share/egroupware',
|
'source_dir' => '/usr/share/egroupware',
|
||||||
'data_dir' => '/var/lib/egroupware',
|
'data_dir' => '/var/lib/egroupware',
|
||||||
'header' => '$data_dir/header.inc.php', // symlinked to source_dir by rpm
|
'header' => '$data_dir/header.inc.php', // symlinked to source_dir by rpm
|
||||||
@ -165,7 +165,7 @@ function set_distro_defaults($distro=null)
|
|||||||
set_distro_defaults();
|
set_distro_defaults();
|
||||||
|
|
||||||
// read config from command line
|
// read config from command line
|
||||||
$argv = $_SERVER['argv'];
|
$argv = str_replace(array("''", '""'), '', $_SERVER['argv']);
|
||||||
$prog = array_shift($argv);
|
$prog = array_shift($argv);
|
||||||
|
|
||||||
// check if we have EGW_POST_INSTALL set and prepend it to the command line (command line has precedence)
|
// check if we have EGW_POST_INSTALL set and prepend it to the command line (command line has precedence)
|
||||||
@ -254,7 +254,26 @@ check_fix_php_apc_ini();
|
|||||||
// not limiting memory, as backups might fail with limit we set
|
// not limiting memory, as backups might fail with limit we set
|
||||||
$setup_cli = $config['php'].' -d memory_limit=-1 '.$config['setup-cli'];
|
$setup_cli = $config['php'].' -d memory_limit=-1 '.$config['setup-cli'];
|
||||||
|
|
||||||
if (!file_exists($config['header']) || filesize($config['header']) < 200) // default header redirecting to setup is 147 bytes
|
// if we have a header, include it
|
||||||
|
if (file_exists($config['header']) && filesize($config['header']) >= 200) // default header redirecting to setup is 147 bytes
|
||||||
|
{
|
||||||
|
$GLOBALS['egw_info'] = array(
|
||||||
|
'flags' => array(
|
||||||
|
'noapi' => true,
|
||||||
|
)
|
||||||
|
);
|
||||||
|
include $config['header'];
|
||||||
|
|
||||||
|
// get user from header and replace password, as we dont know it
|
||||||
|
$old_password = patch_header($config['header'],$config['config_user'],$config['config_passwd']);
|
||||||
|
// register a shutdown function to put old password back in any case
|
||||||
|
register_shutdown_function(function() use (&$config, $old_password)
|
||||||
|
{
|
||||||
|
patch_header($config['header'], $config['config_user'], $old_password);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// new header or does not include requested domain (!= "default") --> new install
|
||||||
|
if (!isset($GLOBALS['egw_domain']) || $config['domain'] !== 'default' && !isset($GLOBALS['egw_domain'][$config['domain']]))
|
||||||
{
|
{
|
||||||
// --> new install
|
// --> new install
|
||||||
$extra_config = '';
|
$extra_config = '';
|
||||||
@ -319,8 +338,9 @@ if (!file_exists($config['header']) || filesize($config['header']) < 200) // def
|
|||||||
run_cmd($config['php5enmod']);
|
run_cmd($config['php5enmod']);
|
||||||
}
|
}
|
||||||
|
|
||||||
// create header
|
// create or edit header header
|
||||||
$setup_header = $setup_cli.' --create-header '.escapeshellarg($config['config_passwd'].','.$config['config_user']).
|
$setup_header = $setup_cli.(isset($GLOBALS['egw_domain']) ? ' --edit-header ' : ' --create-header ').
|
||||||
|
escapeshellarg($config['config_passwd'].','.$config['config_user']).
|
||||||
' --domain '.escapeshellarg($config['domain'].','.$config['db_name'].','.$config['db_user'].','.$config['db_pass'].
|
' --domain '.escapeshellarg($config['domain'].','.$config['db_name'].','.$config['db_user'].','.$config['db_pass'].
|
||||||
','.$config['db_type'].','.$config['db_host'].','.$config['db_port']);
|
','.$config['db_type'].','.$config['db_host'].','.$config['db_port']);
|
||||||
run_cmd($setup_header);
|
run_cmd($setup_header);
|
||||||
@ -391,14 +411,6 @@ else
|
|||||||
{
|
{
|
||||||
// --> existing install --> update
|
// --> existing install --> update
|
||||||
|
|
||||||
// get user from header and replace password, as we dont know it
|
|
||||||
$old_password = patch_header($config['header'],$config['config_user'],$config['config_passwd']);
|
|
||||||
// register a shutdown function to put old password back in any case
|
|
||||||
register_shutdown_function(function() use (&$config, $old_password)
|
|
||||||
{
|
|
||||||
patch_header($config['header'], $config['config_user'], $old_password);
|
|
||||||
});
|
|
||||||
|
|
||||||
// update egroupware, or single app(s), in later case skip backup
|
// update egroupware, or single app(s), in later case skip backup
|
||||||
$setup_update = $setup_cli.' --update '.escapeshellarg('all,'.$config['config_user'].','.$config['config_passwd'].
|
$setup_update = $setup_cli.' --update '.escapeshellarg('all,'.$config['config_user'].','.$config['config_passwd'].
|
||||||
(empty($config['install-update-app']) ? '' : ',no,'.$config['install-update-app']));
|
(empty($config['install-update-app']) ? '' : ',no,'.$config['install-update-app']));
|
||||||
|
Loading…
Reference in New Issue
Block a user