Skip to end of metadata
Go to start of metadata

Plugin Information

View Deployment Sphere on the plugin site for more information.

Jenkins plugin to have a bird's eye view of your continuous deployment pipeline.

Configuration

  1. Install dependency plugins:
    1. Open “Manage Jenkins
    2. Go to “Available
    3. Find and install H2 Database Plugin
  2. Install plugin into Jenkins:
    1. Open “Manage Jenkins
    2. Go to “Available
    3. Find and install Deployment Sphere Plugin
  3. Restart Jenkins
  4. Additional menu item "Deployment Sphere" in the left navigation block should appear
  5. Now you need to configure your Jenkins system:
    1. Open “Manage Jenkins
    2. Open “Configure system
    3. Navigate to “Deployment Sphere configuration” to add Applications and Environments you're working with

Features

  • Collects application versions
  • Collects application versions deployments
  • Configures environments
  • Configures applications
  • Provides dashboard of deployed applications versions across environments

Usage

  1. Create any type Jenkins project to collect Build Metadata by adding post-build action "Collect Build Metadata" and select Application that is being built by current project.
       
    where *"0.0.
    Unknown macro: {v}
    "* is a version naming template that could be changed according to your convention.
  2. Crate any type Jenkins project to collect Deploy Metadata by adding post-build action "Collect Deploy Metadata" and select Application that is being deployed by current project.
       
  3. Now build your application and go to deploy project
  4. Select environment and application version you'd like to deploy
  5. Now you can check out to what environment and what version of your application was deployed

Roadmap

TODO

About

This plugin is started as a hack-a-thon at the EPAM Grand Hackathon 2015 in Minks. It is licensed under Apache License, Version 2.0.

Changelog

TODO

3 Comments

  1. Hi,

    I was investigating the plugin and when I add the "Collect Build Metadata" step to one of my existing builds and run the build I get the following exception:

    [com.epam.jenkins.deployment.sphere.plugin.metadata.collector.BuildVersionMetaDataCollector]Build type: hudson.model.FreeStyleBuild
    [com.epam.jenkins.deployment.sphere.plugin.metadata.collector.BuildVersionMetaDataCollector]Build instance: Main-Build #1642
    [com.epam.jenkins.deployment.sphere.plugin.metadata.collector.BuildVersionMetaDataCollector]Build Listener type: hudson.model.StreamBuildListener
    [com.epam.jenkins.deployment.sphere.plugin.metadata.collector.BuildVersionMetaDataCollector]Build Listener instance: hudson.model.StreamBuildListener@55848b4f
    ERROR: Build step failed with exception
    java.lang.UnsupportedOperationException
    	at java.util.AbstractCollection.add(AbstractCollection.java:262)
    	at com.epam.jenkins.deployment.sphere.plugin.metadata.scm.CommitMetaDataCollector.getCommits(CommitMetaDataCollector.java:49)
    	at com.epam.jenkins.deployment.sphere.plugin.metadata.scm.CommitMetaDataCollector.getFailedBuildCommits(CommitMetaDataCollector.java:39)
    	at com.epam.jenkins.deployment.sphere.plugin.metadata.scm.CommitMetaDataCollector.collectCommits(CommitMetaDataCollector.java:30)
    	at com.epam.jenkins.deployment.sphere.plugin.metadata.scm.CommitMetaDataCollector.collect(CommitMetaDataCollector.java:22)
    	at com.epam.jenkins.deployment.sphere.plugin.metadata.collector.BuildVersionMetaDataCollector.collect(BuildVersionMetaDataCollector.java:79)
    	at com.epam.jenkins.deployment.sphere.plugin.BuildVersionMetaDataPublisher.perform(BuildVersionMetaDataPublisher.java:60)
    	at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
    	at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:779)
    	at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:726)
    	at hudson.model.Build$BuildExecution.post2(Build.java:185)
    	at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:671)
    	at hudson.model.Run.execute(Run.java:1766)
    	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    	at hudson.model.ResourceController.execute(ResourceController.java:98)
    	at hudson.model.Executor.run(Executor.java:408)
    Build step 'Collect Build Metadata' marked build as failure
    

    I'd like to continue setting this plugin up but this error is blocking me.

    Thanks for any assistance.

    1. Did you get any resolution to this?  I am having the same issue

  2. Great plugin but it's a bit of hit and miss..

    1- The plugin does not handle snapshot versions... For example, We run multiple builds with the same snapshot version. we want to be able to overwrite the row in the database with the same version... Here is the stack trace:ERROR: Build step failed with exception
    org.skife.jdbi.v2.exceptions.UnableToExecuteStatementException: org.h2.jdbc.JdbcSQLException: Unique index or primary key violation: "PRIMARY_KEY_4 ON PUBLIC.BUILDS(APPLICATION_NAME, BUILD_VERSION) VALUES ( /* key:14 */ 'TestBuild', '0.0.1', null, null, null, null)"; SQL statement:
    INSERT INTO BUILDS (application_name, build_version, build_number, built_at, build_url, build_metadata) values (?, ?, ?, ?, ?, ?) [23505-173] [statement:"INSERT INTO BUILDS (application_name, build_version, build_number, built_at, build_url, build_metadata) values (:application_name, :build_version, :build_number, :built_at, :build_url, :build_metadata)", located:"INSERT INTO BUILDS (application_name, build_version, build_number, built_at, build_url, build_metadata) values (:application_name, :build_version, :build_number, :built_at, :build_url, :build_metadata)", rewritten:"INSERT INTO BUILDS (application_name, build_version, build_number, built_at, build_url, build_metadata) values (?, ?, ?, ?, ?, ?)", arguments:{ positional:{}, named:{application_name:'TestBuild',build_version:'0.0.1',build_metadata:'

    Unknown macro: {"tickets"}

    ',built_at:1448698297000,build_url:'job/Test/job/TestDeploySphere/11/',build_number:11}, finder:[]}]
    at org.skife.jdbi.v2.SQLStatement.internalExecute(SQLStatement.java:1334)
    at org.skife.jdbi.v2.Update.execute(Update.java:56)
    at org.skife.jdbi.v2.sqlobject.UpdateHandler$2.value(UpdateHandler.java:62)
    at org.skife.jdbi.v2.sqlobject.UpdateHandler.invoke(UpdateHandler.java:75)
    at org.skife.jdbi.v2.sqlobject.SqlObject.invoke(SqlObject.java:175)
    at org.skife.jdbi.v2.sqlobject.SqlObject$2.intercept(SqlObject.java:92)
    at org.skife.jdbi.v2.sqlobject.CloseInternalDoNotUseThisClass$$EnhancerByCGLIB$$ced2acf8.save(<generated>)
    at com.epam.jenkins.deployment.sphere.plugin.metadata.persistence.dao.BuildMetaDataDao.save(BuildMetaDataDao.java:27)
    at com.epam.jenkins.deployment.sphere.plugin.metadata.collector.BuildVersionMetaDataCollector.collect(BuildVersionMetaDataCollector.java:82)
    at com.epam.jenkins.deployment.sphere.plugin.BuildVersionMetaDataPublisher.perform(BuildVersionMetaDataPublisher.java:60)
    at org.jenkins_ci.plugins.run_condition.BuildStepRunner$2.run(BuildStepRunner.java:110)
    at org.jenkins_ci.plugins.run_condition.BuildStepRunner$Fail.conditionalRun(BuildStepRunner.java:154)
    at org.jenkins_ci.plugins.run_condition.BuildStepRunner.perform(BuildStepRunner.java:105)
    at org.jenkinsci.plugins.conditionalbuildstep.singlestep.SingleConditionalBuilder.perform(SingleConditionalBuilder.java:108)
    at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:782)
    at hudson.model.Build$BuildExecution.build(Build.java:205)
    at hudson.model.Build$BuildExecution.doRun(Build.java:162)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:534)
    at hudson.model.Run.execute(Run.java:1738)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:98)
    at hudson.model.Executor.run(Executor.java:410)2- I'm unable to delete applications / environments in the global configuration... Meaning if I created a test application or a typo in the name, forget it, you can't rename or delete it.

    3- With the Jira plugin enabled globally..

    The collect build data build normally fails with the following error:ERROR: Step ‘Collect Build Metadata’ aborted due to exception:
    java.lang.NoSuchFieldError: password
    at com.epam.jenkins.deployment.sphere.plugin.metadata.jira.JiraMetaDataCollector.getJiraRestClient(JiraMetaDataCollector.java:144)
    at com.epam.jenkins.deployment.sphere.plugin.metadata.jira.JiraMetaDataCollector.populateJiraIssues(JiraMetaDataCollector.java:127)
    at com.epam.jenkins.deployment.sphere.plugin.metadata.jira.JiraMetaDataCollector.collectJiraIssuesMetaData(JiraMetaDataCollector.java:68)
    at com.epam.jenkins.deployment.sphere.plugin.metadata.jira.JiraMetaDataCollector.collect(JiraMetaDataCollector.java:58)
    at com.epam.jenkins.deployment.sphere.plugin.metadata.collector.BuildVersionMetaDataCollector.populateTickets(BuildVersionMetaDataCollector.java:90)
    at com.epam.jenkins.deployment.sphere.plugin.metadata.collector.BuildVersionMetaDataCollector.collect(BuildVersionMetaDataCollector.java:80)
    at com.epam.jenkins.deployment.sphere.plugin.BuildVersionMetaDataPublisher.perform(BuildVersionMetaDataPublisher.java:60)
    at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:782)
    at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:723)
    at hudson.model.Build$BuildExecution.post2(Build.java:185)
    at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:668)
    at hudson.model.Run.execute(Run.java:1763)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:98)
    at hudson.model.Executor.run(Executor.java:410)