From b7fe52327a80d0c9dbfad6cb69922a813ffe57be Mon Sep 17 00:00:00 2001 From: Five Grant <5@fivegrant.com> Date: Fri, 9 Feb 2024 08:28:03 -0600 Subject: [PATCH] Split up builds --- .github/workflows/publish.yaml | 18 ++++++++++-- docker/docker-bake-amd64.hcl | 54 ++++++++++++++++++++++++++++++++++ docker/docker-bake-arm64.hcl | 54 ++++++++++++++++++++++++++++++++++ 3 files changed, 124 insertions(+), 2 deletions(-) create mode 100644 docker/docker-bake-amd64.hcl create mode 100644 docker/docker-bake-arm64.hcl diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 80b38c9..7311072 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -25,12 +25,26 @@ jobs: # echo "tag=$TAG" >> $GITHUB_OUTPUT # Build and Publish all targets associated with specified group - bake: + bake-arm64: # needs: # - generate-tag uses: darpa-askem/.github/.github/workflows/bake-publish.yml@main with: - file: 'docker/docker-bake.hcl' + file: 'docker/docker-bake-arm64.hcl' + group: 'prod' + registry: 'ghcr.io' + organization: ${{ github.repository_owner }} + # tag: ${{ needs.generate-tag.outputs.tag }} + secrets: + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + bake-amd64: + # needs: + # - generate-tag + uses: darpa-askem/.github/.github/workflows/bake-publish.yml@main + with: + file: 'docker/docker-bake-amd64.hcl' group: 'prod' registry: 'ghcr.io' organization: ${{ github.repository_owner }} diff --git a/docker/docker-bake-amd64.hcl b/docker/docker-bake-amd64.hcl new file mode 100644 index 0000000..9b519e2 --- /dev/null +++ b/docker/docker-bake-amd64.hcl @@ -0,0 +1,54 @@ +variable "DOCKER_REGISTRY" { + default = "ghcr.io" +} +variable "DOCKER_ORG" { + default = "darpa-askem" +} +variable "VERSION" { + default = "local" +} + +# ---------------------------------------------------------------------------------------------------------------------- + +function "buildtag" { + params = [image_name, prefix, suffix] + result = [ "${DOCKER_REGISTRY}/${DOCKER_ORG}/${image_name}:${check_prefix(prefix)}${VERSION}${check_suffix(suffix)}", "${image_name}:build" ] +} + +function "tag" { + params = [image_name, prefix, suffix] + result = [ "${DOCKER_REGISTRY}/${DOCKER_ORG}/${image_name}:${check_prefix(prefix)}${VERSION}${check_suffix(suffix)}" ] +} + +function "check_prefix" { + params = [tag] + result = notequal("",tag) ? "${tag}-": "" +} + +function "check_suffix" { + params = [tag] + result = notequal("",tag) ? "-${tag}": "" +} + +# ---------------------------------------------------------------------------------------------------------------------- + +group "prod" { + targets = ["askem-julia"] +} + +group "default" { + targets = [] +} + +# ---------------------------------------------------------------------------------------------------------------------- + +target "_platforms" { + platforms = ["linux/amd64"] +} + +target "askem-julia" { + inherits = ["_platforms"] + context = "." + tags = tag("askem-julia", "", "") + dockerfile = "docker/Dockerfile" +} diff --git a/docker/docker-bake-arm64.hcl b/docker/docker-bake-arm64.hcl new file mode 100644 index 0000000..6d52f76 --- /dev/null +++ b/docker/docker-bake-arm64.hcl @@ -0,0 +1,54 @@ +variable "DOCKER_REGISTRY" { + default = "ghcr.io" +} +variable "DOCKER_ORG" { + default = "darpa-askem" +} +variable "VERSION" { + default = "local" +} + +# ---------------------------------------------------------------------------------------------------------------------- + +function "buildtag" { + params = [image_name, prefix, suffix] + result = [ "${DOCKER_REGISTRY}/${DOCKER_ORG}/${image_name}:${check_prefix(prefix)}${VERSION}${check_suffix(suffix)}", "${image_name}:build" ] +} + +function "tag" { + params = [image_name, prefix, suffix] + result = [ "${DOCKER_REGISTRY}/${DOCKER_ORG}/${image_name}:${check_prefix(prefix)}${VERSION}${check_suffix(suffix)}" ] +} + +function "check_prefix" { + params = [tag] + result = notequal("",tag) ? "${tag}-": "" +} + +function "check_suffix" { + params = [tag] + result = notequal("",tag) ? "-${tag}": "" +} + +# ---------------------------------------------------------------------------------------------------------------------- + +group "prod" { + targets = ["askem-julia"] +} + +group "default" { + targets = [] +} + +# ---------------------------------------------------------------------------------------------------------------------- + +target "_platforms" { + platforms = ["linux/arm64"] +} + +target "askem-julia" { + inherits = ["_platforms"] + context = "." + tags = tag("askem-julia", "", "") + dockerfile = "docker/Dockerfile" +}