How to return the exact names of the new artifacts added to Jfrog artifactory using URL Trigger plugin in...












0














I need to poll the artifactory URL every night and find out which file got added, and use that name of the new artifact as a parameter to trigger another job in Jenkins. But the URLTrigger plugin doesn't return the name of the new artifacts? Is there any way to derive that?










share|improve this question



























    0














    I need to poll the artifactory URL every night and find out which file got added, and use that name of the new artifact as a parameter to trigger another job in Jenkins. But the URLTrigger plugin doesn't return the name of the new artifacts? Is there any way to derive that?










    share|improve this question

























      0












      0








      0







      I need to poll the artifactory URL every night and find out which file got added, and use that name of the new artifact as a parameter to trigger another job in Jenkins. But the URLTrigger plugin doesn't return the name of the new artifacts? Is there any way to derive that?










      share|improve this question













      I need to poll the artifactory URL every night and find out which file got added, and use that name of the new artifact as a parameter to trigger another job in Jenkins. But the URLTrigger plugin doesn't return the name of the new artifacts? Is there any way to derive that?







      jenkins artifactory






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 22 at 12:34









      user2552451

      327




      327
























          1 Answer
          1






          active

          oldest

          votes


















          0














          I use groovy to run a curl command to extract and parse the metadata.xml to work out the jar name.



          Assuming Artifactory has metadata content that looks like this:



          <?xml version="1.0" encoding="UTF-8"?>
          <metadata>
          <groupId>path.to.application</groupId>
          <artifactId>jarName</artifactId>
          <versioning>
          <latest>6.1.12-SNAPSHOT</latest>
          <release>6.1.11</release>
          <versions>
          <version>6.1.11</version>
          <version>6.1.12-SNAPSHOT</version>
          </versions>
          <lastUpdated>20181122121509</lastUpdated>
          </versioning>
          </metadata>


          Thus the build information I want want is 'jarName-6.1.12-SNAPSHOT.jar'



          import org.xml.sax.SAXParseException;
          //Assumed artifactory path to application.jar
          def metaDataPath = 'https://your.artifactory.server/artifactory/path/to/application/jarName/maven-metadata.xml'

          //Get the file using curl (you might need to use a proxy), with an api token for authentication
          def metadataContent = 'curl -x<your-proxy:80> -H "X-JFrog-Art-Api:<your token>" -XGET ' + metaDataPath
          metadataContent = metadataContent.execute().text

          //Parse it to get the 'latest' element
          def parsedXml = (new XmlParser()).parseText(metadataContent)
          println parsedXml.versioning.latest.text() //6.1.12-SNAPSHOT


          If your snapshot builds include a timestamp in their name, then you would need to use the returned 6.1.12-SNAPSHOT to build a new metadata path:



          https://your.artifactory.server/artifactory/path/to/application/jarName/6.1.12-SNAPSHOT/maven-metadata.xml



          To then repeat the extract and parse process to get the timestamped name from the child metadata.xml






          share|improve this answer





















            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53431152%2fhow-to-return-the-exact-names-of-the-new-artifacts-added-to-jfrog-artifactory-us%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            I use groovy to run a curl command to extract and parse the metadata.xml to work out the jar name.



            Assuming Artifactory has metadata content that looks like this:



            <?xml version="1.0" encoding="UTF-8"?>
            <metadata>
            <groupId>path.to.application</groupId>
            <artifactId>jarName</artifactId>
            <versioning>
            <latest>6.1.12-SNAPSHOT</latest>
            <release>6.1.11</release>
            <versions>
            <version>6.1.11</version>
            <version>6.1.12-SNAPSHOT</version>
            </versions>
            <lastUpdated>20181122121509</lastUpdated>
            </versioning>
            </metadata>


            Thus the build information I want want is 'jarName-6.1.12-SNAPSHOT.jar'



            import org.xml.sax.SAXParseException;
            //Assumed artifactory path to application.jar
            def metaDataPath = 'https://your.artifactory.server/artifactory/path/to/application/jarName/maven-metadata.xml'

            //Get the file using curl (you might need to use a proxy), with an api token for authentication
            def metadataContent = 'curl -x<your-proxy:80> -H "X-JFrog-Art-Api:<your token>" -XGET ' + metaDataPath
            metadataContent = metadataContent.execute().text

            //Parse it to get the 'latest' element
            def parsedXml = (new XmlParser()).parseText(metadataContent)
            println parsedXml.versioning.latest.text() //6.1.12-SNAPSHOT


            If your snapshot builds include a timestamp in their name, then you would need to use the returned 6.1.12-SNAPSHOT to build a new metadata path:



            https://your.artifactory.server/artifactory/path/to/application/jarName/6.1.12-SNAPSHOT/maven-metadata.xml



            To then repeat the extract and parse process to get the timestamped name from the child metadata.xml






            share|improve this answer


























              0














              I use groovy to run a curl command to extract and parse the metadata.xml to work out the jar name.



              Assuming Artifactory has metadata content that looks like this:



              <?xml version="1.0" encoding="UTF-8"?>
              <metadata>
              <groupId>path.to.application</groupId>
              <artifactId>jarName</artifactId>
              <versioning>
              <latest>6.1.12-SNAPSHOT</latest>
              <release>6.1.11</release>
              <versions>
              <version>6.1.11</version>
              <version>6.1.12-SNAPSHOT</version>
              </versions>
              <lastUpdated>20181122121509</lastUpdated>
              </versioning>
              </metadata>


              Thus the build information I want want is 'jarName-6.1.12-SNAPSHOT.jar'



              import org.xml.sax.SAXParseException;
              //Assumed artifactory path to application.jar
              def metaDataPath = 'https://your.artifactory.server/artifactory/path/to/application/jarName/maven-metadata.xml'

              //Get the file using curl (you might need to use a proxy), with an api token for authentication
              def metadataContent = 'curl -x<your-proxy:80> -H "X-JFrog-Art-Api:<your token>" -XGET ' + metaDataPath
              metadataContent = metadataContent.execute().text

              //Parse it to get the 'latest' element
              def parsedXml = (new XmlParser()).parseText(metadataContent)
              println parsedXml.versioning.latest.text() //6.1.12-SNAPSHOT


              If your snapshot builds include a timestamp in their name, then you would need to use the returned 6.1.12-SNAPSHOT to build a new metadata path:



              https://your.artifactory.server/artifactory/path/to/application/jarName/6.1.12-SNAPSHOT/maven-metadata.xml



              To then repeat the extract and parse process to get the timestamped name from the child metadata.xml






              share|improve this answer
























                0












                0








                0






                I use groovy to run a curl command to extract and parse the metadata.xml to work out the jar name.



                Assuming Artifactory has metadata content that looks like this:



                <?xml version="1.0" encoding="UTF-8"?>
                <metadata>
                <groupId>path.to.application</groupId>
                <artifactId>jarName</artifactId>
                <versioning>
                <latest>6.1.12-SNAPSHOT</latest>
                <release>6.1.11</release>
                <versions>
                <version>6.1.11</version>
                <version>6.1.12-SNAPSHOT</version>
                </versions>
                <lastUpdated>20181122121509</lastUpdated>
                </versioning>
                </metadata>


                Thus the build information I want want is 'jarName-6.1.12-SNAPSHOT.jar'



                import org.xml.sax.SAXParseException;
                //Assumed artifactory path to application.jar
                def metaDataPath = 'https://your.artifactory.server/artifactory/path/to/application/jarName/maven-metadata.xml'

                //Get the file using curl (you might need to use a proxy), with an api token for authentication
                def metadataContent = 'curl -x<your-proxy:80> -H "X-JFrog-Art-Api:<your token>" -XGET ' + metaDataPath
                metadataContent = metadataContent.execute().text

                //Parse it to get the 'latest' element
                def parsedXml = (new XmlParser()).parseText(metadataContent)
                println parsedXml.versioning.latest.text() //6.1.12-SNAPSHOT


                If your snapshot builds include a timestamp in their name, then you would need to use the returned 6.1.12-SNAPSHOT to build a new metadata path:



                https://your.artifactory.server/artifactory/path/to/application/jarName/6.1.12-SNAPSHOT/maven-metadata.xml



                To then repeat the extract and parse process to get the timestamped name from the child metadata.xml






                share|improve this answer












                I use groovy to run a curl command to extract and parse the metadata.xml to work out the jar name.



                Assuming Artifactory has metadata content that looks like this:



                <?xml version="1.0" encoding="UTF-8"?>
                <metadata>
                <groupId>path.to.application</groupId>
                <artifactId>jarName</artifactId>
                <versioning>
                <latest>6.1.12-SNAPSHOT</latest>
                <release>6.1.11</release>
                <versions>
                <version>6.1.11</version>
                <version>6.1.12-SNAPSHOT</version>
                </versions>
                <lastUpdated>20181122121509</lastUpdated>
                </versioning>
                </metadata>


                Thus the build information I want want is 'jarName-6.1.12-SNAPSHOT.jar'



                import org.xml.sax.SAXParseException;
                //Assumed artifactory path to application.jar
                def metaDataPath = 'https://your.artifactory.server/artifactory/path/to/application/jarName/maven-metadata.xml'

                //Get the file using curl (you might need to use a proxy), with an api token for authentication
                def metadataContent = 'curl -x<your-proxy:80> -H "X-JFrog-Art-Api:<your token>" -XGET ' + metaDataPath
                metadataContent = metadataContent.execute().text

                //Parse it to get the 'latest' element
                def parsedXml = (new XmlParser()).parseText(metadataContent)
                println parsedXml.versioning.latest.text() //6.1.12-SNAPSHOT


                If your snapshot builds include a timestamp in their name, then you would need to use the returned 6.1.12-SNAPSHOT to build a new metadata path:



                https://your.artifactory.server/artifactory/path/to/application/jarName/6.1.12-SNAPSHOT/maven-metadata.xml



                To then repeat the extract and parse process to get the timestamped name from the child metadata.xml







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 22 at 13:39









                elworthy

                239110




                239110






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.





                    Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                    Please pay close attention to the following guidance:


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53431152%2fhow-to-return-the-exact-names-of-the-new-artifacts-added-to-jfrog-artifactory-us%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Berounka

                    Sphinx de Gizeh

                    Different font size/position of beamer's navigation symbols template's content depending on regular/plain...