895 B · text 5af55d9
defmodule GitGud.Workflows.WorkflowStep do
use Ecto.Schema
import Ecto.Changeset
alias GitGud.Workflows.WorkflowJob
@valid_statuses ~w(pending running success failure skipped cancelled)
schema "workflow_steps" do
field :number, :integer
field :name, :string
field :status, :string, default: "pending"
field :conclusion, :string
field :started_at, :utc_datetime
field :completed_at, :utc_datetime
# Offsets into the job's flat log stream (stored on the first step):
# this step's lines are [log_index, log_index + log_length).
field :log_index, :integer
field :log_length, :integer
belongs_to :workflow_job, WorkflowJob
timestamps(type: :utc_datetime)
end
def create_changeset(step, attrs) do
step
|> cast(attrs, [:number, :name])
|> validate_required([:number])
end
def valid_statuses, do: @valid_statuses
end