forked from GibbonEdu/core
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.gitlab-ci.yml
80 lines (75 loc) · 2.6 KB
/
.gitlab-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
before_script:
# install apt packages
- apt-get update -qy
- apt-get install -qy git zip unzip zlib1g-dev gettext locales
# install php extensions
- docker-php-ext-install zip gettext pdo_mysql > /dev/null
# properly setup php
- cp -pdf /usr/local/etc/php/php.ini-development /usr/local/etc/php/php.ini
- php --ini
# install composer
- mkdir $HOME/bin
- php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
- php -r "if (hash_file('SHA384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
- php composer-setup.php --install-dir=$HOME/bin --filename=composer
- php -r "unlink('composer-setup.php');"
- export PATH=$HOME/bin:$HOME/.phpunit/vendor/bin:$HOME/.composer/vendor/bin:$PATH
# run test server for codeception tests
- php -S 127.0.0.1:8888 -t $CI_PROJECT_DIR >/dev/null 2>&1 &
# install codeception globally in test environment
- COMPOSER_HOME=$HOME/.composer composer global require "codeception/codeception:2.1.*@dev" --no-progress
# install phpunit globally in test environment, but in different composer home
- COMPOSER_HOME=$HOME/.phpunit composer global require "phpunit/phpunit" "$PHPUNIT_VERSION" --no-progress
# install dependencies for test
- composer install --prefer-dist --no-interaction --no-progress
# setup system locale for test
- echo -e "es_ES.UTF-8 UTF-8\nfr_FR.UTF-8 UTF-8\nzh_TW.UTF-8 UTF-8" > /etc/locale.gen
- cat /etc/locale.gen
- locale-gen es_ES.utf8
- locale-gen fr_FR.utf8
- locale-gen zh_TW.utf8
- localedef --list-archive
- locale -a
services:
- mariadb:latest
variables:
# supporess interative prompt from debian-based OS
DEBIAN_FRONTEND: noninteractive
# variables required for Gibbon to test with
TEST_ENV: codeception
CI_PLATFORM: gitlab_ci
GIT_SUBMODULE_STRATEGY: recursive
ABSOLUTE_URL: http://127.0.0.1:8888
DB_HOST: mariadb
DB_NAME: gibbon_test
DB_USERNAME: gibbon_test
DB_PASSWORD: gibbon_password
# variables to setup mariadb docker
MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
MYSQL_DATABASE: gibbon_test
MYSQL_USER: gibbon_test
MYSQL_PASSWORD: gibbon_password
php:7.0:
image: php:7.0
variables:
PHPUNIT_VERSION: ^6
script:
- composer test
tags:
- git-annex
php:7.1:
image: php:7.1
variables:
PHPUNIT_VERSION: ^6
script:
- composer test
tags:
- git-annex
php:7.2:
image: php:7.2
variables:
PHPUNIT_VERSION: ^6
script:
- composer test
tags:
- git-annex