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

Make Confluence Publisher compatible with Pipeline

          [JENKINS-36345] Make Confluence Publisher compatible with Pipeline

          Alex Johnson added a comment - - edited

          Did a quick investigation using the source and the JIRA publisher pipeline impl. Came up with these tasks to make this plugin pipeline compatible:

          • Refactor to use pipeline compatible APIs
            • Relies on AbstractBuild to get workspace in several places, need to implement as Run
          • Add several pipeline steps
            • confluenceWritePage()
            • confluenceAppendPage()
            • confluencePrependPage()
            • confluenceWriteBeforeToken()
            • confluenceWriteAfterToken()
            • confluenceWriteBetweenTokens()
          • Test that steps can compile/run successfully
          • Manual test. Use all pipeline steps and both content sources (file and text)

          The workflow step must have a field content ex. publish(text:"", ...). We could add a dependency for workflow-basic-steps-plugin to use readFile() to make it easier for users to use a file as a source of content.

          Alex Johnson added a comment - - edited Did a quick investigation using the source and the JIRA publisher pipeline impl. Came up with these tasks to make this plugin pipeline compatible: Refactor to use pipeline compatible APIs Relies on AbstractBuild to get workspace in several places, need to implement as Run Add several pipeline steps confluenceWritePage() confluenceAppendPage() confluencePrependPage() confluenceWriteBeforeToken() confluenceWriteAfterToken() confluenceWriteBetweenTokens() Test that steps can compile/run successfully Manual test. Use all pipeline steps and both content sources (file and text) The workflow step must have a field content ex. publish(text:"", ...) . We could add a dependency for workflow-basic-steps-plugin to use readFile() to make it easier for users to use a file as a source of content.

          Alex Johnson added a comment -

          After looking at the source more closely I have a few concerns about this plugin

          • was designed for Confluence v1 and v2 (partial compatibility with v4 onward)
          • uses sources generated from old WSDLs (2005). These apis are now deprecated

          Adding Pipeline compatibility could be quick, but it would only guarantee support for Confluence v1 and v2. Full compatibility would would require a partial rewrite to use the Confluence REST api instead of WSDL and SOAP.

          Alex Johnson added a comment - After looking at the source more closely I have a few concerns about this plugin was designed for Confluence v1 and v2 (partial compatibility with v4 onward) uses sources generated from old WSDLs (2005). These apis are now deprecated Adding Pipeline compatibility could be quick, but it would only guarantee support for Confluence v1 and v2. Full compatibility would would require a partial rewrite to use the Confluence REST api instead of WSDL and SOAP.

          Joe Hansche added a comment -

          Great idea, and thanks for the thorough writeup!

          I can't guarantee when/if I'll be able to get to this, but if anyone else has the opportunity, I'll be happy to merge a PR that adds this.

          Joe Hansche added a comment - Great idea, and thanks for the thorough writeup! I can't guarantee when/if I'll be able to get to this, but if anyone else has the opportunity, I'll be happy to merge a PR that adds this.

          Francois Ferrand added a comment - Pull request is on github:  https://github.com/jenkinsci/confluence-publisher-plugin/pull/9

          Available as of confluence-publisher 2.0

          Francois Ferrand added a comment - Available as of confluence-publisher 2.0

            typz Francois Ferrand
            ifernandezcalvo Ivan Fernandez Calvo
            Votes:
            5 Vote for this issue
            Watchers:
            9 Start watching this issue

              Created:
              Updated:
              Resolved: