Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-12418

flexible publish - Parametrized trigger does not work

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Critical Critical
    • None
    • Jenkins 1.446 on RHEL 6
      Plugin:run-condition, 0.7,
      Plugin:flexible-publish, 0.7
      Plugin:token-macro, 1.5.1,
      Plugin:conditional-buildstep,
      Plugin:any-buildstep, 0.1,
      Plugin:parameterized-trigger, 2.12

      Enable flexible publish and set any condition and add the Parametrized Trigger plugin, set the next job and some parameters.

      Log shows that it should have been called.

      Run condition [Always] enabling perform for step [Trigger parameterized build on other projects]
      Strings match run condition: string 1=[], string 2=[]
      Run condition [Not] preventing perform for step [Trigger parameterized build on other projects]
      [ArtifactDeployer] - Starting deployment from the post-action ...
      [ArtifactDeployer] - 2 file(s) have been copied from the workspace to '/company/site/groups/jenkins_wp/fahud022/property_files/CHAIN1_MCL_0_Start_2012-01-16_09-58-38'.
      [ArtifactDeployer] - Stopping deployment from the post-action...

      Next job is not called and they do not show up as Downstream Projects on the project page

      possible solutions:

      1. Flex publish Plugin should implement DependecyDeclarer and call any other publishers that require it, if this is possible and makes sense.

      2. Add use of run condition plugin to parametrized trigger plugin. and prevent flexible publish from using parametrized trigger plugin.

          [JENKINS-12418] flexible publish - Parametrized trigger does not work

          bap added a comment -

          Hi,
          Can you re check the logic (change the result of the Run condition that is inside the not) and try again?

          The line "Run condition [Not] preventing perform for step [Trigger parameterized build on other projects]"
          is actually stating that the Run condition called "Not" is preventing the step called "Trigger param..." from being run.

          So from that output, I would not have expected the parameterized trigger step to have executed.

          bap added a comment - Hi, Can you re check the logic (change the result of the Run condition that is inside the not) and try again? The line "Run condition [Not] preventing perform for step [Trigger parameterized build on other projects] " is actually stating that the Run condition called "Not" is preventing the step called "Trigger param..." from being run. So from that output, I would not have expected the parameterized trigger step to have executed.

          cjo9900 added a comment - - edited

          I tested the always and not string == string cases

          Always case:

          Run condition [Always] enabling perform for step [Trigger parameterized build on other projects]

          not string == string case:

          Strings match run condition: string 1=[], string 2=[]
          Run condition [Not] preventing perform for step [Trigger parameterized build on other projects]

          both gave the same results,

          The reason is that the trigger parameterized build performs no action in the Perform code.
          This is because it creates Dependancy's that it attaches to the DependancyGraph in
          buildDependencyGraph() which is part of the DependecyDeclarer interface

          	@Override
          	public void buildDependencyGraph(AbstractProject owner, DependencyGraph graph) {
          		// Can only add dependencies in Hudson 1.341 or higher
          		if (!canDeclare(owner)) return;
          
          		for (BuildTriggerConfig config : configs)
          			for (AbstractProject project : config.getProjectList(null))
          				ParameterizedDependency.add(owner, project, config, graph);
          	}
          

          cjo9900 added a comment - - edited I tested the always and not string == string cases Always case: Run condition [Always] enabling perform for step [Trigger parameterized build on other projects] not string == string case: Strings match run condition: string 1=[], string 2=[] Run condition [Not] preventing perform for step [Trigger parameterized build on other projects] both gave the same results, The reason is that the trigger parameterized build performs no action in the Perform code. This is because it creates Dependancy's that it attaches to the DependancyGraph in buildDependencyGraph() which is part of the DependecyDeclarer interface @Override public void buildDependencyGraph(AbstractProject owner, DependencyGraph graph) { // Can only add dependencies in Hudson 1.341 or higher if (!canDeclare(owner)) return ; for (BuildTriggerConfig config : configs) for (AbstractProject project : config.getProjectList( null )) ParameterizedDependency.add(owner, project, config, graph); }

          bap added a comment -

          Sorry, I just saw the the 2nd entry - my bad.

          I'll try to have a look at this this evening and see if there is anything that can be done from the Flexible publish side (other than just adding the parameterized trigger to the list of excluded steps)

          bap added a comment - Sorry, I just saw the the 2nd entry - my bad. I'll try to have a look at this this evening and see if there is anything that can be done from the Flexible publish side (other than just adding the parameterized trigger to the list of excluded steps)

          Code changed in jenkins
          User: bap2000
          Path:
          src/main/java/org/jenkins_ci/plugins/flexible_publish/ConditionalPublisher.java
          src/main/java/org/jenkins_ci/plugins/flexible_publish/FlexiblePublisher.java
          http://jenkins-ci.org/commit/flexible-publish-plugin/ca9d155ed5930eecacea781b63d99afcaf18da26
          Log:
          Allow contained steps to participate in building the dependency graph

          [FIXED JENKINS-12418]

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: bap2000 Path: src/main/java/org/jenkins_ci/plugins/flexible_publish/ConditionalPublisher.java src/main/java/org/jenkins_ci/plugins/flexible_publish/FlexiblePublisher.java http://jenkins-ci.org/commit/flexible-publish-plugin/ca9d155ed5930eecacea781b63d99afcaf18da26 Log: Allow contained steps to participate in building the dependency graph [FIXED JENKINS-12418]

          bap added a comment -

          Can you build HEAD of master and try out the changes?

          bap added a comment - Can you build HEAD of master and try out the changes?

          bap added a comment -

          Don't bother!
          Unfortunately, when using the change above, the conditions are ignored and the downstream builds will always be triggered.

          I will add the parameterized trigger to the list of excluded publishers.

          bap added a comment - Don't bother! Unfortunately, when using the change above, the conditions are ignored and the downstream builds will always be triggered. I will add the parameterized trigger to the list of excluded publishers.

          cjo9900 added a comment -

          Ok, I expected this,
          I will work on the parameterized trigger to add run condition support replacing existing job result only.

          cjo9900 added a comment - Ok, I expected this, I will work on the parameterized trigger to add run condition support replacing existing job result only.

          T. Houdayer added a comment -

          cjo9900, do you fix this issue ? If yes, when do you plan to re-add the parameterized trigger into the Flexible plugin list of available publishers ?

          T. Houdayer added a comment - cjo9900, do you fix this issue ? If yes, when do you plan to re-add the parameterized trigger into the Flexible plugin list of available publishers ?

          cjo9900 added a comment -

          The fix was to add the functionality to the parameterized trigger, as there is no way that the flexible publish can affect the Dependancies that are created.

          See Pull request for it.
          https://github.com/jenkinsci/parameterized-trigger-plugin/pull/17

          cjo9900 added a comment - The fix was to add the functionality to the parameterized trigger, as there is no way that the flexible publish can affect the Dependancies that are created. See Pull request for it. https://github.com/jenkinsci/parameterized-trigger-plugin/pull/17

          @cjo9900, from the comments I thought that fixing issue is waiting for merge of pull request 17 in parameterized-trigger-plugin, but when I asked there the reply was that it rather seems to be already fixed here. How does it really look like?

          Marcin Zajączkowski added a comment - @cjo9900, from the comments I thought that fixing issue is waiting for merge of pull request 17 in parameterized-trigger-plugin, but when I asked there the reply was that it rather seems to be already fixed here. How does it really look like?

            bap bap
            cjo9900 cjo9900
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: