name: MYSQL database tests on: push: branches: - '**' paths: - 'tests/integration/databaseTests/**' - 'DocService/sources/databaseConnectors/baseConnector.js' - 'DocService/sources/databaseConnectors/mysqlConnector.js' - '.github/workflows/mysqlDatabaseTests.yml' jobs: mysql-tests: name: MYSQL runs-on: ubuntu-latest steps: - name: Run Mysql DB docker container run: docker run --name ci_mysql -p 8080:3306 -p 8081:33060 -e MYSQL_HOST=127.0.0.1 -e MYSQL_ROOT_PASSWORD=onlyoffice -e MYSQL_DATABASE=onlyoffice -d mysql:latest - name: Check out repository code uses: actions/checkout@v3 - name: Caching dependencies uses: actions/setup-node@v3 with: node-version: '20' cache: 'npm' cache-dependency-path: | ./npm-shrinkwrap.json ./Common/npm-shrinkwrap.json ./DocService/npm-shrinkwrap.json - name: Install modules run: | npm ci npm --prefix Common ci npm --prefix DocService ci - name: Creating service DB configuration run: | echo '{"services": {"CoAuthoring": {"sql": {"type": "mysql", "dbHost": "127.0.0.1", "dbPort": "8080", "dbUser": "root", "dbPass": "onlyoffice"}}}}' >> Common/config/local.json - name: Wait for MySQL to be ready run: | docker exec -e MYSQL_PWD=onlyoffice ci_mysql sh -c 'until mysqladmin ping -uroot --silent; do sleep 1; done' - name: Creating schema run: | docker exec -i -e MYSQL_PWD=onlyoffice ci_mysql mysql -uroot -D onlyoffice < schema/mysql/createdb.sql - name: Run Jest run: npm run "integration database tests"