/** @jsxImportSource smithers-orchestrator */
import { createSmithers } from "smithers-orchestrator";
import { z } from "zod";
const { Workflow, Task, Branch, smithers, outputs } = createSmithers({
input: z.object({
deployToProduction: z.boolean(),
}),
deployment: z.object({
environment: z.enum(["staging", "production"]),
url: z.string(),
}),
});
export default smithers((ctx) => (
<Workflow name="deploy-pipeline">
<Branch
if={ctx.input.deployToProduction}
then={
<Task id="deploy-production" output={outputs.deployment}>
{{ environment: "production", url: "https://prod.example.com" }}
</Task>
}
else={
<Task id="deploy-staging" output={outputs.deployment}>
{{ environment: "staging", url: "https://staging.example.com" }}
</Task>
}
/>
</Workflow>
));