Your browser was unable to load all of the resources. They may have been blocked by your firewall, proxy or browser configuration.
Press Ctrl+F5 or Ctrl+Shift+R to have your browser try again.

Different Storage Directory Setting Problem #4175

Laba42 ·

Since we are running out of disk space on our global storage space, I wanted to redistribute the storage location.

Example:
I have set the UserAttriubte of the server to
storageDir=D:\QB9\StorageDirServer
and that of the Build Agent to
storageDir=D:\QB9\StorageDirAgent

In the Storage Directory Setting of the Advanced Settings i have the following code.

${groovy:
import com.pmease.quickbuild.Context

def nodeAttribute = system.storageDir 
if (node.hasAttribute("storageDir")) 
   nodeAttribute = node.getAttribute("storageDir")
Context.getLogger().warn("StorageDircetorySetting from Advanced Settings: StorageDir Attributes = " + nodeAttribute)
return nodeAttribute
}

When I now run a configuration on the server node the logger prints
StorageDircetorySetting from Advanced Settings: StorageDir Attribute = D:\QB9\StorageDirServer
and the build.publishDir is set to D:\QB9\StorageDirServer\builds\b0xy\xy
That's okay.

but when I run the configuration on the agent the logger prints correctly
StorageDircetorySetting from Advanced Settings: StorageDir Attribute = D:\QB9\StorageDirAgent
but the variable build.publishDir has still the path form the server node D:\QB9\StorageDirServer\builds\b0xy\xy
instead of D:\QB9\StorageDirAgent\builds\b0xy\xy

what am I doing wrong

QB Version = 9.0.9, 2019-05-04

  • solved #2
  • replies 1
  • views 34
  • stars 0
robinshen ADMIN ·

By default all artifacts are stored on server, even if you run the build on agent. So the storage directory will always evaluated on server instead of agent. However you may configure "artifact storage" to store artifacts on particular agent all builds of that configuration will store artifacts on agent and the artifact storage directory will be evaluated on that agent.

But generally we do not suggest to distribute artifacts if performance is not an issue. As managing artifacts on several issues can be a headache over time.