Skip to content
Snippets Groups Projects
Commit f5ecafe8 authored by Sebastien's avatar Sebastien
Browse files

Merge branch 'tuleap-55-gitlab-ci-test' into 'main'

Add a gitlab-ci file

See merge request !25
parents 691c6e67 9884b3ad
No related branches found
No related tags found
1 merge request!25Add a gitlab-ci file
Pipeline #613 passed
......@@ -4,5 +4,15 @@ APP_SECRET='$ecretf0rt3st'
SYMFONY_DEPRECATIONS_HELPER=999999
PANTHER_APP_ENV=panther
PANTHER_ERROR_SCREENSHOT_DIR=./var/error-screenshots
MAILER_DSN=null://null
MAILER_SENDER=contact@localhost.com
SYMFONY_SECRET=0f817363a768f111a17d2522b8d7e2d72cf738b1
LEGACY_URL=http://legacy/
LEGACY_URL_EXTERNAL=http://localhost/legacy/
LEGACY_EXTERNAL_PREFIX=/legacy
APP_DEBUG=1
ENV=test
LOG_LEVEL=DEBUG
PHP_INI_DATE_TIMEZONE="Europe/Paris"
DATABASE_URL="mysql://rekallfrwsmember:sm4SyZVPu6wpjZfg@mysql:3306/rekallfrwsmember?serverVersion=5.6&charset=utf8"
image: docker:latest
services:
- docker:dind
variables:
MYSQL_USER: rekallfrwsmember
MYSQL_DATABASE: rekallfrwsmember
MYSQL_PASSWORD: sm4SyZVPu6wpjZfg
MYSQL_ROOT_PASSWORD: root
TEST_IMAGE: registry.gitlab.tetras-libre.fr/rekall/memorekall-member-new
CI_REGISTRY: registry.gitlab.tetras-libre.fr
TZ: "Europe/Paris"
composer:
stage: test
cache:
key: memorekall-member-global-cache-key
paths:
- $CI_PROJECT_DIR/vendor/
- $CI_PROJECT_DIR/node_modules/
before_script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker pull $TEST_IMAGE
- docker network ls -f name=rekall || docker network create rekall
- docker ps -a -f name=mysql | grep mysql && docker rm mysql || true
- docker ps -a -f name=rekall | grep rekall && docker rm rekall || true
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" || $CI_PIPELINE_SOURCE == "web"'
- if: '$CI_COMMIT_MESSAGE =~ /test/'
- if: '$CI_COMMIT_BRANCH =~ /test/ || $CI_COMMIT_BRANCH == "production" || $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
script:
- docker run --rm --network rekall -e TZ=$TZ -e MYSQL_DATABASE=$MYSQL_DATABASE -e MYSQL_USER=$MYSQL_USER -e MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD -e MYSQL_PASSWORD=$MYSQL_PASSWORD -v ${CI_PROJECT_DIR}/docker/mysql/init_db_d:/docker-entrypoint-initdb.d -d --name=mysql mysql:5.6
- docker run --rm --name rekall --network rekall -v ${CI_PROJECT_DIR}:/sites/memorekall/www/web_dev -v /log:/sites/memorekall/www/web_dev/log --entrypoint /sites/memorekall/www/web_dev/tools/ci-job.sh $TEST_IMAGE
after_script:
- docker stop mysql
- docker stop rekall
- docker network rm rekall
artifacts:
when: always
expire_in: 1 week
paths:
- tests/_output
......@@ -108,7 +108,7 @@
],
"tests": "php ./vendor/bin/phpunit",
"phpcs": "php ./vendor/bin/phpcs src/ tests/",
"phpstan": "vendor/bin/phpstan analyse src/ tests/unit/ tests/functional/",
"phpstan": "php -d memory_limit=4G vendor/bin/phpstan analyse src/ tests/unit/ tests/functional/",
"php-cs-fixer": "tools/php-cs-fixer/vendor/bin/php-cs-fixer fix src/ tests/unit/ tests/functional/"
},
"conflict": {
......
......@@ -34,7 +34,8 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -yq \
libzip-dev \
zlib1g-dev \
libxml2-dev \
libicu-dev
libicu-dev \
netcat
RUN docker-php-ext-configure gd --with-freetype --with-jpeg
......
#!/bin/bash
#!/bin/bash
DIR=$(realpath $(dirname $0))
docker login registry.gitlab.tetras-libre.fr
docker build -t registry.gitlab.tetras-libre.fr/rekall/memorekall-member-new $DIR/docker/symfony
docker push registry.gitlab.tetras-libre.fr/rekall/memorekall-member-new
#!/bin/bash
REDBOLD='\033[0;31;1m'
GREENBOLD='\033[0;32;1m'
BOLD='\033[1m'
NORMAL='\033[0m'
run_step(){
name=$1
shift
echo -e "${BOLD} Running step : $name ${NORMAL}"
$@
ret=$?
if [ $ret -ne 0 ];
then
echo -e "${REDBOLD}$name failed${NORMAL}"
exit $ret
else
echo -e "${GREENBOLD}$name sucess${NORMAL}"
fi
}
cd $(dirname $(dirname $0))
if [ ! -f ".env" ]; then
cp .env.test .env
fi
run_step "Starting apache" apache2ctl -DFOREGROUND &
run_step "PHP dependencies" composer install
run_step "Javascript dependencies" npm install
run_step "Assets compilation" npm run dev
echo "Waiting for mysql to be up and running"
until nc -z -v -w30 mysql 3306; do
sleep 5
done
echo "Doctrine create DB"
php bin/console doctrine:migrations:migrate --no-interaction --env=test
echo "Doctrine load fixtures"
php bin/console doctrine:fixtures:load --no-interaction --env=test
run_step "Unit and functional tests" composer tests
run_step "Php Code Sniffer" composer phpcs
run_step "Php Static analysis" composer phpstan
#run_step "Javascript ESLint" npm run lint
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment