Jump to content
  • Continuous Integration with Spotfire® Streaming and Jenkins


    Many Spotfire® Streaming users leverage a Continuous Integration server such as Jenkins to build, test, and package their StreamBase® applications and related runtime artifacts. This article applies to Spotfire® Streaming, StreamBase, Live Datamart, Streaming, and Spotfire Data Streams 10.x and higher

    For Spotfire® Streaming 10 and higher, here is a brief outline of how to build StreamBase applications using Jenkins. This will have to do for now until someone writes a more detailed tutorial.

    Jenkins provides ways to very flexibly define build and deploy pipelines in as custom as way as anyone is likely to want. The variations are endless, not to mention environment-specific.

    Spotfire® Streaming 10+ -based products all have source projects that are Maven projects, and indeed the only reasonable way to build Streaming artifacts (fragment archives, application archives, OCI/Docker container images, etc.) is to use Maven and the TIBCO ep-maven plugin to do the builds.

    It's not necessary to install Spotfire® Streaming on the Jenkins controller and/or agent machines. What you will want to make sure is accessible to Jenkins is:

    • the application project(s)' source, preferably via a source code repository such as Git
    • a Maven artifact repository from which to find artifacts needed in the build that is or can be populated with all Maven artifacts necessary to perform the build
    • a Maven artifact repository into which to install Maven artifacts created by the build (typically, these are the same repository but they don't have to be)
    • Maven installed on the Jenkins (controller? agents?)
    • Access to a Maven repository from which Maven plugins may be obtained, including the ep-maven plugin (available from Maven Central or GitHub)
    • An OCI/Docker container image registry to which to push container images built (if using containers)

    It's often handy to provide a Maven settings file to Jenkins to specify any local or non-standard Maven repositories.

    Maven repositories may be populated with Streaming-specific artifacts and their dependencies using the epdev deploy maven command (and related sub-commands).

    Once the application archives or container images are built and deployed to repositories, Jenkins is often used to deploy new artifacts to deployment servers. Maven and the ep-maven plugin have deploy goals to facilitate this directly using Maven, or there is, for example, a Jenkins Artifactory or Nexus plugin if more specialized interactions with these repositories are desired. Alternatively, deployments can be scripted with shell commands or shell scripts as the local infrastructure requires.

     


    User Feedback

    Recommended Comments

    There are no comments to display.


×
×
  • Create New...