25 lines
1.0 KiB
C#
25 lines
1.0 KiB
C#
using System.Text.Json;
|
|
using System.Text.Json.Serialization;
|
|
|
|
namespace ControlPlane.Core.Models;
|
|
|
|
public enum BuildStatus { Running, Succeeded, Failed }
|
|
public enum BuildKind { DockerImage, DotnetProject, NpmProject }
|
|
|
|
/// <summary>
|
|
/// Persisted record of a single build run — image build, dotnet build, or npm build.
|
|
/// Stored in ClientAssets/builds.json.
|
|
/// </summary>
|
|
public class BuildRecord
|
|
{
|
|
public string Id { get; set; } = Guid.NewGuid().ToString("N")[..8];
|
|
public BuildKind Kind { get; set; }
|
|
public string Target { get; set; } = string.Empty; // image name or project path
|
|
public BuildStatus Status { get; set; } = BuildStatus.Running;
|
|
public DateTimeOffset StartedAt { get; set; } = DateTimeOffset.UtcNow;
|
|
public DateTimeOffset? FinishedAt { get; set; }
|
|
public int? DurationMs { get; set; }
|
|
public string? ImageDigest { get; set; } // populated for DockerImage builds
|
|
public List<string> Log { get; set; } = [];
|
|
}
|