【问题标题】:Execute mysql command before test script on GitLab CI在 GitLab CI 上的测试脚本之前执行 mysql 命令
【发布时间】:2017-10-22 10:45:02
【问题描述】:

我想在我的测试脚本执行之前创建测试数据库。我已经包含了 mysql 服务,但是我找不到运行 mysql 命令的方法。

我在before-script 中运行mysql ...,但它一直在抱怨

/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 docker gitlab gitlab-ci


    【解决方案1】:

    您在不同的容器中运行 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-28
      • 2019-09-28
      • 1970-01-01
      • 2014-07-07
      • 1970-01-01
      • 1970-01-01
      • 2022-08-14
      • 2019-05-13
      相关资源
      最近更新 更多