How to have a single job running across projects

Hi

I have the following question. I have 3 projects and each one of them has 4 to 5 configurations. One configuration in each of these projects - when it is running on any of the agents - cannot allow any configuration of its type to run. For example:

ProjectA
   BuildConfig
   GlobalTestConfig
   UnitTestConfig

ProjectB
   BuildConfig
   GlobalTestConfig
   UnitTestConfig

ProjectC
   BuildConfig
   GlobalTestConfig
   UnitTestConfig


All the configs can run in parallel except for GlobalTestConfig. This configuration when running prevents GlobalTestConfig in another project from running. How can I achieve this using TeamCity?

3 comments
Comment actions Permalink

Hi!

It seems you need a kind of semaphoreto perform GlobalTestConfig job.

Olivier.

0
Comment actions Permalink

Take a look at this plugin: http://www.jetbrains.net/confluence/display/TW/Groovy+plug
One of its features is the ability to use read/write locks

0
Comment actions Permalink

Thanks. I installed it - but in the server logs, I am getting the following error.

I copied the appropriate files into WEB-INF/lib (antlr, asm and groovy jars).

I copied the groovyPlug.zip into .BuildServer/plugins folder.

-Pawan

groovy.lang.MissingMethodException: No signature of method: jetbrains.buildserver.groovyPlug.Lock.call() is applicable for argument types: (jetbrains.buildserver.groovyPlug.Lock, jetbrains.buildServer.serverSide.impl.BuildPromotionImpl) values: [jetbrains.buildserver.groovyPlug.Lock{name:singlelock, type:WriteLock}, BuildPromotion{myId=19, myBuildTypeId='bt2', myModificationId=-1, myRevisions=[BuildRevision[myVcsRootEntry=VcsRootEntry[myVcsRoot=platform, myCheckoutRules==>
], myRevision=RepositoryVersion[myVersion='42120_2009/08/24 16:08:22 -0700', myDisplayVersion='42120']]], myAssociatedBuildId=18}]
        at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:54)
        at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:51)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:43)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)
        at jetbrains.buildserver.groovyPlug.LockManager.lock(BuildResourcesLock:94)
        at jetbrains.buildserver.groovyPlug.LockManager$lock.call(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:43)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)

0

Please sign in to leave a comment.