Previous article: https://caicongyang.blog.csdn.net/article/details/132049822?spm=1001.2014.3001.5502
After running for a few days, the following problems were discovered:
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
It probably means that concurrent packaging cannot be done;
The modified ci file is as follows:
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
Core modification points: Set a different packaging directory for each project during the packaging phase
- export GRADLE_USER_HOME=${GRADLE_USER_HOME}/${GROUP_NAME}/${CI_PROJECT_NAME}/.gradle
- export PATH=GRADLE_USER_HOME/bin:$PATH
I don’t know if you guys have a better way.