-
Bug
-
Resolution: Unresolved
-
Major
-
Java 1.7
-
Powered by SuggestiMate
I cloned the release plugin repo from github to customize the plugin. The plugin when packaged on local machine it does a successful package but when the hpi package is uploaded to jenkins server the release button on the left panel is not showing up. When I checked out the older branch from the repository the plugin works perfectly fine. May be the recent changes is failing the plugin.
- is related to
-
JENKINS-30381 Release Button is not shown in Views
-
- Open
-
- relates to
-
JENKINS-40545 NPE in console log when I configure a folder in a folder or a pipeline in a folder
-
- Resolved
-
[JENKINS-27722] upgrade to the release plugin has left the plugin broken
Yup, that's my change. It works fine on my 1.574 version of Jenkins but not the latest 1.608.
Error from log is:
WARNING: Caught exception evaluating: h.filterDescriptors(it,attrs.descriptors) in /job/test/configure. Reason: java.lang.NullPointerException java.lang.NullPointerException at hudson.model.DescriptorVisibilityFilter.apply(DescriptorVisibilityFilter.java:53) at hudson.Functions.filterDescriptors(Functions.java:1726) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
I'll try to find out why and fix it.
Edit:
Ok, the reason it's failing is because in config.jelly I changed the h.xxxx methods to instance.xxxx calls. These fail because a newly added instance will always be null. I guess it must have worked for me because I already had the previous release plugin installed at some point, and to my shame I didn't test it on a completely new install.
The reason it was changed to 'instance' was so that it could call the function getBuildSteps() that returns both publishers and builder descriptors in one list so they can both be used as build steps.
Here is a fix for the issue and I also added a unit test to check for the presence of the "Release" links in the job page when the release check-box is enabled.
https://github.com/glenritchie/release-plugin/tree/JENKINS-27722
tested the latest jenkins-release-plugin from source and the 'release' does not show up at navigation bar. It works when I revert it. The log does not show any error
@dan tran, Was that from my fork or the official git repo? I haven't done a pull request yet to the official so it hasn't been merged.
I'm having difficulty reproducing this issue, can you post more information about the environment you are using to test and maybe some steps to reproduce (including any and all versions that you are using) as well?
In addition can you verify the "Configure release build" option is enabled in the job configuration?
@Glen
Yes It is from your fork. I am using Jenkins 1.596.2, suse 11.3 x64, jdk8. I can see the release configuration in my job, and when enable, configured and save the job config, the release option at navigation is not visible
Not sure what more I can provide
here is the steps I went thru
1. clone https://github.com/glenritchie/release-plugin.git
2. git checkout JENKINS-27722
3. Build and load target/release.hpi into my jenkins
Look reasonable?
Thanks
I am able to verify that the steps from last comment is correct. I do see your changes in Eclipse Git history at JENKINS-27222 branch.
Also, I also see unit test failure on my windows using java 7 and 8, BUT passes at my suse linux.
Tests in error:
createJobAndCheckButton(hudson.plugins.release.TestJobCreation): elementName=[input] attributeName=[name] attributeVal
ue=[hudson-plugins-release-ReleaseWrapper]
I loaded the release.hpi built by both and windows and linux with the same result
I'm sorry Dan, I still cannot reproduce the missing "release" configuration or link issue.
I performed a checkout and test on the following configurations. All of these were on my JENKINS-27722 branch, and were executed with 'mvn clean test'
Maven Version: 3.1.0, JDK Version: 1.7.0_09 x86, OS Info: Arch: x86 Family: windows Name: windows 7 Version: 6.1 - Eclipse on Windows
Maven Version: 3.1.0, JDK Version: 1.7.0_09 x64, OS Info: Arch: amd64 Family: windows Name: windows 7 Version: 6.1 - Eclipse on Windows
Maven Version: 3.1.0, JDK Version: 1.6.0_37 x64, OS Info: Arch: amd64 Family: windows Name: windows 7 Version: 6.1 - Eclipse on Windows
Maven Version: 3.0.5, JDK Version: 1.8.0_05 x64, OS Info: Arch: amd64 Family: dos Name: windows 7 Version: 6.1 - Netbeans on Windows
Maven Version: 3.3.1, JDK Version: 1.7.0_67 x64, OS Info: Arch: amd64 Family: unix Name: linux Version: 3.13.0-24-generic - Linux
Maven Version: 2.2.1, JDK Version: 1.6.0_34 x86, OS Info: Arch: i386 Family: unix Name: linux Version: 2.6.32-73-generic-pae - Linux
And they all passed the tests successfully.
I committed a couple extra tests to check various parts of the plugin are working the way they should, I hope that helps to narrow down why it's not working.
What version of Jenkins did you test with? For some reason, If I loaded it into the latest jenkins source from developer env ( id load the war ). It works.
A little background, I need to enhance jenkins-release-plugin so that I can trigger jenkins core to skip the default build tasks when release-plugin ran, this mean I need to change to jenkins-core and this plugin need to use the latest jenkins core
another theory, you only test with a fresh Jenkins, once the jenkins with other jobs and plugins, it my not owrk any more
The maven tests were using the version defined in pom.xml, parent element which is 1.481.
I changed it to 1.609 and it failed to compile until I added matrix-project v1.4.1 as a dependency and updated the versions of the dashboard to 2.9.4 and promoted plugins to 2.21. (since jenkins version 1.561, matrix-project split into it's own plugin). Once I changed the POM to use the latest versions the tests passsed.
It looks like the matrix-project is a required dependency for the plugin to run, but it wasn't included as a requirement in the .hpi, so if for some reason it's not in the Jenkins Environment(it should be included in the jenkins.war), it could be causing the plugin to not work if installed on a jenkins version > 1.561 that doesn't include it.
I created a new branch https://github.com/glenritchie/release-plugin/tree/JENKINS-27722-1609 with the modified pom.xml, see if that helps.
@Glen, thanks for staying on this with me. I was in the similar situation where I had to fix up the dependencies. It works with my fresh copy of Jenkins but not with an existing production one. Keep hacking ...
did you test with your your existing loaded jenkins? what version did you test
I have the plugin installed on v1.574 Jenkins server without issue, this has about 15 different jobs, a few with release configuration enabled.
Some other things to try:
- On a job that doesn't show the release link, if you goto the release url, does it work? eg, /job/mytestjob/release/, should bring up a page to define release properties.
- Could you have a look in the config.xml for one of the jobs you are having issues with? Look for the <buildWrappers> part. If the "Configure Release Build" config item is checked it should have data in there for hudson.plugins.release.ReleaseWrapper. Which version plugin does it say?
- Are you setting any build steps or leaving them empty?
- Can you list the versions of plugins you have running, maybe another plugin is interfering with the rendered text?
- What browser and browser version are you using?
It looks like the matrix-project is a required dependency for the plugin to run, but it wasn't included as a requirement in the .hpi
In general this can be a problem with all plugins whose functionality has been detached from core since the version declared for the plugin's parent POM. Plugins may use the former core functionality (and the respective detached plugins' classes are made available to the plugin), even though they cannot declare an explicit dependency.
For a complete list of bundled plugins and the version they were detached from core, see https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/ClassicPluginStrategy.java#L323...L338
@Daniel, I am very new to Jenkins development, could you confirm if Glen's changes at https://github.com/glenritchie/release-plugin/tree/JENKINS-27722-1609 are correct?
@Glen, thanks for the hint by running the release directly via url xxx/release, when I run the scheduler release build, it complains about "missing the Release/Release permission". It is working now since I configure the user with release access. Finally, thank you and thank you.
Next is to wait for Daniel to confirm your changes, then you can merge.
But I also notice, I dont need configure matrix-plugin with optional=false, i also need to add mailer
so here is my list
<dependency>
<groupId>org.jenkins-ci.main</groupId>
<artifactId>maven-plugin</artifactId>
<version>2.9</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>dashboard-view</artifactId>
<version>2.9.4</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>promoted-builds</artifactId>
<version>2.21</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>matrix-project</artifactId>
<version>1.4.1</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>mailer</artifactId>
<version>1.9</version>
<optional>true</optional>
</dependency>
They don't look obviously wrong, but I have no time to dig deeper into this. Just saw the comment I quoted and thought I'd clarify why that is.
Next is to wait for Daniel to confirm your changes, then you can merge.
Sorry, but no. I'm not working on this plugin.
Code changed in jenkins
User: Glen Ritchie
Path:
src/main/java/hudson/plugins/release/ReleaseWrapper.java
src/main/java/hudson/plugins/release/ReleaseWrapperHelper.java
src/main/resources/hudson/plugins/release/ReleaseWrapper/config.jelly
http://jenkins-ci.org/commit/release-plugin/2ce0bdef5798ba0a44580d1c6e90aba5089154f1
Log:
Fix 'instance' being null when creating a new item.
See also: https://issues.jenkins-ci.org/browse/JENKINS-27722
Code changed in jenkins
User: Glen Ritchie
Path:
src/main/java/hudson/plugins/release/ReleaseWrapper.java
src/main/java/hudson/plugins/release/ReleaseWrapperHelper.java
src/main/resources/hudson/plugins/release/ReleaseWrapper/config.jelly
src/test/java/hudson/plugins/release/TestReleasePlugin.java
src/test/java/hudson/plugins/release/TestReleasePluginJob.java
http://jenkins-ci.org/commit/release-plugin/fad26eec745cb1921844b2b5656346cceab625c5
Log:
Merge branch 'JENKINS-27722'
Fixes JENKINS-27722 ( https://issues.jenkins-ci.org/browse/JENKINS-27722
) and adds numerous unit tests to ensure the plugin loads correctly and
also tests that the plugin shows the "Release" text when enabled on a
project.
Code changed in jenkins
User: Bulat Shakirzyanov
Path:
src/main/java/hudson/plugins/release/ReleaseWrapper.java
src/main/java/hudson/plugins/release/ReleaseWrapperHelper.java
src/main/resources/hudson/plugins/release/ReleaseWrapper/config.jelly
src/test/java/hudson/plugins/release/TestReleasePlugin.java
src/test/java/hudson/plugins/release/TestReleasePluginJob.java
http://jenkins-ci.org/commit/release-plugin/cea8bb484c016670b5f248083c20929f1bbe1a88
Log:
Merge pull request #12 from glenritchie/master
JENKINS-27722 - fix for previous merge that could stop plugin working on some jobs
Compare: https://github.com/jenkinsci/release-plugin/compare/54a13e3f7af9...cea8bb484c01
It was a simple permission issue for me. If auth is enabled check if you have release permissions.
If that's the point then calling the url directly should not work.
And a little mentioning in the release notes would be nice.
My security setting has always been "logged in users can do anything". Updating to Release 2.5.3 cause Release link to be missing. After reading the above, I switched security to "Anyone can do Anything" and the link reappeared.
I switched the sec setting back again and the link was gone again. It looks like I'll need to change the setting for every Release build until it's fixed.
Jenkins v1.609.1, Java 1.8 u45 x64 on Windows server.
Just saw the workaround in report-
JENKINS-28132
It uses a hidden group named authenticated. I was worried that I was going to lock myself out of the server when I tried it, but it worked.
I have the same issue with Release Plugin v2.6.1. I use "Logged-in users can do anything" authorization mode and "Matrix-based security" is not an option for me.
ricko: What is the workaround? Enable matrix and tick all checkboxes, save, and then switch back to "Logged-in users can do anything"?
Weird, 2.6 and up contain the fix for JENKINS-28132 which should result in all administrators getting release permssion. Did you forget to restart Jenkins?
danielbeck: The situation is that I have installed Jenkins from scratch yesterday and installed Release Plugin on that fresh Jenkins instance. Of course I have restarted it to activate the plugin (among others), but this was not the upgrade of the plugin.
This is what /jenkins/whoAmI shows:
org.acegisecurity.providers.UsernamePasswordAuthenticationToken@23075750: Username: dma_k; Password: [PROTECTED]; Authenticated: true; Details: null; Granted Authorities: authenticated
looks to me https://github.com/jenkinsci/release-plugin/commit/54a13e3f7af9035eb091a0f6880ccf677523899c the last commit breaks it