mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-10-29 16:52:13 +00:00
This commit moves the include statement to the bottom of the file to ensure that all variables are set before conditionals are evaluated. I also changed the ifndef NETWORK to ifdef NETWORK as the former was incorrect. We want `NET_OPTS="--network=none"` in cases where NETWORK is not defined. Fixes: #2134 Signed-off-by: Dave Tucker <dt@docker.com>
44 lines
1.2 KiB
Makefile
44 lines
1.2 KiB
Makefile
.PHONY: tag push
|
|
default: push
|
|
|
|
ORG?=linuxkit
|
|
HASH?=$(shell git ls-tree HEAD -- ../$(notdir $(CURDIR)) | awk '{print $$3}')
|
|
BASE_DEPS=Dockerfile Makefile
|
|
|
|
# Add '-dirty' to hash if the repository is not clean. make does not
|
|
# concatenate strings without spaces, so we use the documented trick
|
|
# of replacing the space with nothing.
|
|
DIRTY=$(shell git diff-index --quiet HEAD --; echo $$?)
|
|
ifneq ($(DIRTY),0)
|
|
HASH+=-dirty
|
|
nullstring :=
|
|
space := $(nullstring) $(nullstring)
|
|
TAG=$(subst $(space),,$(HASH))
|
|
else
|
|
TAG=$(HASH)
|
|
endif
|
|
|
|
# Get a release tag, if present
|
|
RELEASE=$(shell git tag -l --points-at HEAD)
|
|
|
|
ifdef NETWORK
|
|
NET_OPT=
|
|
else
|
|
NET_OPT=--network=none
|
|
endif
|
|
|
|
tag: $(BASE_DEPS) $(DEPS)
|
|
DOCKER_CONTENT_TRUST=1 docker pull $(ORG)/$(IMAGE):$(TAG) || \
|
|
docker build $(NET_OPT) -t $(ORG)/$(IMAGE):$(TAG) .
|
|
|
|
push: tag
|
|
ifneq ($(DIRTY),0)
|
|
$(error Your repository is not clean. Will not push package image.)
|
|
endif
|
|
DOCKER_CONTENT_TRUST=1 docker pull $(ORG)/$(IMAGE):$(TAG) || \
|
|
DOCKER_CONTENT_TRUST=1 docker push $(ORG)/$(IMAGE):$(TAG)
|
|
ifneq ($(RELEASE),)
|
|
docker tag $(ORG)/$(IMAGE):$(TAG) $(ORG)/$(IMAGE):$(RELEASE)
|
|
DOCKER_CONTENT_TRUST=1 docker push $(ORG)/$(IMAGE):$(RELEASE)
|
|
endif
|