2017-10-22 4 views
0

테스트 스크립트를 실행하기 전에 테스트 데이터베이스를 만들고 싶습니다. mysql 서비스가 포함되어 있지만 mysql 명령을 실행할 수있는 방법을 찾을 수 없습니다.GitLab CI에서 테스트 스크립트 전에 mysql 명령을 실행하십시오.

내가 before-script에서 mysql ... 실행하지만, 여기

/bin/bash: line 57: mysql: command not found 

입니다 불평을 계속 내 .gitlab-ci.yml 당신은에 연결하는 서비스로 다른 용기에 MySQL이 실행 ↓

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 

답변

2

. 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 
+0

고맙습니다! 당신이 제공 한 코드는 약간의 오타가 있습니다 ('mysq-client' ->'mysql-client'). 그것을 고치고, 나의 암호의 따옴표를 고친 후에, 그것은 작동한다. –

+0

감사합니다. 오타가 수정되었습니다. –

관련 문제