gitlab-ci 缓存与环境

使用了cat /opt/gitlab/embedded/service/gitlab-rails/VERSION查看版本

当前版本:12.3.5-ee

在开发中遇到了一些问题:


stages:

    - build

job_build_qa:

    stage: build

    only:

        - qa

    script:

        - echo "测试"

cache

    key: '$CI_JOB_STAGE-$CI_COMMIT_REF_NAME'

    untracked: true

    policy: pull

    paths:

        - node_modules/

  • 期望:node_modules文件不要被删除,下次npm i安装依赖会快很多

  • 结果:当push qa分支后,自动构建,始终显示removing node_modules

查看了一些文章后,了解了缓存的原来,查看到了所在位置。并且还知道高版本ci是会首先被重置,然后再获取缓存的。


缓存存放位置
缓存与重置规则

思考:

解决:可以在.gitlab-ci.yml配置中利用cp命令,拷贝当前目录下的所有文件到其他文件夹中,再进行npm run start


job_build_qa:

    stage: build

    only:

        - qa

    variables:

        PATH_QA: '../xxx-qa'

    script:

        - npm install

        - npm run qa:build

        - rm -rf $PATH_QA

        - cp -rf ../xxx $PATH_QA

        - cd $PATH_QA

        - pm2 show xxx-qa && pm2 delete xxx-qa

        - npm run qa:start

总结:这样转移文件夹部署的方式,可以解决多个环境部署问题。如果你使用的nuxt,将不需要再nuxt.config.js文件中配置buildDir: `.nuxt-${env}`。可以直接有文件夹命名对应的环境。
坑:gitlab最好是在自己或公司服务器搞好了上传到线上服务器,不然硬盘内存不够用,会导致页面500

你可能感兴趣的:(gitlab-ci 缓存与环境)