TeamCity Agent 工件缓存问题:代理从所有先前构建中累积工件

TeamCity Agent artifacts cache issue: agent accumulates artifacts from all prev builds

我在 docker-compose.yml

中设置了 TeamCity
version: "3"
services:
  server:
    image: jetbrains/teamcity-server:2021.1.2
    ports:
      - "8112:8111"
    volumes:
      - ./data_dir:/data/teamcity_server/datadir
      - ./log_dir:/opt/teamcity/logs
  db:
    image: mysql
    ports:
     - "3306:3306"
    volumes:
     - ./mysql:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=111
      - MYSQL_DATABASE=teamcity
  teamcity-agent-1:
    image: jetbrains/teamcity-agent:2021.1.2-linux-sudo
    environment:
      - SERVER_URL=http://server:8111
      - AGENT_NAME=docker-agent-1
      - DOCKER_IN_DOCKER=start
    privileged: true
    container_name: docker_agent_1
    ipc: host
    shm_size: 1024M
  teamcity-agent-2:
    image: jetbrains/teamcity-agent:2021.1.2-linux-sudo
    environment:
      - SERVER_URL=http://server:8111
      - AGENT_NAME=docker-agent-2
      - DOCKER_IN_DOCKER=start
    privileged: true
    container_name: docker_agent_2
    ipc: host
    shm_size: 1024M
  teamcity-agent-3:
    image: jetbrains/teamcity-agent:2021.1.2-linux-sudo
    environment:
      - SERVER_URL=http://server:8111
      - AGENT_NAME=docker-agent-3
      - DOCKER_IN_DOCKER=start
    privileged: true
    container_name: docker_agent_3
    ipc: host
    shm_size: 1024M

我在 teamcity 代理中进行了 E2E 测试 运行。作为测试执行的结果,它们会生成 HTML 报告,如果测试失败,它们也会生成视频报告。在没有 TeamCity 的情况下,一切都在本地按预期工作。当我将它移动到 TeamCity 时,我设置为将文件夹“报告”保留在工件中。我实际上有以下行为:

我的问题在 2014 年的 jetbrains 支持中得到了准确描述 https://teamcity-support.jetbrains.com/hc/en-us/community/posts/206845765-Build-Agent-Artifacts-Cache-Cleanup

但我尝试了那里的差异设置,不幸的是没有运气

我自己尝试了什么,什么没有帮助:

  1. 试图清理\系统。 artifacts_cache 文件夹。工件仍在增长

  2. 试图找到代理的配置

在 /data/teamcity_agent/conf/buildAgent.properties 我放置了 2 个新设置

teamcity.agent.filecache.publishing.disabled=true
teamcity.agent.filecache.size.limit.bytes=1

代理重新启动后,我在 TeamCity 网络界面中看到了这 2 个新设置,这意味着设置已应用

但行为仍然相同。也许应该使用其他设置,但我没能找到

  1. 在代理设置中按下“清理此代理上的资源”有什么帮助,但用手按下不是这样

如果我分配另一个代理从头开始累积,这看起来像是缓存问题。

欢迎任何建议

看来我找到了答案

https://www.jetbrains.com/help/teamcity/2021.1/clean-checkout.html#Automatic+Clean+Checkout

应在 Create/Edit 构建配置 > 版本控制设置页面上选择“构建前清除所有文件”选项