[[build]] name = "komodo-binaries-aarch64" tags = ["release", "binaries", "aarch64"] [build.config] builder = "aarch64-builder" version = "1.16.12" auto_increment_version = false image_name = "komodo-binaries" image_tag = "aarch64" repo = "mbecker20/komodo" dockerfile_path = "bin/binaries.Dockerfile" image_registry.domain = "ghcr.io" image_registry.account = "mbecker20" ## [[build]] name = "komodo-binaries-x86_64" tags = ["release", "binaries", "x86_64"] [build.config] builder = "x86_64-builder" version = "1.16.12" auto_increment_version = false image_name = "komodo-binaries" image_tag = "x86_64" repo = "mbecker20/komodo" dockerfile_path = "bin/binaries.Dockerfile" image_registry.domain = "ghcr.io" image_registry.account = "mbecker20" ## [[build]] name = "komodo-frontend" tags = ["release", "frontend"] [build.config] builder = "x86_64-builder" version = "1.16.12" auto_increment_version = false image_name = "komodo-frontend" repo = "mbecker20/komodo" dockerfile_path = "frontend/Dockerfile" image_registry.domain = "ghcr.io" image_registry.account = "mbecker20" ## [[build]] name = "komodo-core" tags = ["release", "core"] [build.config] builder = "x86_64-builder" version = "1.16.12" auto_increment_version = false image_name = "komodo" repo = "mbecker20/komodo" pre_build.command = """ docker buildx create --name builder --use --bootstrap """ dockerfile_path = "bin/core/multi-arch.Dockerfile" image_registry.domain = "ghcr.io" image_registry.account = "mbecker20" extra_args = [ "--platform linux/amd64,linux/arm64", "--builder builder" ] ## [[build]] name = "komodo-periphery" tags = ["release", "periphery"] [build.config] builder = "x86_64-builder" version = "1.16.12" auto_increment_version = false image_name = "periphery" repo = "mbecker20/komodo" pre_build.command = """ docker buildx create --name builder --use --bootstrap """ dockerfile_path = "bin/periphery/multi-arch.Dockerfile" image_registry.domain = "ghcr.io" image_registry.account = "mbecker20" extra_args = [ "--platform linux/amd64,linux/arm64", "--builder builder" ] ## [[procedure]] name = "build_release" tags = ["release"] [[procedure.config.stage]] name = "Build Binaries + Frontend" enabled = true executions = [ { execution.type = "RunBuild", execution.params.build = "komodo-binaries-x86_64", enabled = true }, { execution.type = "RunBuild", execution.params.build = "komodo-binaries-aarch64", enabled = true }, { execution.type = "RunBuild", execution.params.build = "komodo-frontend", enabled = true }, ] [[procedure.config.stage]] name = "Build Release Images + Publish Binaries" enabled = true executions = [ { execution.type = "RunBuild", execution.params.build = "komodo-core", enabled = true }, { execution.type = "RunBuild", execution.params.build = "komodo-periphery", enabled = true }, ] ## [[action]] name = "publish_release" tags = ["release"] [action.config] file_contents = """ const KOMODO_VERSION = "1.16.11"; const APPS = ["core", "periphery"]; const ARCHS = ["x86", "aarch64"]; const last_version = ( await komodo.read("GetVariable", { name: "KOMODO_VERSION" }) ).value; // Update Variable await komodo.write("UpdateVariableValue", { name: "KOMODO_VERSION", value: KOMODO_VERSION, }); console.log("Updated KOMODO_VERSION to " + KOMODO_VERSION); // Update Builds for (const app of APPS) { for (const arch of ARCHS) { const name = `komodo-${app}-${arch}`; await komodo.write("UpdateBuild", { id: name, config: { version: KOMODO_VERSION as any, }, }); console.log(`Updated Build ${name} to ${KOMODO_VERSION}`); } } // Update 'release' Sync references const sync = await komodo.read("GetResourceSync", { sync: "release" }); const file = sync.info?.remote_contents?.find( (file) => file.path === "release.toml", ); await komodo.write("WriteSyncFileContents", { sync: "release", resource_path: file.resource_path, file_path: file.path, contents: file.contents.replaceAll(last_version, KOMODO_VERSION), }); console.log(`Updated Sync references to ${KOMODO_VERSION}`); // Start the procedure run. await komodo.execute("RunProcedure", { procedure: "build_release" }); console.log("Publish Procedure triggered ✅"); """ ## [[resource_sync]] name = "release" tags = ["release"] [resource_sync.config] git_provider = "git.komo.do" repo = "komodo/build" git_account = "mbecker20" resource_path = ["release.toml"] managed = true match_tags = ["release"]