GitLab CI/CD runner 执行失败

GitLab CI/CD runner fails to execute

我正在尝试使用 gitlab CI/CD。我正在使用 Ubuntu 服务器和 Spring 使用 Maven 启动。一切都很好,runner 开始管道作业,但它会收到很多模式错误“警告:无法删除目标/...”,即使我在 .yaml 管道脚本 gitlab-[=25= 中调用简单的 echo 'something' ].我发现如果我删除 /home/gitlab-runner/builds 那么一切都会开始正常工作,直到 /builds 再次生成。我究竟做错了什么?我已经尝试重新安装 runner,创建 gitlab-user,脚本的不同变体 ^ 在我手动删除 builds 文件夹之前没有任何效果。但是,gitlab ci/cd 上也有 js 前端,一切正常。请帮助我!

这是我在尝试让我的 java spring 启动 maven 管道工作时遇到的错误:

enter image description here

gitlab-ci.yaml 代码在这里:

stages:
    - test
    - package
    - deploy
    # - sonar

test:
  stage: test
  only:
    - master
    - merge_requests
  except:
    - tags
  script:
    - echo 'test are running i swear!!!!!!'
    - sudo mvn clean
    - sudo systemctl stop socnet.service
  
package:
  stage: package
  only:
    - master
  except:
    - tags
  script:
    - sudo mvn package -Dmaven.test.skip=true
      
deploy_to_server:
  stage: deploy
  only:
    - master
  except:
    - tags
  script:
    - sudo systemctl restart socnet.service

从您的 .gitlab-ci.yml 中删除 sudo

使用 sudo 将以 root 用户身份执行 mvn package,因此所有生成的文件都以 root 为所有者。

当 gitlab-runner 开始工作并继续清理以前生成的文件时,它仍然没有特权,因此无法删除 root 拥有的文件。

您可能需要将以下变量添加到 .gitlab-ci.yml 文件中,以便将 Maven 依赖项缓存的位置更改为项目目录中的位置:

variables:
  MAVEN_OPTS: "-Dhttps.protocols=TLSv1.2 -Dmaven.repo.local=$CI_PROJECT_DIR/.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"

https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Maven.gitlab-ci.yml