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

flexible publish - Parametrized trigger does not work

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Critical
    • Resolution: Fixed
    • 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

    Description

      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.

      Attachments

        Issue Links

          Activity

            bap 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 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 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 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 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 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_issue_link 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 bap added a comment -

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

            bap bap added a comment - Can you build HEAD of master and try out the changes?
            bap 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 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 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 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.
            thoudayer 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 ?

            thoudayer 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 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 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?

            emszpak 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?

            People

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

              Dates

                Created:
                Updated:
                Resolved: