GitLab:脚本执行后作业不返回,而是在1小时后超时失败

时间:2018-02-21 18:07:33

标签: java maven gitlab gitlab-ci gitlab-ci-runner

在我的.gitlab-ci.yml中,我有以下工作:

init_db:
  stage: build
  script:
    - cd database-migration
    - "mvn clean install exec:java"

执行数据库迁移。它的代码如下所示:

public static void main( String[] args ) {
    doSomeMigration();
    System.out.println("Migration done!");
    System.exit(0);
}

在GitLab的日志中,我最后得到了这个:

Migration done!
ERROR: Job failed: execution took longer than 1h0m0s seconds

所以对我来说,似乎脚本运行正常,但在那之后工作没有结束。你能看出我做错了吗?

修改

数据库迁移的pom.xml如下所示:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.domain</groupId>
  <artifactId>database-migration</artifactId>
  <version>1.0-SNAPSHOT</version>
    <build>
        <plugins>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>

            <plugin>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>exec-maven-plugin</artifactId>
              <version>1.4.0</version>
              <configuration>
                <executable>java</executable>
                <mainClass>com.domain.DatabaseMigrationApp</mainClass>
              </configuration>
            </plugin>

        </plugins>
    </build>
    <packaging>jar</packaging>

  <dependencies>

    <dependency>
       ... database dependency...
    </dependency>

  </dependencies>
</project>

3 个答案:

答案 0 :(得分:0)

尝试将--batch-mode添加到您的mvn CLI选项

答案 1 :(得分:0)

即使您的任务成功,它也已超时,因此您必须增加超时限制。

请参阅以下现有的Stackoverflow问题 GitLab CI Pipeline Stage Timeout

答案 2 :(得分:0)

如果您使用服务docker:dind,请尝试docker:19.03.5-dind。请找到详细信息here