#1866  Unity game build scenario
Closed
sokharev opened 1 week ago

Hello, thank you for OneDev.

We've used jenkins or/and gitlab runner for building Unity game projects and now trying to use OneDev Builds, but can't figure how to cover following scenario for 'windows shell execute' build machine:

  1. Game repo typically quite big( can be 10-100GB ) , so pull/checkout isn't fast
  2. Because of p1 it's good to have persistent workspace named for example c:/builds/dev (or c:/builds/stable for stable branch) which not wiped after each build
  3. Each build iteration just fetching new changes( and doing reset if needed)

===

Question : is it possible to setup job workspace somehow constant(may be i'am just missing it from docs)? or any other method to be 'persistant repo/folder'. Closest thing i've found is 'Setup Cache' step - but as i understanding it's tries to put all things(gigabytes) of stuff and download on demand - it's also wastage. P.S. Also our windows agent hangs with timeout on 'Downloading job dependencies' with timeout and pressing button 'TEST' hangs on 'Connecting to server' BUT Agents sections shows that agent is online( and i can't for example restart it )

Robin Shen commented 1 week ago

Unfortunately OneDev does not have concept of constant workspace. Build workspaces are cleaned up and need to be repopulated each time job runs to better isolate different job runs. If large binaries are tracked via git lfs, and checkout step is configured to only checkout one depth, it should be pretty fast on a fast network.

As to build agent hanging on downloading job dependencies, please check network connection from agent to server (test the server url specified in agent.properties) while this issue happens.

sokharev commented 1 week ago

Thank you for clarification, as workaround perhaps i can do git checkout phase manualy - this will allow to 'stay constant workspace'. But problem with network looks strange. here our configuration:

  1. 'first' linux hetzner cloud server with onedev server on it with firewall enabled - but second machine in white list
  2. 'second' hetzner windows cloud server with agent on it - also firewall enabled - the strange thing that logs on agent shows that it's connected (and server too) BUT again 'test executor' hangs until timeout - is it possible to somehow enable tracing ?

(Update : i've tried to remove firewalls - expected 'nothing', tried use https + self signed certificate - it connects in logs but result the same)

sokharev commented 1 week ago

I've fixed connection problem. Things i've done :

  1. adding certificate to cacerts with "keytool -import -alias onedev -file C:\onedev-agent\conf\trust-certs\MYCERT.pem -keystore "PATH_TO_JDK\lib\security\cacerts" . This was fixed complains about 'pkix trust' or something like that.
  2. At the very end - reboot the windows agent

p2 magically fixed rest of stuff. 'test connection' still failed with null pointer exception after 'git lfs found' but build with this executor works as expected

P.S. I think i've discovered connection problem - due to some previuos circumstance we've set HTTPS_PROXY system variables which was broken to the moment, i've deleted but not rebooted - perhaps this solves problem

Robin Shen commented 1 week ago

The test connection error is a bug and will be fixed in next patch release.

Robin Shen changed state to 'Closed' 1 week ago
Previous Value Current Value
Open
Closed
issue 1 of 1
Type
Question
Priority
Normal
Assignee
Labels
No labels
Issue Votes (0)
Watchers (3)
Reference
onedev/server#1866
Please wait...
Page is in error, reload to recover