use the same approach to start mysql as in bamboo [execute tests on MySQL]

This commit is contained in:
rodicasutu
2020-10-28 17:11:05 +02:00
parent 31769d5095
commit cf8e32bfff
3 changed files with 64 additions and 3 deletions

View File

@@ -72,11 +72,10 @@ jobs:
- travis_retry travis_wait 80 mvn -B -q clean install -Puse-mysql -DskipTests -Dskip.integrationtests=false -Dmy.db.name=alfresco -Dmy.db.port=3306 -Dcommunity -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn - travis_retry travis_wait 80 mvn -B -q clean install -Puse-mysql -DskipTests -Dskip.integrationtests=false -Dmy.db.name=alfresco -Dmy.db.port=3306 -Dcommunity -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
- name: "Enterprise Integrations Tests on MySQL" - name: "Enterprise Integrations Tests on MySQL"
services: mysql services: docker
stage: Tests stage: Tests
if: branch IN (release\/V2.7.*, hotfix-2.7\/.*) OR commit_message =~ /\[execute tests on MySQL\]/ if: branch IN (release\/V2.7.*, hotfix-2.7\/.*) OR commit_message =~ /\[execute tests on MySQL\]/
before_install: before_install: source scripts/mysql/start.sh mysql:5.6.26
- mysql -u root --password="" < scripts/my_sql_travis.sql
install: install:
- travis_retry travis_wait 60 mvn -B -q clean install -DskipTests -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -f rm-community/pom.xml -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn - travis_retry travis_wait 60 mvn -B -q clean install -DskipTests -Dmaven.javadoc.skip=true -Dmaven.source.skip=true -f rm-community/pom.xml -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
script: script:

18
scripts/mysql/common.sh Normal file
View File

@@ -0,0 +1,18 @@
#!/usr/bin/env bash
CONTAINER_NAME=alfresco-db-mysql
MYSQL_USER=alfresco
MYSQL_ROOT_PASSWORD=alfresco
MYSQL_DATABASE=alfresco
MYSQL_HOST=127.0.0.1
MYSQL_PORT=3306
usage () {
echo "Usage: $0 <image>"
}
if [[ $# -ne 1 ]]; then
usage
exit 1
fi

44
scripts/mysql/start.sh Normal file
View File

@@ -0,0 +1,44 @@
#!/bin/bash
set -e
. $(dirname $0)/common.sh
echo "============================================"
echo "Generate custom config file"
echo "============================================"
rm -rf /tmp/Docker
mkdir -p /tmp/Docker
echo "
[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8
innodb_locks_unsafe_for_binlog = 1
default_storage_engine = InnoDB
max_connections = 275
lock_wait_timeout = 5
innodb_buffer_pool_size = 1G
innodb_additional_mem_pool_size = 16M
innodb_log_file_size = 256M
innodb_log_buffer_size = 16M
innodb_data_file_path = ibdata1:64M:autoextend
innodb_autoextend_increment = 64
init_file=/etc/mysql/conf.d/init-file.sql
" > /tmp/Docker/config-file.cnf
echo "
GRANT ALL on $MYSQL_USER.* to '$MYSQL_DATABASE'@'%' identified by '$MYSQL_ROOT_PASSWORD' with grant option;
FLUSH HOSTS;
FLUSH PRIVILEGES;
" > /tmp/Docker/init-file.sql
echo "============================================"
echo "Pulling and Running $1"
echo "============================================"
sg docker "docker run -p $MYSQL_PORT:3306 -v /tmp/Docker:/etc/mysql/conf.d --name $CONTAINER_NAME -e
MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD -e MYSQL_USER=$MYSQL_USER -e MYSQL_DATABASE=$MYSQL_DATABASE -d $1"
sleep 120
# The init_file option should be enough, but some old version of MariaDB do not honor it...
docker exec -t $CONTAINER_NAME mysql -v -h $MYSQL_HOST --port=$MYSQL_PORT -u root --password=$MYSQL_ROOT_PASSWORD -e "source /etc/mysql/conf.d/init-file.sql"