- Github App
+ {JobAgentTypeDisplayNames[agent.type as JobAgentType]}
diff --git a/apps/webservice/src/app/[workspaceSlug]/(app)/policies/[policyId]/edit/configuration/EditConfiguration.tsx b/apps/webservice/src/app/[workspaceSlug]/(app)/policies/[policyId]/edit/configuration/EditConfiguration.tsx
index f8a7341cf..f02719ddd 100644
--- a/apps/webservice/src/app/[workspaceSlug]/(app)/policies/[policyId]/edit/configuration/EditConfiguration.tsx
+++ b/apps/webservice/src/app/[workspaceSlug]/(app)/policies/[policyId]/edit/configuration/EditConfiguration.tsx
@@ -3,6 +3,7 @@
import type * as SCHEMA from "@ctrlplane/db/schema";
import type { DeploymentCondition } from "@ctrlplane/validators/deployments";
import type { EnvironmentCondition } from "@ctrlplane/validators/environments";
+import type { ResourceCondition } from "@ctrlplane/validators/resources";
import { useRouter } from "next/navigation";
import { IconPlus, IconTrash } from "@tabler/icons-react";
import { z } from "zod";
@@ -31,11 +32,7 @@ import { Switch } from "@ctrlplane/ui/switch";
import { Textarea } from "@ctrlplane/ui/textarea";
import { deploymentCondition } from "@ctrlplane/validators/deployments";
import { environmentCondition } from "@ctrlplane/validators/environments";
-import type {
- ResourceCondition} from "@ctrlplane/validators/resources";
-import {
- resourceCondition,
-} from "@ctrlplane/validators/resources";
+import { resourceCondition } from "@ctrlplane/validators/resources";
import { DeploymentConditionRender } from "~/app/[workspaceSlug]/(app)/_components/deployments/condition/DeploymentConditionRender";
import { EnvironmentConditionRender } from "~/app/[workspaceSlug]/(app)/_components/environment/condition/EnvironmentConditionRender";
diff --git a/apps/webservice/src/components/form/job-agent/JobAgentJenkinsPipelineConfig.tsx b/apps/webservice/src/components/form/job-agent/JobAgentJenkinsPipelineConfig.tsx
new file mode 100644
index 000000000..d6665ee40
--- /dev/null
+++ b/apps/webservice/src/components/form/job-agent/JobAgentJenkinsPipelineConfig.tsx
@@ -0,0 +1,47 @@
+"use client";
+
+import { Button } from "@ctrlplane/ui/button";
+import { FormDescription, FormItem, FormLabel } from "@ctrlplane/ui/form";
+import { Input } from "@ctrlplane/ui/input";
+
+interface JobAgentJenkinsPipelineConfigProps {
+ value: Record;
+ onChange: (value: Record) => void;
+ disabled?: boolean;
+ isPending?: boolean;
+}
+
+export const JobAgentJenkinsPipelineConfig: React.FC<
+ JobAgentJenkinsPipelineConfigProps
+> = ({ value, onChange, disabled, isPending }) => {
+ const handleJobUrlChange = (e: React.ChangeEvent) => {
+ onChange({
+ ...value,
+ jobUrl: e.target.value,
+ });
+ };
+
+ return (
+
+
+ Jenkins Job URL
+
+
+ The URL path to the Jenkins job (format: {"{JENKINS_URL}"}
+ /job/org/job/repo/job/branch)
+
+
+
+
+
+
+
+ );
+};
diff --git a/packages/job-dispatch/src/job-dispatch.ts b/packages/job-dispatch/src/job-dispatch.ts
index 0d49b48e7..514e87a2b 100644
--- a/packages/job-dispatch/src/job-dispatch.ts
+++ b/packages/job-dispatch/src/job-dispatch.ts
@@ -99,11 +99,6 @@ class DispatchBuilder {
data: { jobId: wf.id },
})),
);
- await Promise.all(
- validJobsWithResolvedVariables.map((j) =>
- updateJob(this.db, j.id, { status: JobStatus.InProgress }),
- ),
- );
}
await Promise.all(
diff --git a/packages/validators/src/jobs/agents/index.ts b/packages/validators/src/jobs/agents/index.ts
index d44da739c..4332fc746 100644
--- a/packages/validators/src/jobs/agents/index.ts
+++ b/packages/validators/src/jobs/agents/index.ts
@@ -2,4 +2,14 @@ export enum JobAgentType {
KubernetesJob = "kubernetes-job",
GithubApp = "github-app",
ExecWindows = "exec-windows",
+ ExecLinux = "exec-linux",
+ Jenkins = "jenkins",
}
+
+export const JobAgentTypeDisplayNames: Record = {
+ [JobAgentType.KubernetesJob]: "Kubernetes Job",
+ [JobAgentType.GithubApp]: "Github App",
+ [JobAgentType.ExecWindows]: "PowerShell",
+ [JobAgentType.ExecLinux]: "Shell",
+ [JobAgentType.Jenkins]: "Jenkins",
+};