summaryrefslogtreecommitdiff
path: root/.ci/ci.ts
diff options
context:
space:
mode:
Diffstat (limited to '.ci/ci.ts')
-rw-r--r--.ci/ci.ts109
1 files changed, 59 insertions, 50 deletions
diff --git a/.ci/ci.ts b/.ci/ci.ts
index e04f11d..2ad297f 100644
--- a/.ci/ci.ts
+++ b/.ci/ci.ts
@@ -1,67 +1,76 @@
#!/usr/bin/env node
import {
- AnsiblePlaybookJob,
- BuildDockerImageJob,
- DefaultGitHookPipelineBuilder,
- NpmPublishJob,
- FetchCodeJob,
- CoolifyWebhookJob,
- Job,
-} from '@emprespresso/ci_model';
-import { join } from 'path';
+ 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 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 gitHookPipeline = new DefaultGitHookPipelineBuilder();
+ const branch = gitHookPipeline.getBranch();
+ if (!branch) return gitHookPipeline.build();
- const commonBuildArgs = {
- context: gitHookPipeline.getSourceDestination(),
- registry: REGISTRY,
- namespace: NAMESPACE,
- imageTag: branch,
- };
+ 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 adeliePackageBuild: BuildDockerImageJob = {
+ type: "build_docker_image.js",
+ arguments: {
+ ...commonBuildArgs,
+ repository: IMG,
+ buildTarget: IMG,
+ dockerfile: "Dockerfile",
+ },
+ };
+ gitHookPipeline.addStage({
+ parallelJobs: [adeliePackageBuild],
+ });
- const isRelease = branch === 'release';
- if (!isRelease) {
- return gitHookPipeline.build();
- }
+ const webhookUrl = getReleaseDeployment(branch);
+ if (webhookUrl === null) {
+ return gitHookPipeline.build();
+ }
- const release: CoolifyWebhookJob = {
- type: 'coolify_webhook.js',
- arguments: {
- webhookUrl: 'https://plane.liz.coffee/api/v1/deploy?uuid=mkgcsgw800cwkog004sco44w&force=false',
- },
- };
- gitHookPipeline.addStage({ parallelJobs: [
- release
- ] });
+ const release: CoolifyWebhookJob = {
+ type: "coolify_webhook.js",
+ arguments: {
+ webhookUrl: webhookUrl!!,
+ },
+ };
+ gitHookPipeline.addStage({ parallelJobs: [release] });
- return gitHookPipeline.build();
+ return gitHookPipeline.build();
+};
+
+const getReleaseDeployment = (branch: string) => {
+ switch (branch) {
+ case "release":
+ return "https://plane.liz.coffee/api/v1/deploy?uuid=mkgcsgw800cwkog004sco44w&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);
+ const data = getPipeline().serialize();
+ process.stdout.write(data);
};
main();