348 lines · 13.2 KB
import { env } from "cloudflare:workers";
import { repoDb } from "../scoped-db";
import { jobDb } from "./scope";
import { decryptRepoSecret } from "../secrets";
import { loadRepoById } from "../repos";
import { setCommitStatus } from "../statuses";
import { runUrl, statusContext } from "./scheduler";
import { environmentIdFor, loadSecretRows } from "./config-values";
import { markDeploymentStarted, settleDeployment } from "./deployments";
import { cloudRunnerSize } from "./runner-sizes";
import { withJobDefaults } from "./compile";
import type { CompiledJob } from "./compile";
import { jobSeconds, meterCompletedJob, runnerMeter } from "../metering/ci";
import { captureServerEvent } from "../analytics";
import { releaseJobHold } from "./job-hold";
import { mintHeldRepoToken, releaseRepoToken } from "../git/artifacts";
import type { Conclusion, JobStatus, RepoRow, RunStatus } from "~/lib/types";

export type WorkflowRunRow = {
  id: string;
  repo_id: string;
  source_repo_id: string;
  run_number: number;
  workflow_path: string;
  workflow_name: string;
  event: string;
  ref: string;
  sha: string;
  title: string;
  actor_id: string | null;
  pr_number: number | null;
  approval_required: number;
  workflow_source: string | null;
  context: string | null;
  trigger_depth: number;
  rerun_of: string | null;
  untrusted: number;
  status: RunStatus;
  conclusion: Conclusion | null;
  created_at: number;