Skip to content

Add support to ct record for CI integration #290

@tzanko-matev

Description

@tzanko-matev

Currently codetracer-ci is integrated with ct shell. We want to also integrate it with ct record in order to be able to trace programs via the db-backend. We need the following arguments:

ct record -a=http://localhost{route}/ --socket=/file/path/to/dot.sock

ct record is supposed to send an HTTP POST request through the given socket! The data sent should contain the following fields:

namespace CIRunnerEventSourcing.API.Model.CodeTracerDesktop;

public sealed class SessionEvent
{
    public SessionEventKind? Kind { get; set; }
    public string? Program { get; set; }
    public string? Binary { get; set; }
    public SessionEventTrace? Trace { get; set; }
    public string? Command { get; set; }
    public int? SessionId { get; set; }
    public SessionEventStatus? Status { get; set; }
    public string? ErrorMessage { get; set; }
    public int? FirstLine { get; set; }
    public int? LastLine { get; set; }
    public int? ActionId { get; set; }
    public string? Time { get; set; }
}

public enum SessionEventKind
{
    CustomCompilerFlagCommand = 0,
    LinkingBinary = 1,
    RecordingCommand = 2,
}

public enum SessionEventStatus
{
    WorkingStatus = 0,
    OkStatus = 1,
    ErrorStatus = 2,
}

public sealed class SessionEventTrace
{
    public required int Id { get; set; }
    public string? Program { get; set; }
    public List<string>? Args { get; set; }
    public string? Output { get; set; }
    public List<string>? SourceFolders { get; set; }
    public string? LowLevelFolder { get; set; }
    public string? CompileCommand { get; set; }
    public string? OutputFolder { get; set; }
    public string? Date { get; set; }
    public string? Duration { get; set; }
    public SessionLanguage Lang { get; set; }
    public bool Imported { get; set; }
    public bool Callgraph { get; set; }
    public bool Events { get; set; }
    public bool Test { get; set; }
    public int ArchiveServerID { get; set; }
    public int ShellID { get; set; }
    public int TeamID { get; set; }
    public int PID { get; set; }
}
public enum SessionLanguage
{
    LangC = 0,
    LangCpp = 1,
    LangRust = 2,
    LangNim = 3,
    LangGo = 4,
    LangPascal = 5,
    LangPython = 6,
    LangRuby = 7,
    LangJavascript = 8,
    LangLua = 9,
    LangAsm = 10,
    LangUnknown = 11,
}

Metadata

Metadata

Labels

ct-entrypointIssues related to the ct utilityenhancementNew feature or request

Type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions