#!/usr/bin/env node import { BuildDockerImageJob, DefaultGitHookPipelineBuilder, CoolifyWebhookJob, FetchCodeJob, Job, } from '@emprespresso/ci_model'; import { join } from 'path'; const REGISTRY = 'img.liz.coffee'; const NAMESPACE = 'emprespresso'; const IMG = 'ansicolor'; const REMOTE = 'ssh://code@code.liz.coffee:2222'; 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 build: BuildDockerImageJob = { type: 'build_docker_image.js', arguments: { ...commonBuildArgs, repository: IMG, buildTarget: 'ansicolor', dockerfile: 'Dockerfile', }, }; gitHookPipeline.addStage({ parallelJobs: [build], }); const isRelease = branch === 'release'; if (!isRelease) { return gitHookPipeline.build(); } const deploy: CoolifyWebhookJob = { type: 'coolify_webhook.js', arguments: { webhookUrl: 'https://plane.liz.coffee/api/v1/deploy?uuid=ia1v2kqy9199dbfpe3bqok78&force=false', }, }; gitHookPipeline.addStage({ parallelJobs: [deploy] }); return gitHookPipeline.build(); }; const main = () => { const data = getPipeline().serialize(); process.stdout.write(data); }; main();