Zadig 文档
Zadig
论坛
关于
Zadig
论坛
关于
v1.10.0
Loading...
      编辑文档
      反馈问题
      社区讨论

    本页导航

    工作流的构建缓存

    本文主要介绍工作流中构建步骤的缓存机制。Zadig 构建支持工作空间缓存、自定义目录缓存、软件包缓存和镜像缓存。Zadig 的缓存无需配置,完全自动化。使用缓存可以提升工作流构建效率。

    系统目前支持对象存储缓存和 PVC 缓存,关于系统缓存配置请参考缓存资源配置。

    # 工作空间缓存

    工作流的缓存

    开启构建高级配置中的缓存配置,选中工作空间$WORKSPACE,工作流执行构建任务、测试工作流执行测试任务时会将本次任务的工作空间(WORKSPACE)缓存到对应的存储介质中。

    使用对象存储作为缓存介质时,工作空间的缓存机制:

    1. 同一工作流,不同服务都有独立的工作空间缓存,互不影响。
    2. 不同工作流,相同服务都有独立的工作空间缓存,互不影响。

    工作流的缓存

    使用集群存储(文件存储类型的 PVC 资源)作为缓存介质时,工作空间的缓存机制:所有的工作流及服务共享使用工作空间缓存。

    工作流的缓存

    工作空间可能包含以下内容:

    1. 构建时拉取的代码和依赖
    2. 构建过程产生的一些临时文件
    3. 构建产物

    某些业务场景下可能不希望使用缓存,或者临时不使用历史缓存进行构建,那么可以通过调整缓存配置达到不使用缓存的目的。

    • 如果在构建中长期不使用缓存,可以在项目 -> 构建,选择对应构建脚本,关闭 缓存配置,如下图所示。

    关闭使用工作空间缓存

    • 如果临时不使用历史缓存,可以在启动工作流时,在高级设置中,选择不使用工作空间缓存,如下图所示。

    临时不使用工作空间缓存

    # 自定义目录缓存

    可以按需使用缓存自定义目录功能,对必要的目录做缓存,如下图所示。

    缓存自定义目录

    # 软件包缓存

    在 Zadig 系统上执行服务构建以及测试时,一般都需要根据实际业务去安装必要的软件包环境。比如编译后端相关代码就需要 Go 环境、Java 环境等,编译前端代码可能需要 NodeJS 等软件包,具体配置请参阅软件包管理。这些软件包会被缓存在系统内置的对象存储中。

    软件包缓存

    # 不同技术栈的最佳实践

    下面以 Java/Golang/NodeJS 项目为例,提供配置构建缓存目录的最佳实践,以供参考。

    # Java

    以 Maven 构建工具为例,其默认配置文件位于 ${M2_HOME}/conf/settings.xml 文件中,可在安装软件包时指定 localRepository 来设置缓存目录,并在构建配置中指定。

    以 Zadig 内置的 maven 3.3.9 为例说明,安装时指定 localRepository 为 $WORKSPACE/.m2/repository。

    mkdir -p $HOME/maven
    tar -C $HOME/maven -xzf ${FILEPATH} --strip-components=1
    
    # customize .m2 dir
    export M2_HOME=$HOME/maven
    mkdir -p $WORKSPACE/.m2/repository
    cat >$HOME/maven/conf/settings.xml <<EOF
    <?xml version="1.0" encoding="UTF-8"?>
    <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
      <localRepository>$WORKSPACE/.m2/repository</localRepository>
      <pluginGroups/>
      <servers/>
      <mirrors>
        <mirror>
          <id>repo1</id>
          <mirrorOf>central</mirrorOf>
          <name>repo1</name>
          <url>http://repo1.maven.org/maven2</url>
        </mirror>
      </mirrors>
      <profiles/>
    </settings>
    EOF
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25

    构建缓存配置如下:

    缓存自定义目录

    # Golang

    Golang 缓存路径通过 $GOCACHE 环境变量控制,可在构建脚本中显式修改。 在应用构建缓存配置的自定义目录中,可以填写上述配置的 $GOCACHE 路径。

    缓存自定义目录

    # NodeJS

    在构建脚本中使用 npm install <*> -g --prefix <指定目录>,再在高级配置中将目录缓存即可。

    缓存自定义目录

    ← 工作流的触发 工作流任务的并发运行→

    资源
    文档
    论坛
    公司
    关于我们
    加入我们
    联系我们
    微信扫一扫
    hello@koderover.com
    上海市浦东软件园

    © 2023 筑栈(上海)信息技术有限公司 沪 ICP 备 19000177 号 - 1

    •  跟随系统
    •  浅色模式
    •  深色模式
    •  阅读模式