在 GitLab CI 上的测试脚本之前执行 mysql 命令
Execute mysql command before test script on GitLab CI
我想在测试脚本执行之前创建测试数据库。我包含了 mysql 服务,但我找不到 运行 mysql 命令的方法。
我运行mysql ...
在before-script
,但它一直抱怨
/bin/bash: line 57: mysql: command not found
这是我的.gitlab-ci.yml
↓
image: maven:3.5-jdk-8
services:
- mysql
variables:
MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true"
MYSQL_ROOT_PASSWORD: example
cache:
paths:
- .m2/repository
compile:
stage: build
script:
- 'mvn $MAVEN_CLI_OPTS test-compile'
verify:
stage: test
before_script:
- mysql --user=root --password=\"$MYSQL_ROOT_PASSWORD\" --host=mysql < src/main/sql/database.sql
script:
- 'mvn $MAVEN_CLI_OPTS verify'
artifacts:
paths:
- target/*.jar
您 运行 MySQL 在另一个容器中作为要连接的服务。 maven:3.5-jdk-8
图像不包含您使用 mysql
.
调用的 mysql-client
包
所以要解决;在您之前的命令中安装 mysql-client
:
before_script:
- apt-get update -q && apt-get install -qqy --no-install-recommends mysql-client
- mysql --user=root --password=\"$MYSQL_ROOT_PASSWORD\" --host=mysql < src/main/sql/database.sql
我想在测试脚本执行之前创建测试数据库。我包含了 mysql 服务,但我找不到 运行 mysql 命令的方法。
我运行mysql ...
在before-script
,但它一直抱怨
/bin/bash: line 57: mysql: command not found
这是我的.gitlab-ci.yml
↓
image: maven:3.5-jdk-8
services:
- mysql
variables:
MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true"
MYSQL_ROOT_PASSWORD: example
cache:
paths:
- .m2/repository
compile:
stage: build
script:
- 'mvn $MAVEN_CLI_OPTS test-compile'
verify:
stage: test
before_script:
- mysql --user=root --password=\"$MYSQL_ROOT_PASSWORD\" --host=mysql < src/main/sql/database.sql
script:
- 'mvn $MAVEN_CLI_OPTS verify'
artifacts:
paths:
- target/*.jar
您 运行 MySQL 在另一个容器中作为要连接的服务。 maven:3.5-jdk-8
图像不包含您使用 mysql
.
mysql-client
包
所以要解决;在您之前的命令中安装 mysql-client
:
before_script:
- apt-get update -q && apt-get install -qqy --no-install-recommends mysql-client
- mysql --user=root --password=\"$MYSQL_ROOT_PASSWORD\" --host=mysql < src/main/sql/database.sql