Search in sources :

Example 1 with CIParameter

use of com.hp.octane.integrations.dto.parameters.CIParameter in project octane-ci-java-sdk by MicroFocus.

the class TasksProcessorImpl method executePipelineRunExecuteRequest.

private void executePipelineRunExecuteRequest(OctaneResultAbridged result, String jobId, String originalBody) {
    logger.info(configurer.octaneConfiguration.getLocationForLog() + "RunExecute job " + jobId);
    // test runner started from here, so it will be added to cache
    configurationService.addToOctaneRootsCache(jobId);
    CIParameters ciParameters = originalBody != null ? DTOFactory.getInstance().dtoFromJson(originalBody, CIParameters.class) : null;
    if (ciParameters == null) {
        ciParameters = dtoFactory.newDTO(CIParameters.class);
        ciParameters.setParameters(new ArrayList<>());
    }
    CIParameter ciParameter = dtoFactory.newDTO(CIParameter.class);
    ciParameter.setName(SdkConstants.JobParameters.OCTANE_CONFIG_ID_PARAMETER_NAME).setValue(configurer.octaneConfiguration.getInstanceId());
    ciParameters.getParameters().add(ciParameter);
    CIParameter octaneUrlParameter = dtoFactory.newDTO(CIParameter.class);
    octaneUrlParameter.setName(SdkConstants.JobParameters.OCTANE_URL_PARAMETER_NAME).setValue(configurer.octaneConfiguration.getUrl());
    ciParameters.getParameters().add(octaneUrlParameter);
    configurer.pluginServices.runPipeline(jobId, ciParameters);
    result.setStatus(HttpStatus.SC_CREATED);
}
Also used : CIParameters(com.hp.octane.integrations.dto.parameters.CIParameters) CIParameter(com.hp.octane.integrations.dto.parameters.CIParameter)

Example 2 with CIParameter

use of com.hp.octane.integrations.dto.parameters.CIParameter in project octane-ci-java-sdk by MicroFocus.

the class TaskingServiceTests method testJobsWithParamsAPI.

@Test
public void testJobsWithParamsAPI() {
    TasksProcessor tasksProcessor = client.getTasksProcessor();
    Assert.assertNotNull(tasksProcessor);
    OctaneTaskAbridged taskAbridged = dtoFactory.newDTO(OctaneTaskAbridged.class).setId(UUID.randomUUID().toString()).setUrl(OctaneSPEndpointSimulator.getSimulatorUrl() + APIPrefix + "/jobs");
    OctaneResultAbridged resultAbridged = tasksProcessor.execute(taskAbridged);
    runCommonAsserts(resultAbridged, taskAbridged.getId(), HttpStatus.SC_OK);
    CIJobsList ciJobsList = dtoFactory.dtoFromJson(resultAbridged.getBody(), CIJobsList.class);
    Assert.assertNotNull(ciJobsList);
    Assert.assertNotNull(ciJobsList.getJobs());
    Assert.assertEquals(3, ciJobsList.getJobs().length);
    for (PipelineNode ciJob : ciJobsList.getJobs()) {
        Assert.assertNotNull(ciJob);
        Assert.assertTrue(ciJob.getName().startsWith("Job "));
        Assert.assertTrue(ciJob.getJobCiId().startsWith("job-"));
        Assert.assertNotNull(ciJob.getParameters());
        Assert.assertEquals(3, ciJob.getParameters().size());
        for (CIParameter ciParameter : ciJob.getParameters()) {
            Assert.assertNotNull(ciParameter);
            Assert.assertNotNull(ciParameter.getName());
            Assert.assertNotNull(ciParameter.getType());
            Assert.assertNotNull(ciParameter.getValue());
        }
    }
}
Also used : CIJobsList(com.hp.octane.integrations.dto.general.CIJobsList) OctaneResultAbridged(com.hp.octane.integrations.dto.connectivity.OctaneResultAbridged) PipelineNode(com.hp.octane.integrations.dto.pipelines.PipelineNode) OctaneTaskAbridged(com.hp.octane.integrations.dto.connectivity.OctaneTaskAbridged) CIParameter(com.hp.octane.integrations.dto.parameters.CIParameter) Test(org.junit.Test)

Example 3 with CIParameter

use of com.hp.octane.integrations.dto.parameters.CIParameter in project octane-gitlab-service by MicroFocus.

the class GitlabServices method getParameters.

public List<CIParameter> getParameters(ParsedPath project) {
    List<CIParameter> parametersList = new ArrayList<>();
    List<Variable> projectVariables = VariablesHelper.getVariables(project, gitLabApi, applicationSettings.getConfig());
    projectVariables.forEach(var -> {
        CIParameter param = dtoFactory.newDTO(CIParameter.class);
        param.setType(CIParameterType.STRING);
        param.setName(var.getKey());
        param.setDefaultValue(var.getValue());
        parametersList.add(param);
    });
    return parametersList;
}
Also used : Variable(org.gitlab4j.api.models.Variable) ArrayList(java.util.ArrayList) CIParameter(com.hp.octane.integrations.dto.parameters.CIParameter)

Example 4 with CIParameter

use of com.hp.octane.integrations.dto.parameters.CIParameter in project octane-gitlab-service by MicroFocus.

the class EventListener method handleEvent.

private Response handleEvent(JSONObject event) {
    log.traceEntry();
    try {
        if (isMergeRequestEvent(event)) {
            return handleMergeRequestEvent(event);
        }
        CIEventType eventType = getEventType(event);
        if (eventType == CIEventType.UNDEFINED || eventType == CIEventType.QUEUED)
            return Response.ok().build();
        List<CIEvent> eventList = getCIEvents(event);
        eventList.forEach(ciEvent -> {
            if (ciEvent.getResult() == null) {
                ciEvent.setResult(CIBuildResult.UNAVAILABLE);
            }
            try {
                log.trace(new ObjectMapper().writeValueAsString(ciEvent));
            } catch (Exception e) {
                log.debug("Failed to trace an incoming event", e);
            }
            if (eventType == CIEventType.FINISHED || eventType == CIEventType.STARTED) {
                ParsedPath parsedPath = null;
                if (ciEvent.getProject().endsWith("/build")) {
                    parsedPath = new ParsedPath(ciEvent.getProject().substring(0, ciEvent.getProject().length() - 6), gitLabApi, PathType.PROJECT);
                    if (parsedPath.isMultiBranch()) {
                        ciEvent.setSkipValidation(true);
                    }
                }
                if (ciEvent.getProject().contains(ParsedPath.PIPELINE_JOB_CI_ID_PREFIX)) {
                    parsedPath = new ParsedPath(ciEvent.getProject(), gitLabApi, PathType.PIPELINE);
                    if (parsedPath.isMultiBranch()) {
                        String projectDisplayName = parsedPath.getNameWithNameSpaceForDisplayName() != null ? parsedPath.getNameWithNameSpaceForDisplayName() : parsedPath.getFullPathOfProjectWithBranch();
                        ciEvent.setProjectDisplayName(projectDisplayName + "/" + parsedPath.getCurrentBranch());
                        ciEvent.setParentCiId(parsedPath.getJobCiId(true)).setMultiBranchType(MultiBranchType.MULTI_BRANCH_CHILD).setSkipValidation(true);
                    }
                }
                if (isPipelineEvent(event)) {
                    List<CIParameter> parametersList = new ArrayList<>();
                    JSONArray variablesList = VariablesHelper.getVariablesListFromPipelineEvent(event);
                    // check if this parameter is in job level:
                    List<Variable> allVariables = VariablesHelper.getVariables(parsedPath, gitLabApi, applicationSettings.getConfig());
                    variablesList.forEach(var -> {
                        parametersList.add(VariablesHelper.convertVariableToParameter(var));
                    });
                    if (parametersList.size() > 0) {
                        ciEvent.setParameters(parametersList);
                    }
                }
            }
            OctaneSDK.getClients().forEach(client -> client.getEventsService().publishEvent(ciEvent));
        });
        if (eventType == CIEventType.FINISHED) {
            Integer projectId = isPipelineEvent(event) ? event.getJSONObject("project").getInt("id") : event.getInt("project_id");
            if (!isPipelineEvent(event)) {
                Project project = gitLabApi.getProjectApi().getProject(projectId);
                Integer jobId = getEventTargetObjectId(event);
                Job job = gitLabApi.getJobApi().getJob(projectId, jobId);
                if (job.getArtifactsFile() != null) {
                    sendCodeCoverage(projectId, project, job);
                    GherkinTestResultsProvider gherkinTestResultsProvider = GherkinTestResultsProvider.getInstance(applicationSettings);
                    boolean isGherkinTestsExist = gherkinTestResultsProvider.createTestList(project, job, gitLabApi.getJobApi().downloadArtifactsFile(projectId, job.getId()));
                    // looking for Regular tests
                    if (!isGherkinTestsExist) {
                        JunitTestResultsProvider testResultsProduce = JunitTestResultsProvider.getInstance(applicationSettings);
                        boolean testResultsExist = testResultsProduce.createTestList(project, job, gitLabApi.getJobApi().downloadArtifactsFile(projectId, job.getId()));
                        if (!testResultsExist) {
                            String warning = String.format("No test results found by using the %s pattern", applicationSettings.getConfig().getGitlabTestResultsFilePattern());
                            log.warn(warning);
                            return Response.ok().entity(warning).build();
                        }
                    }
                }
            }
        }
    } catch (Exception e) {
        log.warn("An error occurred while handling GitLab event", e);
    }
    log.traceExit();
    return Response.ok().build();
}
Also used : CIEvent(com.hp.octane.integrations.dto.events.CIEvent) ParsedPath(com.microfocus.octane.gitlab.helpers.ParsedPath) GherkinTestResultsProvider(com.microfocus.octane.gitlab.testresults.GherkinTestResultsProvider) JSONArray(org.json.JSONArray) GitLabApiException(org.gitlab4j.api.GitLabApiException) MalformedURLException(java.net.MalformedURLException) IOException(java.io.IOException) JunitTestResultsProvider(com.microfocus.octane.gitlab.testresults.JunitTestResultsProvider) CIEventType(com.hp.octane.integrations.dto.events.CIEventType) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) CIParameter(com.hp.octane.integrations.dto.parameters.CIParameter)

Example 5 with CIParameter

use of com.hp.octane.integrations.dto.parameters.CIParameter in project octane-gitlab-service by MicroFocus.

the class VariablesHelper method convertVariableToParameter.

public static CIParameter convertVariableToParameter(Object var) {
    String key = (String) ((JSONObject) var).get(KEY);
    String value = (String) ((JSONObject) var).get(VALUE);
    CIParameter param = dtoFactory.newDTO(CIParameter.class);
    param.setType(CIParameterType.STRING);
    param.setName(key);
    param.setValue(value);
    return param;
}
Also used : CIParameter(com.hp.octane.integrations.dto.parameters.CIParameter)

Aggregations

CIParameter (com.hp.octane.integrations.dto.parameters.CIParameter)5 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)1 OctaneResultAbridged (com.hp.octane.integrations.dto.connectivity.OctaneResultAbridged)1 OctaneTaskAbridged (com.hp.octane.integrations.dto.connectivity.OctaneTaskAbridged)1 CIEvent (com.hp.octane.integrations.dto.events.CIEvent)1 CIEventType (com.hp.octane.integrations.dto.events.CIEventType)1 CIJobsList (com.hp.octane.integrations.dto.general.CIJobsList)1 CIParameters (com.hp.octane.integrations.dto.parameters.CIParameters)1 PipelineNode (com.hp.octane.integrations.dto.pipelines.PipelineNode)1 ParsedPath (com.microfocus.octane.gitlab.helpers.ParsedPath)1 GherkinTestResultsProvider (com.microfocus.octane.gitlab.testresults.GherkinTestResultsProvider)1 JunitTestResultsProvider (com.microfocus.octane.gitlab.testresults.JunitTestResultsProvider)1 IOException (java.io.IOException)1 MalformedURLException (java.net.MalformedURLException)1 ArrayList (java.util.ArrayList)1 GitLabApiException (org.gitlab4j.api.GitLabApiException)1 Variable (org.gitlab4j.api.models.Variable)1 JSONArray (org.json.JSONArray)1 Test (org.junit.Test)1