package db import ( "errors" "tangled.org/core/spindle/models" ) type FinishedLog struct { LeaseID string Workflow string Ref string Hash string } func (d *DB) GetFinishedLog(wid models.WorkflowId) (*FinishedLog, error) { if err := validateWorkflowIdentity(wid); err != nil { return nil, err } var fl FinishedLog err := d.QueryRow( `select lease_id, workflow, ref, hash from mill_artifacts where pipeline_id = ? and workflow = ? order by id desc limit 1`, string(wid.PipelineId), wid.Name, ).Scan(&fl.LeaseID, &fl.Workflow, &fl.Ref, &fl.Hash) if err != nil { return nil, err } return &fl, nil } func (d *DB) SaveArtifactRef(leaseID, repoDid string, wid models.WorkflowId, ref, hash string) error { if err := validateWorkflowIdentity(wid); err != nil { return err } _, err := d.Exec( `insert into mill_artifacts (lease_id, repo_did, pipeline_id, workflow, ref, hash) values (?, ?, ?, ?, ?, ?)`, leaseID, repoDid, string(wid.PipelineId), wid.Name, ref, hash, ) return err } func validateWorkflowIdentity(wid models.WorkflowId) error { if wid.PipelineId == "" || wid.Name == "" { return errors.New("incomplete workflow identity") } return nil }