前文:https://caicongyang.blog.csdn.net/article/details/132049822?spm=1001.2014.3001.5502
运行几天后发现以下问题:
Starting a Gradle Daemon, 4 busy and 2 stopped Daemons could not be reused, use --status for details
FAILURE: Build failed with an exception.
- $ chmod 777 gradlew
- $ ./gradlew build -x test
- Starting a Gradle Daemon, 4 busy and 2 stopped Daemons could not be reused, use --status for details
-
- FAILURE: Build failed with an exception.
-
- * What went wrong:
- Gradle could not start your build.
- > Could not create service of type ResourceSnapshotterCacheService using GradleUserHomeServices.createResourceSnapshotterCacheService().
- > Timeout waiting to lock file hash cache (/cache/itwork/gradle/repository/caches/6.8/fileHashes). It is currently in use by another Gradle instance.
- Owner PID: 97
- Our PID: 97
- Owner Operation:
- Our operation:
- Lock file: /cache/itwork/gradle/repository/caches/6.8/fileHashes/fileHashes.lock
-
- * Try:
- Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
-
- * Get more help at https://help.gradle.org
-
- BUILD FAILED in 1m 47s
- ERROR: Job failed: command terminated with exit code 1
大概意思是就是无法并发打包;
修改后的ci文件如下:
- stages:
- - package
- - docker-build
-
- package:
- stage: package
- script:
- - export GRADLE_USER_HOME=${GRADLE_USER_HOME}/${GROUP_NAME}/${CI_PROJECT_NAME}/.gradle
- - export PATH=GRADLE_USER_HOME/bin:$PATH
- - echo $GRADLE_USER_HOME
- - chmod 777 gradlew
- - ./gradlew build -x test
- - cp build/libs/app.jar ${CACHE_PIPELINE}/app.jar
- only:
- - master
- - tags
- - /^feature-.*$/
- - /^hotfix-.*$/
- - /^bugfix-.*$/
- docker-build:
- stage: docker-build
- script:
- - update_dockerfile
- - docker_build .
- - update_charts_base v3 server
- - chart_build
- only:
- - master
- - tags
- - /^release-.*$/
- - /^hotfix-.*$/
- - /^bugfix-.*$/
- - /^feature-.*$/
-
- .auto_devops: &auto_devops |
- http_status_code=`curl -o .auto_devops.sh -s -m 10 --connect-timeout 10 -w %{http_code} "${CHOERODON_URL}/devops-action/ci?gitlabProjectId=${CI_PROJECT_ID}&pipelineId=${CI_PIPELINE_ID}&token=${Token}&type=base&version=v1"`
- if [ "$http_status_code" != "200" ]; then
- cat .auto_devops.sh
- exit 1
- fi
- source .auto_devops.sh
- before_script:
- - *auto_devops
核心修改点: 打包阶段每个项目设置不同的打包目录
- export GRADLE_USER_HOME=${GRADLE_USER_HOME}/${GROUP_NAME}/${CI_PROJECT_NAME}/.gradle
- export PATH=GRADLE_USER_HOME/bin:$PATH
不知道各位大佬有没有更好的方法呢