Browse Source

add makefile to automate docker image tagging

https://github.com/fphammerle/wireless-sensor-mqtt/blob/222d2e124d231b207da647c1f7a9c5ec9a37b4ac/Makefile
Fabian Peter Hammerle 3 years ago
parent
commit
4b32f08c16
1 changed files with 35 additions and 0 deletions
  1. 35 0
      Makefile

+ 35 - 0
Makefile

@@ -0,0 +1,35 @@
+# switchbot-mqtt - MQTT client controlling SwitchBot button & curtain automators,
+# compatible with home-assistant.io's MQTT Switch & Cover platform
+#
+# Copyright (C) 2020 Fabian Peter Hammerle <fabian@hammerle.me>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
+DOCKER_IMAGE_NAME := docker.io/fphammerle/switchbot-mqtt
+DOCKER_TAG_VERSION := $(shell git describe --match=v* --dirty | sed -e 's/^v//')
+ARCH := $(shell arch)
+DOCKER_TAG_ARCH_SUFFIX_aarch64 := arm64
+DOCKER_TAG_ARCH_SUFFIX_armv6l := armv6
+DOCKER_TAG_ARCH_SUFFIX_x86_64 := amd64
+DOCKER_TAG_ARCH_SUFFIX = ${DOCKER_TAG_ARCH_SUFFIX_${ARCH}}
+DOCKER_TAG = ${DOCKER_TAG_VERSION}-${DOCKER_TAG_ARCH_SUFFIX}
+
+.PHONY: docker-build docker-push
+
+docker-build:
+	sudo docker build -t "${DOCKER_IMAGE_NAME}:${DOCKER_TAG}" .
+
+docker-push: docker-build
+	sudo docker push "${DOCKER_IMAGE_NAME}:${DOCKER_TAG}"
+	@echo git tag --sign --message '$(shell sudo docker image inspect --format '{{join .RepoDigests "\n"}}' "${DOCKER_IMAGE_NAME}:${DOCKER_TAG}")' docker/${DOCKER_TAG} $(shell git rev-parse HEAD)