Issue Type: New Feature New Feature
Assignee: Rob Petti
Components: perforce
Created: 05/Aug/14 2:40 PM
Description:

I have recently joined a company using Jenkins after spending many years being a CI admin using TeamCity and Electric commander.

Both these systems had the idea of a shared workspace/client.
This means if 100 builds use the same client spec then they will all use the same workspace on the same "executor"
This means that for every unique slave-executor pair there is just a single client spec on the server side and a single workspace on the slave-executor pair.

Currently is seems that if i have 100 jobs all using the same P4 stream for example, 100 client specs will be created on the server and 100 copies of the same source code will be on EACH executor.
So if i have a build machine with 16 executors , then i will have 16*100 times the same source code on the slave.
If i now want to test on 3 different streams then that will then be 16*100*3 times the same source code.

What we would need is as follows:
Job A uses stream X
Job B uses stream X

Job A is triggered on slave M1, executor 1 using stream X:
Check if client spec M1_1_X is created, if not create, otherwise sync.
Workspace location is also some known path \M1_1_X\

Job B is now triggered on same slave, same executor
Since M1_1_X client and workspace exist an incremental sync can be done

The advantage of this is that the workspace and client is only created for each unique slave-executor pair, the code is only synced once full and then incremented, the P4 server stores much less information.

Each Job just keeps track of the CL number it last synced to and does the diff to the latest CL. (there might be nothing to sync since a previous job has synced to head)

I am only after P4 stream functionality at the moment since it is much easier then normal client specs and custom views.

So what i would need is a way to tell a Jenkins Job to use a custom workspace location based on a known naming convention and the P4 plugin to create a client spec per slave-executor and track the changes.

Project: Jenkins
Priority: Major Major
Reporter: Morne Joubert
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira

--
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to