Gitlab CI Runner 卡住了,ssh 没有响应

Gitlab CI Runner get stuck, ssh not responding

我在 aws EC2 实例中创建了一个 gitlab runner,我有以下 ci 脚本:

stages:
- unit_test
- cleanup_build_when_fail
- deploy_to_sit

unit_test:
  stage: unit_test
  script:
  - export PATH=$PATH:/opt/gradle/gradle-5.0/bin
  - export SPRING_PROFILES_ACTIVE=test
  - gradle clean test
  - echo "unit_test completed!"
  when: always

 ... with other scripts

有时,unit_test 阶段会在 1 分钟内正确完成。

但有时它会卡住直到超时,当它卡住时,ec2 实例甚至没有响应。我必须重新启动 ec2 实例,以便我可以再次连接到它。这是卡住时的输出:

$ export PATH=$PATH:/opt/gradle/gradle-5.0/bin
$ export SPRING_PROFILES_ACTIVE=test
$ gradle clean test
> Task :clean UP-TO-DATE
> Task :compileJava
> Task :processResources
> Task :classes
> Task :compileTestJava
> Task :processTestResources
> Task :testClasses

我不知道如何解决这个问题,请帮忙。

更新:任务没有超时,这是我从gitlab看到的

Duration: 16 minutes 58 seconds
Timeout: 15m (from project)

终于找到解决办法了,就是OOM。

解决方案是为您的构建设置最大内存限制,例如:nodejs(yarn) 或 spring (gradle)