fix: include repoRoot in build and copy all required dirs to image
Build Admin / build (push) Failing after 13s
Details
Build Admin / build (push) Failing after 13s
Details
This commit is contained in:
parent
952286a467
commit
21f57760e7
|
|
@ -14,20 +14,20 @@ export class Admin {
|
|||
* Fast Local Build
|
||||
*/
|
||||
@func()
|
||||
async buildLocal(source: Directory, platform: Platform = "linux/amd64"): Promise<Container> {
|
||||
return await this.buildWithNix(source, platform);
|
||||
async buildLocal(source: Directory, platform: Platform = "linux/amd64", repoRoot?: Directory): Promise<Container> {
|
||||
return await this.buildWithNix(source, platform, repoRoot);
|
||||
}
|
||||
|
||||
/**
|
||||
* Multi-Arch Production Ship
|
||||
*/
|
||||
@func()
|
||||
async ship(source: Directory, kubeconfig: Secret, registry: string): Promise<string> {
|
||||
async ship(source: Directory, kubeconfig: Secret, registry: string, repoRoot?: Directory): Promise<string> {
|
||||
const version = this.generateCalVer();
|
||||
const platforms: Platform[] = ["linux/amd64", "linux/arm64"];
|
||||
|
||||
const builds = platforms.map(async (p) => {
|
||||
const img = await this.buildWithNix(source, p);
|
||||
const img = await this.buildWithNix(source, p, repoRoot);
|
||||
return img.publish(`${registry}/jamkazam-admin:${version}-${p.replace("/", "-")}`);
|
||||
});
|
||||
await Promise.all(builds);
|
||||
|
|
@ -56,14 +56,21 @@ export class Admin {
|
|||
return `${calVer}-${user}-${shortHash}`;
|
||||
}
|
||||
|
||||
private async buildWithNix(source: Directory, platform: Platform): Promise<Container> {
|
||||
private async buildWithNix(source: Directory, platform: Platform, repoRoot?: Directory): Promise<Container> {
|
||||
// 1. Start with a Nix-enabled container
|
||||
let builder = dag.container({ platform })
|
||||
.from("nixpkgs/nix:latest")
|
||||
.withDirectory("/src", source)
|
||||
.withWorkdir("/src")
|
||||
// 2. Build the image tarball via Nix
|
||||
// Add a dummy env var to bust cache if needed
|
||||
.from("nixpkgs/nix:latest");
|
||||
|
||||
if (repoRoot) {
|
||||
builder = builder.withDirectory("/src", repoRoot)
|
||||
.withWorkdir("/src/admin");
|
||||
} else {
|
||||
builder = builder.withDirectory("/src", source)
|
||||
.withWorkdir("/src");
|
||||
}
|
||||
|
||||
// 2. Build the image tarball via Nix
|
||||
builder = builder
|
||||
.withEnvVariable("CACHE_BUST", new Date().getTime().toString())
|
||||
.withEnvVariable("TIMESTAMP", new Date().getTime().toString())
|
||||
.withExec(["nix", "--extra-experimental-features", "nix-command flakes", "build", ".#appImageTarball", "--out-link", "result-tarball"]);
|
||||
|
|
|
|||
|
|
@ -88,10 +88,10 @@
|
|||
# 4. Source code derivation
|
||||
src = pkgs.stdenv.mkDerivation {
|
||||
name = "jam-admin-src";
|
||||
src = ./.;
|
||||
src = ../.;
|
||||
installPhase = ''
|
||||
mkdir -p $out/jam-cloud/admin
|
||||
cp -r . $out/jam-cloud/admin
|
||||
mkdir -p $out/jam-cloud
|
||||
cp -r . $out/jam-cloud/
|
||||
'';
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue