gitlab-ci部署前端项目关于缓存的问题

发布于 2022-09-12 04:16:03 字数 835 浏览 23 评论 0

# 流程
stages:
  - install
  - build
  - deploy

# 缓存
cache:
  paths:
    - node_modules/
    - dist/

# 安装依赖
install:
  stage: install
  only:
    - test
  tags:
    - test-vue
  script:
    - cnpm install
    - whoami
    - ls

# 构建
build:
  stage: build
  only:
    - test
  tags:
    - test-vue
  script:
    - pwd 
    - whoami
    - npm run build
  artifacts:
    name: 'bundle'
    paths: 
      - dist/

# 部署开发服务器
deploy:
  stage: deploy
  only:
    - test
  tags:
    - test-vue
  script:
    - "[[ -z ${CI_PROJECT_PATH_SLUG} ]] && echo 'CI_PROJECT_PATH_SLUG is empty.' && exit 1"
    - "webpath=/www/web/${CI_PROJECT_PATH_SLUG}"
    - rsync -azv dist/  ${webpath}
    - echo ${webpath}

问题在全部设置了cache,然后部署的时候读取了dist里面的缓存,这样部署的都是缓存,可是不设置缓存,在不同job里面生成的内容没办法进入下一阶段,就会提示找不到文件的问题,该如何解决?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

秉烛思 2022-09-19 04:16:03

题主把cache放在根节点,就会在每个阶段的job中都重新拉取一次缓存,更新一次缓存。

Gitlab-CI,其实可以为每个不同的job定制不同的缓存和策略。

把缓存设置放到job里:

  1. install的时候拉取并更新缓存
  2. build的时候只拉取install更新的缓存,并生成dist的artifacts
  3. deploy的时候只用artifacts生成的dist,不用缓存。
# 流程
stages:
  - install
  - build
  - deploy

# 安装依赖
install:
  stage: install
  only:
    - test
  tags:
    - test-vue
  # 拉取并更新缓存
  cache:
    paths:
      - node_modules/
    policy: pull-push
  script:
    - cnpm install
    - whoami
    - ls

# 构建
build:
  stage: build
  only:
    - test
  tags:
    - test-vue
  # 只拉取缓存
  cache:
    paths:
      - node_modules/
    policy: pull
  script:
    - pwd 
    - whoami
    - npm run build
  artifacts:
    name: 'bundle'
    paths: 
      - dist/

# 部署开发服务器
deploy:
  stage: deploy
  only:
    - test
  tags:
    - test-vue
  script:
    - "[[ -z ${CI_PROJECT_PATH_SLUG} ]] && echo 'CI_PROJECT_PATH_SLUG is empty.' && exit 1"
    - "webpath=/www/web/${CI_PROJECT_PATH_SLUG}"
    - rsync -azv dist/  ${webpath}
    - echo ${webpath}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文