Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/org/ods/orchestration/FinalizeStage.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import org.ods.orchestration.util.Project
import org.ods.services.BitbucketService
import org.ods.services.OpenShiftService
import org.ods.services.GitService
import org.ods.util.PipelineDebugInfo
import org.ods.util.PipelineSteps
import org.ods.util.IPipelineSteps
import org.ods.util.Logger
Expand Down Expand Up @@ -93,6 +94,7 @@ class FinalizeStage extends Stage {

// Dump a representation of the project
logger.debug("---- ODS Project (${project.key}) data ----\r${project}\r -----")
new PipelineDebugInfo().save(project, steps)

levaDocScheduler.run(phase, MROPipelineUtil.PipelinePhaseLifecycleStage.PRE_END)

Expand Down
1 change: 1 addition & 0 deletions src/org/ods/util/IPipelineSteps.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -76,4 +76,5 @@ interface IPipelineSteps {
def unwrap()

def emailext(Map args)

}
42 changes: 42 additions & 0 deletions src/org/ods/util/PipelineDebugInfo.groovy
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package org.ods.util

import com.cloudbees.groovy.cps.NonCPS
import groovy.json.JsonOutput
import hudson.EnvVars
import org.ods.orchestration.util.Project

class PipelineDebugInfo {

public final String PROJECT_DEBUG_INFO_FILENAME = "project_debug_info.yml"
public final String ENVIRONMENT_DEBUG_INFO_FILENAME = "environment_debug_info.yml"

void save(Project project, PipelineSteps steps) {

steps.writeFile(PROJECT_DEBUG_INFO_FILENAME, "${project}")
steps.archiveArtifacts(PROJECT_DEBUG_INFO_FILENAME)

Map environmentDebugInfo = getStepsEnvDebugInfo(steps)
String environmentDebugInfoTxt = JsonOutput.toJson(environmentDebugInfo)
steps.writeFile(ENVIRONMENT_DEBUG_INFO_FILENAME, "${environmentDebugInfoTxt}")
steps.archiveArtifacts(ENVIRONMENT_DEBUG_INFO_FILENAME)
}

private Map getStepsEnvDebugInfo(PipelineSteps steps) {
EnvVars environmentVariables = steps.getEnv().getEnvironment()
Set<Map.Entry> entriesSet = environmentVariables.entrySet()
return getVarsMapFromEntriesSet(entriesSet)
}

@NonCPS
private Map getVarsMapFromEntriesSet(Set entriesSet) {
Map result = [:]
List entriesList = entriesSet.toList()
for (int i=0; i<entriesList.size(); i++) {
Map.Entry entry = entriesList.get(i)
String key = entry.getKey() as String
String value = entry.getValue() as String
result.put(key, value)
}
return result
}
}