@@ -4,81 +4,85 @@ NAME=postgres
44ORG =samagragovernance
55PG_VER =pg15
66PG_VER_NUMBER =$(shell echo $(PG_VER ) | cut -c3-)
7- TS_VERSION =main
7+ TS_VERSION =2.13.0
88PG_CRON_VERSION =v1.6.0
99PREV_TS_VERSION =$(shell wget --quiet -O - https://raw.githubusercontent.com/timescale/timescaledb/${TS_VERSION}/version.config | grep update_from_version | sed -e 's!update_from_version = !!')
1010PREV_TS_IMAGE ="timescale/timescaledb:$(PREV_TS_VERSION ) -pg$(PG_VER_NUMBER )$(PREV_EXTRA ) "
1111PREV_IMAGE =$(shell if docker pull $(PREV_TS_IMAGE ) >/dev/null; then echo "$(PREV_TS_IMAGE ) "; else echo "postgres:$(PG_VER_NUMBER ) -alpine"; fi )
12- # Beta releases should not be tagged as latest, so BETA is used to track.
13- BETA =$(findstring rc,$(TS_VERSION ) )
1412PLATFORM =linux/amd64,linux/arm64
13+ # Retrieve the latest Git tag for the current commit
14+ RELEASE_TAG = $(shell git describe --tags --abbrev=0 --exact-match HEAD 2>/dev/null)
15+
16+ WARPSQL_VERSION := $(if $(RELEASE_TAG ) ,$(RELEASE_TAG ) ,dev-$(shell git rev-parse HEAD) )
17+
18+ # Pre releases should not be tagged as latest, so PRE_RELEASE is used to track.
19+ PRE_RELEASE =$(shell echo "$(WARPSQL_VERSION ) " | grep -Eo "alpha|beta|rc")
1520
1621# PUSH_MULTI can be set to nothing for dry-run without pushing during multi-arch build
1722PUSH_MULTI =--push
18- TAG_VERSION =$(ORG ) /$(NAME ) :$(TS_VERSION ) -$(PG_VER )
19- TAG_LATEST =$(ORG ) /$(NAME ) :latest-$(PG_VER )
20- TAG =-t $(TAG_VERSION ) $(if $(BETA ) ,,-t $(TAG_LATEST ) )
21- TAG_OSS =-t $(TAG_VERSION ) -oss $(if $(BETA ) ,,-t $(TAG_LATEST ) -oss)
23+ TAG_VERSION =$(ORG ) /$(NAME ) :$(WARPSQL_VERSION ) -pg$(PG_VER_NUMBER )
24+ TAG_LATEST =$(ORG ) /$(NAME ) :latest-pg$(PG_VER_NUMBER )
25+ TAG =-t $(TAG_VERSION ) $(if $(PRE_RELEASE ) ,,-t $(TAG_LATEST ) )
26+ TAG_OSS =-t $(TAG_VERSION ) -oss $(if $(PRE_RELEASE ) ,,-t $(TAG_LATEST ) -oss)
27+
28+ DOCKER_BUILD_ARGS = --build-arg TS_VERSION=$(TS_VERSION ) \
29+ --build-arg PG_VERSION=$(PG_VER_NUMBER ) \
30+ --build-arg PREV_IMAGE=$(PREV_IMAGE ) \
31+ --build-arg PG_CRON_VERSION=$(PG_CRON_VERSION )
32+
2233
2334default : image
2435
25- .multi_$(TS_VERSION ) _$(PG_VER ) _oss : Dockerfile
26- test -n " $( TS_VERSION) " # TS_VERSION
27- test -n " $( PREV_TS_VERSION) " # PREV_TS_VERSION
36+ .multi_$(WARPSQL_VERSION ) _$(PG_VER ) _oss : Dockerfile
2837 docker buildx create --platform $(PLATFORM ) --name multibuild --use
2938 docker buildx inspect multibuild --bootstrap
3039 docker buildx build --platform $(PLATFORM ) \
31- --build-arg TS_VERSION=$(TS_VERSION ) \
32- --build-arg PG_CRON_VERSION=$(PG_CRON_VERSION ) \
33- --build-arg PG_VERSION=$(PG_VER_NUMBER ) \
34- --build-arg PREV_IMAGE=$(PREV_IMAGE ) \
3540 --build-arg OSS_ONLY=" -DAPACHE_ONLY=1" \
41+ $(DOCKER_BUILD_ARGS ) \
3642 $(TAG_OSS ) $(PUSH_MULTI ) .
37- touch .multi_$(TS_VERSION ) _$(PG_VER ) _oss
43+ touch .multi_$(WARPSQL_VERSION ) _$(PG_VER ) _oss
3844 docker buildx rm multibuild
3945
40- .multi_$(TS_VERSION ) _$(PG_VER ) : Dockerfile
41- test -n " $( TS_VERSION) " # TS_VERSION
42- test -n " $( PREV_TS_VERSION) " # PREV_TS_VERSION
43- test -n " $( PREV_IMAGE) " # PREV_IMAGE
46+ .multi_$(WARPSQL_VERSION ) _$(PG_VER ) : Dockerfile
4447 docker buildx create --platform $(PLATFORM ) --name multibuild --use
4548 docker buildx inspect multibuild --bootstrap
4649 docker buildx build --platform $(PLATFORM ) \
47- --build-arg TS_VERSION=$(TS_VERSION ) \
48- --build-arg PG_CRON_VERSION=$(PG_CRON_VERSION ) \
49- --build-arg PREV_IMAGE=$(PREV_IMAGE ) \
50- --build-arg PG_VERSION=$(PG_VER_NUMBER ) \
50+ $(DOCKER_BUILD_ARGS ) \
5151 $(TAG ) $(PUSH_MULTI ) .
52- touch .multi_$(TS_VERSION ) _$(PG_VER )
52+ touch .multi_$(WARPSQL_VERSION ) _$(PG_VER )
5353 docker buildx rm multibuild
5454
55- .build_$(TS_VERSION ) _$(PG_VER ) _oss : Dockerfile
56- docker build --build-arg OSS_ONLY=" -DAPACHE_ONLY=1" --build-arg PG_VERSION=$(PG_VER_NUMBER ) --build-arg PG_CRON_VERSION=$(PG_CRON_VERSION ) $(TAG_OSS ) .
57- touch .build_$(TS_VERSION ) _$(PG_VER ) _oss
55+ .build_$(WARPSQL_VERSION ) _$(PG_VER ) _oss : Dockerfile
56+ docker build --build-arg OSS_ONLY=" -DAPACHE_ONLY=1" \
57+ $(DOCKER_BUILD_ARGS ) \
58+ $(TAG_OSS ) .
59+ touch .build_$(WARPSQL_VERSION ) _$(PG_VER ) _oss
5860
59- .build_$(TS_VERSION ) _$(PG_VER ) : Dockerfile
60- docker build --build-arg PG_VERSION=$(PG_VER_NUMBER ) --build-arg TS_VERSION=$(TS_VERSION ) --build-arg PG_CRON_VERSION=$(PG_CRON_VERSION ) --build-arg PREV_IMAGE=$(PREV_IMAGE ) $(TAG ) .
61- touch .build_$(TS_VERSION ) _$(PG_VER )
61+ .build_$(WARPSQL_VERSION ) _$(PG_VER ) : Dockerfile
62+ docker build \
63+ $(DOCKER_BUILD_ARGS ) \
64+ $(TAG ) .
65+ touch .build_$(WARPSQL_VERSION ) _$(PG_VER )
6266
63- image : .build_$(TS_VERSION ) _$(PG_VER )
67+ image : .build_$(WARPSQL_VERSION ) _$(PG_VER )
6468
65- oss : .build_$(TS_VERSION ) _$(PG_VER ) _oss
69+ oss : .build_$(WARPSQL_VERSION ) _$(PG_VER ) _oss
6670
6771push : image
6872 docker push $(TAG_VERSION )
69- if [ -z " $( BETA ) " ]; then \
73+ if [ -z " $( PRE_RELEASE ) " ]; then \
7074 docker push $(TAG_LATEST ) ; \
7175 fi
7276
7377push-oss : oss
7478 docker push $(TAG_VERSION ) -oss
75- if [ -z " $( BETA ) " ]; then \
79+ if [ -z " $( PRE_RELEASE ) " ]; then \
7680 docker push $(TAG_LATEST ) -oss; \
7781 fi
7882
79- multi : .multi_$(TS_VERSION ) _$(PG_VER )
83+ multi : .multi_$(WARPSQL_VERSION ) _$(PG_VER )
8084
81- multi-oss : .multi_$(TS_VERSION ) _$(PG_VER ) _oss
85+ multi-oss : .multi_$(WARPSQL_VERSION ) _$(PG_VER ) _oss
8286
8387all : multi multi-oss
8488
0 commit comments