diff --git a/.travis.yml b/.travis.yml index fc68178163..56d3523566 100644 --- a/.travis.yml +++ b/.travis.yml @@ -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 - name: "Enterprise Integrations Tests on MySQL" - services: mysql + services: docker stage: Tests if: branch IN (release\/V2.7.*, hotfix-2.7\/.*) OR commit_message =~ /\[execute tests on MySQL\]/ - before_install: - - mysql -u root --password="" < scripts/my_sql_travis.sql + before_install: source scripts/mysql/start.sh mysql:5.6.26 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 script: diff --git a/scripts/mysql/common.sh b/scripts/mysql/common.sh new file mode 100644 index 0000000000..d10c45f3e7 --- /dev/null +++ b/scripts/mysql/common.sh @@ -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 " +} + +if [[ $# -ne 1 ]]; then + usage + exit 1 +fi \ No newline at end of file diff --git a/scripts/mysql/start.sh b/scripts/mysql/start.sh new file mode 100644 index 0000000000..14b4e0f8e8 --- /dev/null +++ b/scripts/mysql/start.sh @@ -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" \ No newline at end of file