#!/usr/bin/env node import { AnsiblePlaybookJob, BuildDockerImageJob, DefaultGitHookPipelineBuilder, NpmPublishJob, FetchCodeJob, CoolifyWebhookJob, Job, } from "@emprespresso/ci_model"; import { join } from "path"; const REGISTRY = "img.liz.coffee"; const NAMESPACE = "emprespresso"; const IMG = "adelie"; const REMOTE = "https://code.liz.coffee"; const getPipeline = () => { const gitHookPipeline = new DefaultGitHookPipelineBuilder(); const branch = gitHookPipeline.getBranch(); if (!branch) return gitHookPipeline.build(); const commonBuildArgs = { context: gitHookPipeline.getSourceDestination(), registry: REGISTRY, namespace: NAMESPACE, imageTag: branch, }; const adeliePackageBuild: BuildDockerImageJob = { type: "build_docker_image.js", arguments: { ...commonBuildArgs, repository: IMG, buildTarget: IMG, dockerfile: "Dockerfile", }, }; gitHookPipeline.addStage({ parallelJobs: [adeliePackageBuild], }); const webhookUrl = getReleaseDeployment(branch); if (webhookUrl === null) { return gitHookPipeline.build(); } const release: CoolifyWebhookJob = { type: "coolify_webhook.js", arguments: { webhookUrl: webhookUrl!!, }, }; gitHookPipeline.addStage({ parallelJobs: [release] }); return gitHookPipeline.build(); }; const getReleaseDeployment = (branch: string) => { switch (branch) { case "release": return "https://plane.liz.coffee/api/v1/deploy?uuid=p8g8gg4g88wow48488sgko8g&force=false"; case "main": return "https://plane.liz.coffee/api/v1/deploy?uuid=l8wksc08gcossck408gscgo8&force=false"; default: return null; } }; const main = () => { const data = getPipeline().serialize(); process.stdout.write(data); }; main();