Skip to content

Commit

Permalink
Fix docker bake tagging (#782)
Browse files Browse the repository at this point in the history
Co-authored-by: Daniel Mancia <[email protected]>
  • Loading branch information
pschork and dmanc authored Oct 3, 2024
1 parent b3d1c35 commit 236141e
Show file tree
Hide file tree
Showing 3 changed files with 102 additions and 25 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/docker-publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,10 @@ jobs:

# Build And Push Images
- name: Build Docker images
run: docker buildx bake
run: docker buildx bake ci-release
- name: Push Docker images
if: github.ref == 'refs/heads/master'
run: docker buildx bake --push
run: docker buildx bake ci-release --push

- name: Send GitHub Action trigger data to Slack workflow
if: ${{ failure() }}
Expand Down
7 changes: 6 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,15 @@
ifeq ($(wildcard .git/*),)
$(warning semver disabled - building from release zip)
GITCOMMIT := ""
GITSHA := ""
GITDATE := ""
BRANCH := ""
SEMVER := $(shell basename $(CURDIR))
else
GITCOMMIT := $(shell git rev-parse --short HEAD)
GITDATE := $(shell git log -1 --format=%cd --date=unix)
GITSHA := $(shell git rev-parse HEAD)
BRANCH := $(shell git rev-parse --abbrev-ref HEAD | sed 's/[^[:alnum:]\.\_\-]/-/g')
SEMVER := $(shell docker run --rm --volume "$(PWD):/repo" gittools/gitversion:5.12.0 /repo -output json -showvariable SemVer)
ifeq ($(SEMVER), )
$(warning semver disabled - docker not installed)
Expand Down Expand Up @@ -79,8 +83,9 @@ integration-tests-dataapi:
go test -v ./disperser/dataapi

docker-release-build:
BUILD_TAG=${SEMVER} SEMVER=${SEMVER} GITCOMMIT=${GITCOMMIT} GITDATE=${GITDATE} \
BUILD_TAG=${SEMVER} SEMVER=${SEMVER} GITDATE=${GITDATE} GIT_SHA=${GITSHA} GIT_SHORT_SHA=${GITCOMMIT} \
docker buildx bake node-group-release ${PUSH_FLAG}


semver:
echo "${SEMVER}"
116 changes: 94 additions & 22 deletions docker-bake.hcl
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,14 @@ variable "SEMVER" {
default = "v0.0.0"
}

variable "GITCOMMIT" {
default = "dev"
# Release targets will fail if GIT_SHA env is not exported. See Makefile:docker-release-build
variable "GIT_SHA" {
default = "$GIT_SHA NOT DEFINED"
}

# Release targets will fail if GIT_SHORT_SHA env is not exported. See Makefile:docker-release-build
variable "GIT_SHORT_SHA" {
default = "$GIT_SHORT_SHA NOT DEFINED"
}

variable "GITDATE" {
Expand All @@ -30,99 +36,166 @@ group "default" {
}

group "all" {
targets = ["node-group", "disperser-group", "retriever", "churner"]
targets = ["node-group", "batcher", "disperser", "encoder", "retriever", "churner", "dataapi", "traffic-generator"]
}

group "node-group" {
targets = ["node", "nodeplugin"]
}

group "disperser-group" {
targets = ["batcher", "disperser", "encoder"]
}

# Github public releases
group "node-group-release" {
targets = ["node-release", "nodeplugin-release"]
}

# DOCKER METADATA TARGET
# See https://github.com/docker/metadata-action?tab=readme-ov-file#bake-definition
# Github CI builds
group "ci-release" {
targets = ["node-group", "batcher", "disperser", "encoder", "retriever", "churner", "dataapi"]
}

# Internal devops builds
group "internal-release" {
targets = ["node-internal", "batcher-internal", "disperser-internal", "encoder-internal", "retriever-internal", "churner-internal", "dataapi-internal", "traffic-generator-internal"]
}

target "docker-metadata-action" {}

# DISPERSER TARGETS

target "batcher" {
inherits = ["docker-metadata-action"]
context = "."
dockerfile = "./Dockerfile"
target = "batcher"
tags = ["${REGISTRY}/${REPO}/batcher:${BUILD_TAG}"]
}

target "batcher-internal" {
inherits = ["batcher"]
tags = ["${REGISTRY}/eigenda-batcher:${BUILD_TAG}",
"${REGISTRY}/eigenda-batcher:${GIT_SHA}",
"${REGISTRY}/eigenda-batcher:sha-${GIT_SHORT_SHA}",
]
}

target "disperser" {
inherits = ["docker-metadata-action"]
context = "."
dockerfile = "./Dockerfile"
target = "apiserver"
tags = ["${REGISTRY}/${REPO}/apiserver:${BUILD_TAG}"]
}

target "disperser-internal" {
inherits = ["disperser"]
tags = ["${REGISTRY}/eigenda-disperser:${BUILD_TAG}",
"${REGISTRY}/eigenda-disperser:${GIT_SHA}",
"${REGISTRY}/eigenda-disperser:sha-${GIT_SHORT_SHA}",
]
}

target "encoder" {
inherits = ["docker-metadata-action"]
context = "."
dockerfile = "./Dockerfile"
target = "encoder"
tags = ["${REGISTRY}/${REPO}/encoder:${BUILD_TAG}"]
}

target "encoder-internal" {
inherits = ["encoder"]
tags = ["${REGISTRY}/eigenda-encoder:${BUILD_TAG}",
"${REGISTRY}/eigenda-encoder:${GIT_SHA}",
"${REGISTRY}/eigenda-encoder:sha-${GIT_SHORT_SHA}",
]
}

target "retriever" {
inherits = ["docker-metadata-action"]
context = "."
dockerfile = "./Dockerfile"
target = "retriever"
tags = ["${REGISTRY}/${REPO}/retriever:${BUILD_TAG}"]
}

target "retriever-internal" {
inherits = ["retriever"]
tags = ["${REGISTRY}/eigenda-retriever:${BUILD_TAG}",
"${REGISTRY}/eigenda-retriever:${GIT_SHA}",
"${REGISTRY}/eigenda-retriever:sha-${GIT_SHORT_SHA}",
]
}

target "churner" {
inherits = ["docker-metadata-action"]
context = "."
dockerfile = "./Dockerfile"
target = "churner"
tags = ["${REGISTRY}/${REPO}/churner:${BUILD_TAG}"]
}

target "churner-internal" {
inherits = ["churner"]
tags = ["${REGISTRY}/eigenda-churner:${BUILD_TAG}",
"${REGISTRY}/eigenda-churner:${GIT_SHA}",
"${REGISTRY}/eigenda-churner:sha-${GIT_SHORT_SHA}",
]
}

target "traffic-generator" {
inherits = ["docker-metadata-action"]
context = "."
dockerfile = "./trafficgenerator.Dockerfile"
target = "generator"
tags = ["${REGISTRY}/${REPO}/traffic-generator:${BUILD_TAG}"]
}

target "traffic-generator-internal" {
inherits = ["traffic-generator"]
tags = ["${REGISTRY}/eigenda-traffic-generator:${BUILD_TAG}",
"${REGISTRY}/eigenda-traffic-generator:${GIT_SHA}",
"${REGISTRY}/eigenda-traffic-generator:sha-${GIT_SHORT_SHA}",
]
}

target "dataapi" {
inherits = ["docker-metadata-action"]
context = "."
dockerfile = "./Dockerfile"
target = "dataapi"
tags = ["${REGISTRY}/${REPO}/dataapi:${BUILD_TAG}"]
}

target "dataapi-internal" {
inherits = ["dataapi"]
tags = ["${REGISTRY}/eigenda-dataapi:${BUILD_TAG}",
"${REGISTRY}/eigenda-dataapi:${GIT_SHA}",
"${REGISTRY}/eigenda-dataapi:sha-${GIT_SHORT_SHA}",
]
}

# NODE TARGETS

target "node" {
inherits = ["docker-metadata-action"]
context = "."
dockerfile = "./Dockerfile"
target = "node"
args = {
SEMVER = "${SEMVER}"
GITCOMMIT = "${GITCOMMIT}"
GITCOMMIT = "${GIT_SHORT_SHA}"
GITDATE = "${GITDATE}"
}
tags = ["${REGISTRY}/${REPO}/node:${BUILD_TAG}"]
}

target "node-internal" {
inherits = ["node"]
tags = ["${REGISTRY}/eigenda-node:${BUILD_TAG}",
"${REGISTRY}/eigenda-node:${GIT_SHA}",
"${REGISTRY}/eigenda-node:sha-${GIT_SHORT_SHA}",
]
}

target "nodeplugin" {
inherits = ["docker-metadata-action"]
context = "."
dockerfile = "./Dockerfile"
target = "nodeplugin"
tags = ["${REGISTRY}/${REPO}/nodeplugin:${BUILD_TAG}"]
}

# RELEASE TARGETS
# PUBLIC RELEASE TARGETS

target "_release" {
platforms = ["linux/amd64", "linux/arm64"]
Expand All @@ -137,4 +210,3 @@ target "nodeplugin-release" {
inherits = ["nodeplugin", "_release"]
tags = ["${REGISTRY}/${REPO}/opr-nodeplugin:${BUILD_TAG}"]
}

0 comments on commit 236141e

Please sign in to comment.