-
Notifications
You must be signed in to change notification settings - Fork 830
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Upgrade Gradle and jpi plugin #1216
Conversation
cf48275
to
954d1e2
Compare
Hi @daspilker (most recent committer), I see a few tests are failing only on Windows with:
Before I dive more into finding out what's happening, is this sort of change likely to be merged if the build passes? |
Hi @sghill, I was actually waiting for someone to do the update 😄 I tested your changes on my Windows machine and the build was successful. Unfortunately the CI is a bit flaky and currently https://ci.jenkins.io seems to be down. It would be great if you can find out what's the problem. |
b805350
to
cea9a2a
Compare
@sghill I think the problem is that the Jenkins Test Harness fails to delete it's Jenkins home directory after the test. We would need a full stacktrace to verify that. Another option would be to try to update Jenkins Test Harness or Jenkins Core to see if the problem has been fixed. On master I updated Jenkins core to 2.164. Can you rebase to master to pickup the changes? I'm also fine with updating core to a newer version if that helps. |
cea9a2a
to
454d354
Compare
Hi @daspilker,
I can verify that. I've enabled full stacktrace:
I also added some logging to print out the file owner. I notice we're running as
This is done, but unfortunately it still failed. |
46ef66e
to
100a977
Compare
@sghill I don't think that the file permissions are a problem. I think some files are still in use and thus can't be deleted on Windows. One test causes a problem because a stream is not closed. I fixed that in b80273c. I think the other tests fail because something (job executor?) is running while the tests finishes. As an indicator I got this exception:
Something is deleting files while the tree walker is running. I'm trying to fix the test. |
100a977
to
739fff9
Compare
This looks great @daspilker, the build is green! Happy to remove the file owner printing debugging code I added unless you'd prefer to leave it in. I think the full stacktrace addition is probably useful in any case, but if you'd prefer that were another PR I can move that out too. |
739fff9
to
56e4c8b
Compare
This also upgrades jenkins-test-harness 2.31 -> 2.60. Since 2.45, temp directories are generated with spaces in the name by default. This space behavior breaks existing tests and must be disabled by setting the system property `jenkins.test.noSpaceInTmpDirs`. See also: - https://github.com/jenkinsci/jenkins-test-harness#245-2019-jan-10 - https://issues.jenkins-ci.org/browse/JENKINS-35638
Release notes: https://docs.gradle.org/5.6.4/release-notes.html
56e4c8b
to
b7d65c9
Compare
😞 |
Thanks for merging this @daspilker! I appreciate the Windows debugging effort you put in and the test robustness improvements. |
Hello,
We're currently working on 0.39.0 of gradle-jpi-plugin, which requires Gradle 6, makes various improvements to dependency resolution, and supports Gradle Module Metadata.
This PR doesn't quite get all the way there because this plugin cannot currently be upgraded to Gradle 6. The job-dsl-api-viewer project uses a plugin that is currently incompatible with Gradle 6: eriwen/gradle-css-plugin#58. Still, it should minimize that change when possible.
Upgrade Gradle from 5.0 -> 5.6.4, the last version in the 5.x series. Changes to
gradlew
andgradlew.bat
were caused by running./gradlew wrapper
. Release notes for intermediate versions are available here:This change also updates the gradle-jpi-plugin from 0.28.1 -> 0.38.0, the last version to support Gradle 5.x. This change includes upgrading the jenkins-test-harness dependency from 2.31 -> 2.60. As of 2.45, the default behavior of temp directories changed to include a space, which broke many tests. The system property
jenkins.test.noSpaceInTmpDirs
changes this behavior back and allows the tests to pass.