plugins share common repository on one Jenkins node

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

plugins share common repository on one Jenkins node

Tibor Digana
The builds on a Jenkins node should be isolated. The paths of local
repository should be distinct. Therefore we used the trick with
EXECUTOR_NUMBER:

https://gitbox.apache.org/repos/asf?p=maven-jenkins-lib.git;a=blob;f=vars/asfMavenTlpPlgnBuild.groovy;h=e4576ac12e9dec73aee0540fa9aab37fd507d614;hb=HEAD#l150

This is the path and wrong because it is not distinct!
Local Repo (linux-jdk11-m3.6.x_build): ../.maven_repositories/null

The problem is that the code is not serialized on the particular Jenkins
node and executor.
Thus we observed errors in Archetype builds when running integration tests
via maven-invoker-plugin:

[INFO] Building: build-and-run-its\pom.xml
[INFO] run post-build script verify.groovy
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by
org.codehaus.groovy.reflection.CachedClass
(file:/F:/short/.maven_repositories/null/org/codehaus/groovy/groovy-all/2.4.8/groovy-all-2.4.8.jar)
to method java.lang.Object.finalize()

So I moved the code into the targeting execution block:

https://gitbox.apache.org/repos/asf?p=maven-jenkins-lib.git;a=commitdiff;h=aee445426dac012af4326c0b80c93422200c2a56

and the logs look promissing now:

Local Repo (windows-jdk11-m3.6.x_build): ../.maven_repositories/0
Local Repo (windows-jdk12-m3.6.x_build): ../.maven_repositories/1
Local Repo (windows-jdk13-m3.6.x_build): ../.maven_repositories/2

--
Cheers
Tibor
Reply | Threaded
Open this post in threaded view
|

Re: plugins share common repository on one Jenkins node

Enrico Olivelli
Il ven 16 ago 2019, 20:37 Tibor Digana <[hidden email]> ha scritto:

> The builds on a Jenkins node should be isolated. The paths of local
> repository should be distinct. Therefore we used the trick with
> EXECUTOR_NUMBER:
>
>
> https://gitbox.apache.org/repos/asf?p=maven-jenkins-lib.git;a=blob;f=vars/asfMavenTlpPlgnBuild.groovy;h=e4576ac12e9dec73aee0540fa9aab37fd507d614;hb=HEAD#l150
>
> This is the path and wrong because it is not distinct!
> Local Repo (linux-jdk11-m3.6.x_build): ../.maven_repositories/null
>
> The problem is that the code is not serialized on the particular Jenkins
> node and executor.
> Thus we observed errors in Archetype builds when running integration tests
> via maven-invoker-plugin:
>
> [INFO] Building: build-and-run-its\pom.xml
> [INFO] run post-build script verify.groovy
> WARNING: An illegal reflective access operation has occurred
> WARNING: Illegal reflective access by
> org.codehaus.groovy.reflection.CachedClass
>
> (file:/F:/short/.maven_repositories/null/org/codehaus/groovy/groovy-all/2.4.8/groovy-all-2.4.8.jar)
> to method java.lang.Object.finalize()
>
> So I moved the code into the targeting execution block:
>
>
> https://gitbox.apache.org/repos/asf?p=maven-jenkins-lib.git;a=commitdiff;h=aee445426dac012af4326c0b80c93422200c2a56
>
> and the logs look promissing now:
>
> Local Repo (windows-jdk11-m3.6.x_build): ../.maven_repositories/0
> Local Repo (windows-jdk12-m3.6.x_build): ../.maven_repositories/1
> Local Repo (windows-jdk13-m3.6.x_build): ../.maven_repositories/2
>

Good catch!

Thank you Tibor

Enrico



> --
> Cheers
> Tibor
>