1. 授权认证
  2. 获取用户个人信息
  3. 项目协同
  4. 代码托管
  5. 持续集成
  6. 制品仓库
  7. 测试管理
  1. 项目协同
  2. 代码仓库
  3. DevOps 实践之旅
  4. 一分钟开始持续集成之旅
  5. 持续部署
  6. 制品库

持续集成的缓存目录

功能介绍

项目本地安装依赖包时,会把下载的文件缓存起来,所以下次安装快很多。比如 npm install 会在项目中生成 ./node_modules,而缓存在 ~/.npm 目录,后者体积更小,更通用。

如果使用「CODING 提供的云主机」进行持续集成构建,每次都会创建新的虚拟服务器,构建完毕即销毁,所以需要指定「缓存目录」保存起来用于加速下次构建。

如果使用「自定义构建节点」进行持续集成构建,构建完毕不会销毁服务器,所以无需指定「缓存目录」。

如果在持续集成中使用 Docker,则需要把「缓存目录」挂载到 Docker 中。

默认环境构建

「默认环境」是 Linux 系统(root 用户),缓存目录如下:

包管理工具 缓存目录
Maven /root/.m2/
Gradle /root/.gradle/
npm /root/.npm/
composer /root/.composer/
pip3 /root/.cache/pip/
yarn /usr/local/share/.cache/yarn/

在持续集成设置中直接勾选对应的「缓存目录」即可,如果缺少也可以自行录入。

CODING 持续集成 缓存目录

Docker 环境构建

如果使用 Docker 环境构建,先勾选「缓存目录」,再挂载到 Docker 中即可(一般为 root 用户)。比如下列 Jenkinsfile 挂载了 npm 缓存:

pipeline {
  agent any
  stages {
    stage('检出') {
      steps {
        checkout([
          $class: 'GitSCM',
          branches: [[name: env.GIT_BUILD_REF]], 
          userRemoteConfigs: [[url: env.GIT_REPO_URL, credentialsId: env.CREDENTIALS_ID]]
        ])
      }
    }
    stage('构建') {
      steps {
        script {
          docker.image('node:12').inside('-v /root/.npm:/root/.npm') {
            sh 'npm install'
          }
        }
      }
    }
  }
}

如果使用「自定义构建节点」,需按照服务器的用户名,比如腾讯云 Ubuntu 服务器的默认用户名为 ubuntu,所以缓存目录为 /home/ubuntu/.npm/,对应的代码为:

docker.image('node:12').inside('-v /home/ubuntu/.npm:/root/.npm') {
  sh 'npm install'
}

上一篇持续集成的环境变量
最近更新
感谢反馈有用
感谢反馈没用