为什么缓存不工作在这个代码从gitlab-ci?



给出下面的代码,从我的项目的。gitlab-ci.xml中提取,我想知道为什么缓存不工作。

注意,有三个与package_install阶段相关的阶段,每个环境一个。在每一步中,都会打包一个java/maven和一个angular项目。我是否需要在每个步骤中调用缓存或引用缓存?还是有其他问题?

image: XXX
stages:
- package_install
- xxx

variables:
PROJECT_NAME_BACK: contaspublicas-backend
PROJECT_NAME_FRONT: contaspublicas-frontend

cache:

- key: $PROJECT_NAME_BACK
paths:
- ${CI_PROJECT_DIR}/.m2/repository/
- key: $PROJECT_NAME_FRONT
paths:
- node_modules

package_install_testes: #Skips testes, pois serão executados na fase de teste
stage: package_install
script:
- cd $PROJECT_NAME_BACK
- mvn -Ptest install -DskipTests=true 
- cd ..
- cd $PROJECT_NAME_FRONT
- npm ci 
- ng build --configuration test --base-href .
- cd dist/contaspublicasng
- jar cvf contaspublicasng.war .
artifacts:
paths:
- contaspublicas-backend/target/*.war
- contaspublicas-backend/target/*.jar
- $PROJECT_NAME_FRONT/dist/contaspublicasng/contaspublicasng.war
except:
- main
- homolog

package_install_homolog: #Skips testes, pois serão executados na fase de teste
stage: package_install
script:
- cd $PROJECT_NAME_BACK
- mvn -Phml install -DskipTests=true
- cd ..
- cd $PROJECT_NAME_FRONT
- npm ci
- ng build --configuration hml --base-href .
- cd dist/contaspublicasng
- jar cvf contaspublicasng.war .
artifacts:
paths:
- contaspublicas-backend/target/*.war
- contaspublicas-backend/target/*.jar
- $PROJECT_NAME_FRONT/dist/contaspublicasng/contaspublicasng.war
only:
- homolog

package_install_main: #Skips testes, pois serão executados na fase de teste
stage: package_install
script:
- cd $PROJECT_NAME_BACK
- mvn versions:set -DremoveSnapshot
- mvn -Pprod install -DskipTests=true
- cd ..
#- echo versao=$(ls starbackend/target/ | grep war | cut -d '-' -f 2 | sed -e 's/.war$//') >> build.env 
- echo VERSAO=$(ls $PROJECT_NAME_BACK/target/ | find . -type f -name *.war | cut -d '-' -f 2 | sed -e 's/.war$//') >> build.env
- cd $PROJECT_NAME_FRONT
- npm ci
- ng build --configuration prod --base-href .
- cd dist/contaspublicasng
- jar cvf contaspublicasng.war .
artifacts:
paths:
- contaspublicas-backend/target/*.war
- contaspublicas-backend/target/*.jar
- $PROJECT_NAME_FRONT/dist/contaspublicasng/contaspublicasng.war
reports:
dotenv: build.env
only:
- main

缓存的方式在管道中不起作用

您需要告诉maven使用那里配置的目录:

cache:
- key: $PROJECT_NAME_BACK
paths:
- ${CI_PROJECT_DIR}/.m2/repository/

smth。如:

variables: 
MAVEN_OPTS: "-Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository"

相关内容

最新更新