@@ -4,81 +4,85 @@ NAME=postgres
4
4
ORG =samagragovernance
5
5
PG_VER =pg15
6
6
PG_VER_NUMBER =$(shell echo $(PG_VER ) | cut -c3-)
7
- TS_VERSION =main
7
+ TS_VERSION =2.13.0
8
8
PG_CRON_VERSION =v1.6.0
9
9
PREV_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 = !!')
10
10
PREV_TS_IMAGE ="timescale/timescaledb:$(PREV_TS_VERSION ) -pg$(PG_VER_NUMBER )$(PREV_EXTRA ) "
11
11
PREV_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 ) )
14
12
PLATFORM =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")
15
20
16
21
# PUSH_MULTI can be set to nothing for dry-run without pushing during multi-arch build
17
22
PUSH_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
+
22
33
23
34
default : image
24
35
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
28
37
docker buildx create --platform $(PLATFORM ) --name multibuild --use
29
38
docker buildx inspect multibuild --bootstrap
30
39
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 ) \
35
40
--build-arg OSS_ONLY=" -DAPACHE_ONLY=1" \
41
+ $(DOCKER_BUILD_ARGS ) \
36
42
$(TAG_OSS ) $(PUSH_MULTI ) .
37
- touch .multi_$(TS_VERSION ) _$(PG_VER ) _oss
43
+ touch .multi_$(WARPSQL_VERSION ) _$(PG_VER ) _oss
38
44
docker buildx rm multibuild
39
45
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
44
47
docker buildx create --platform $(PLATFORM ) --name multibuild --use
45
48
docker buildx inspect multibuild --bootstrap
46
49
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 ) \
51
51
$(TAG ) $(PUSH_MULTI ) .
52
- touch .multi_$(TS_VERSION ) _$(PG_VER )
52
+ touch .multi_$(WARPSQL_VERSION ) _$(PG_VER )
53
53
docker buildx rm multibuild
54
54
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
58
60
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 )
62
66
63
- image : .build_$(TS_VERSION ) _$(PG_VER )
67
+ image : .build_$(WARPSQL_VERSION ) _$(PG_VER )
64
68
65
- oss : .build_$(TS_VERSION ) _$(PG_VER ) _oss
69
+ oss : .build_$(WARPSQL_VERSION ) _$(PG_VER ) _oss
66
70
67
71
push : image
68
72
docker push $(TAG_VERSION )
69
- if [ -z " $( BETA ) " ]; then \
73
+ if [ -z " $( PRE_RELEASE ) " ]; then \
70
74
docker push $(TAG_LATEST ) ; \
71
75
fi
72
76
73
77
push-oss : oss
74
78
docker push $(TAG_VERSION ) -oss
75
- if [ -z " $( BETA ) " ]; then \
79
+ if [ -z " $( PRE_RELEASE ) " ]; then \
76
80
docker push $(TAG_LATEST ) -oss; \
77
81
fi
78
82
79
- multi : .multi_$(TS_VERSION ) _$(PG_VER )
83
+ multi : .multi_$(WARPSQL_VERSION ) _$(PG_VER )
80
84
81
- multi-oss : .multi_$(TS_VERSION ) _$(PG_VER ) _oss
85
+ multi-oss : .multi_$(WARPSQL_VERSION ) _$(PG_VER ) _oss
82
86
83
87
all : multi multi-oss
84
88
0 commit comments