From 3f7cd317d62316c7778fb1a686b38ce1fa3e1229 Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Thu, 11 Aug 2022 16:17:07 +0200 Subject: [PATCH] feat: init heroku buildpacks --- apps/api/src/jobs/deployApplication.ts | 5 ++-- apps/api/src/lib/buildPacks/heroku.ts | 34 ++++++++++++++++++-------- apps/ui/src/lib/templates.ts | 14 +++++------ 3 files changed, 34 insertions(+), 19 deletions(-) diff --git a/apps/api/src/jobs/deployApplication.ts b/apps/api/src/jobs/deployApplication.ts index e31ccf149..c780595f9 100644 --- a/apps/api/src/jobs/deployApplication.ts +++ b/apps/api/src/jobs/deployApplication.ts @@ -192,8 +192,8 @@ import * as buildpacks from '../lib/buildPacks'; } catch (error) { // } - // if (!imageFound || deployNeeded) { - if (true) { + if (!imageFound || deployNeeded) { + // if (true) { await copyBaseConfigurationFiles(buildPack, workdir, buildId, applicationId, baseImage); if (buildpacks[buildPack]) await buildpacks[buildPack]({ @@ -303,6 +303,7 @@ import * as buildpacks from '../lib/buildPacks'; labels, depends_on: [], restart: 'always', + expose: [port], ...(exposePort ? { ports: [`${exposePort}:${port}`] } : {}), // logging: { // driver: 'fluentd', diff --git a/apps/api/src/lib/buildPacks/heroku.ts b/apps/api/src/lib/buildPacks/heroku.ts index 5bf1e4796..1b382547c 100644 --- a/apps/api/src/lib/buildPacks/heroku.ts +++ b/apps/api/src/lib/buildPacks/heroku.ts @@ -1,15 +1,29 @@ import { executeDockerCmd, prisma } from "../common" +import { saveBuildLog } from "./common"; export default async function (data: any): Promise { - // console.log(data) - const {applicationId, tag, dockerId} = data -// try { - await executeDockerCmd({ - dockerId, - command: `pack build ${applicationId}:${tag} --builder heroku/buildpacks:20` - }) + try { + const { buildId, applicationId, tag, dockerId, debug, workdir } = data + await saveBuildLog({ line: `Building image started.`, buildId, applicationId }); + const { stdout } = await executeDockerCmd({ + dockerId, + command: `pack build -p ${workdir} ${applicationId}:${tag} --builder heroku/buildpacks:20` + }) -// } catch (error) { -// throw error; -// } + if (debug) { + const array = stdout.split('\n') + for (const line of array) { + if (line !== '\n') { + await saveBuildLog({ + line: `${line.replace('\n', '')}`, + buildId, + applicationId + }); + } + } + } + await saveBuildLog({ line: `Building image successful.`, buildId, applicationId }); + } catch (error) { + throw error; + } } diff --git a/apps/ui/src/lib/templates.ts b/apps/ui/src/lib/templates.ts index d99995b35..69757a18c 100644 --- a/apps/ui/src/lib/templates.ts +++ b/apps/ui/src/lib/templates.ts @@ -292,13 +292,13 @@ export const buildPacks = [ fancyName: 'Deno', hoverColor: 'hover:bg-green-700', color: 'bg-green-700' - }, - { - name: 'heroku', - fancyName: 'Heroku Buildpack', - hoverColor: 'hover:bg-indigo-700', - color: 'bg-indigo-700' - } + // }, + // { + // name: 'heroku', + // fancyName: 'Heroku Buildpack', + // hoverColor: 'hover:bg-indigo-700', + // color: 'bg-indigo-700' + // } ]; export const scanningTemplates = { '@sveltejs/kit': {