47 lines
1.0 KiB
TypeScript
Raw Normal View History

2022-02-10 15:47:44 +01:00
import { buildImage } from '$lib/docker';
import { promises as fs } from 'fs';
export default async function ({
applicationId,
debug,
tag,
workdir,
docker,
buildId,
baseDirectory,
secrets,
pullmergeRequestId
2022-02-10 15:47:44 +01:00
}) {
try {
let file = `${workdir}/Dockerfile`;
if (baseDirectory) {
file = `${workdir}/${baseDirectory}/Dockerfile`;
2022-03-19 13:33:31 +01:00
workdir = `${workdir}/${baseDirectory}`;
2022-02-10 15:47:44 +01:00
}
const Dockerfile: Array<string> = (await fs.readFile(`${file}`, 'utf8'))
.toString()
.trim()
.split('\n');
if (secrets.length > 0) {
secrets.forEach((secret) => {
if (secret.isBuildSecret) {
if (pullmergeRequestId) {
if (secret.isPRMRSecret) {
2022-04-01 14:29:06 +02:00
Dockerfile.push(`ARG ${secret.name}=${secret.value}`);
}
} else {
if (!secret.isPRMRSecret) {
2022-04-01 14:29:06 +02:00
Dockerfile.push(`ARG ${secret.name}=${secret.value}`);
}
}
2022-02-10 15:47:44 +01:00
}
});
}
await fs.writeFile(`${file}`, Dockerfile.join('\n'));
await buildImage({ applicationId, tag, workdir, docker, buildId, debug });
} catch (error) {
throw error;
}
}