@@ -31,6 +31,9 @@ class SupportedDockerImages(Enum):
3131 alpine = 3
3232 postgres14 = 4
3333 postgres15 = 5
34+ postgres16 = 6
35+ postgres17 = 7
36+ postgres18 = 8
3437
3538
3639docker_templates = {
@@ -39,6 +42,9 @@ class SupportedDockerImages(Enum):
3942 SupportedDockerImages .alpine : "alpine/alpine.tmpl.dockerfile" ,
4043 SupportedDockerImages .postgres14 : "postgres-14/postgres-14.tmpl.dockerfile" ,
4144 SupportedDockerImages .postgres15 : "postgres-15/postgres-15.tmpl.dockerfile" ,
45+ SupportedDockerImages .postgres16 : "postgres-16/postgres-16.tmpl.dockerfile" ,
46+ SupportedDockerImages .postgres17 : "postgres-17/postgres-17.tmpl.dockerfile" ,
47+ SupportedDockerImages .postgres18 : "postgres-18/postgres-18.tmpl.dockerfile" ,
4248}
4349
4450docker_outputs = {
@@ -47,6 +53,9 @@ class SupportedDockerImages(Enum):
4753 SupportedDockerImages .alpine : "alpine/Dockerfile" ,
4854 SupportedDockerImages .postgres14 : "postgres-14/Dockerfile" ,
4955 SupportedDockerImages .postgres15 : "postgres-15/Dockerfile" ,
56+ SupportedDockerImages .postgres16 : "postgres-16/Dockerfile" ,
57+ SupportedDockerImages .postgres17 : "postgres-17/Dockerfile" ,
58+ SupportedDockerImages .postgres18 : "postgres-18/Dockerfile" ,
5059}
5160
5261BASE_PATH = pathlib2 .Path (__file__ ).parent .absolute ()
@@ -99,6 +108,57 @@ def update_docker_file_alpine(
99108 write_to_file (content , dest_file_name )
100109
101110
111+ def update_docker_file_for_postgres18 (
112+ project_version : str , template_path : str , exec_path : str , postgres_version : str
113+ ):
114+ minor_version = get_minor_project_version_for_docker (project_version )
115+ debian_project_version = project_version .replace ("_" , "-" )
116+ content = process_template_file_with_minor (
117+ debian_project_version ,
118+ template_path ,
119+ docker_templates [SupportedDockerImages .postgres18 ],
120+ minor_version ,
121+ postgres_version ,
122+ )
123+ dest_file_name = f"{ exec_path } /{ docker_outputs [SupportedDockerImages .postgres18 ]} "
124+ create_directory_if_not_exists (dest_file_name )
125+ write_to_file (content , dest_file_name )
126+
127+
128+ def update_docker_file_for_postgres17 (
129+ project_version : str , template_path : str , exec_path : str , postgres_version : str
130+ ):
131+ minor_version = get_minor_project_version_for_docker (project_version )
132+ debian_project_version = project_version .replace ("_" , "-" )
133+ content = process_template_file_with_minor (
134+ debian_project_version ,
135+ template_path ,
136+ docker_templates [SupportedDockerImages .postgres17 ],
137+ minor_version ,
138+ postgres_version ,
139+ )
140+ dest_file_name = f"{ exec_path } /{ docker_outputs [SupportedDockerImages .postgres17 ]} "
141+ create_directory_if_not_exists (dest_file_name )
142+ write_to_file (content , dest_file_name )
143+
144+
145+ def update_docker_file_for_postgres16 (
146+ project_version : str , template_path : str , exec_path : str , postgres_version : str
147+ ):
148+ minor_version = get_minor_project_version_for_docker (project_version )
149+ debian_project_version = project_version .replace ("_" , "-" )
150+ content = process_template_file_with_minor (
151+ debian_project_version ,
152+ template_path ,
153+ docker_templates [SupportedDockerImages .postgres16 ],
154+ minor_version ,
155+ postgres_version ,
156+ )
157+ dest_file_name = f"{ exec_path } /{ docker_outputs [SupportedDockerImages .postgres16 ]} "
158+ create_directory_if_not_exists (dest_file_name )
159+ write_to_file (content , dest_file_name )
160+
161+
102162def update_docker_file_for_postgres15 (
103163 project_version : str , template_path : str , exec_path : str , postgres_version : str
104164):
@@ -174,12 +234,14 @@ def update_all_docker_files(project_version: str, exec_path: str):
174234 pkgvars_file = f"{ exec_path } /pkgvars"
175235
176236 (
237+ postgres_18_version ,
238+ postgres_17_version ,
177239 postgres_16_version ,
178240 postgres_15_version ,
179241 postgres_14_version ,
180242 ) = read_postgres_versions (pkgvars_file )
181243
182- latest_postgres_version = postgres_16_version
244+ latest_postgres_version = postgres_18_version
183245
184246 update_docker_file_for_latest_postgres (
185247 project_version , template_path , exec_path , latest_postgres_version
@@ -194,12 +256,23 @@ def update_all_docker_files(project_version: str, exec_path: str):
194256 update_docker_file_for_postgres15 (
195257 project_version , template_path , exec_path , postgres_15_version
196258 )
259+ update_docker_file_for_postgres16 (
260+ project_version , template_path , exec_path , postgres_16_version
261+ )
262+ update_docker_file_for_postgres17 (
263+ project_version , template_path , exec_path , postgres_17_version
264+ )
265+ update_docker_file_for_postgres18 (
266+ project_version , template_path , exec_path , postgres_18_version
267+ )
197268 update_changelog (project_version , exec_path )
198269
199270
200271def read_postgres_versions (pkgvars_file : str ) -> Tuple [str , str , str ]:
201272 config = dotenv_values (pkgvars_file )
202273 return (
274+ config ["postgres_18_version" ],
275+ config ["postgres_17_version" ],
203276 config ["postgres_16_version" ],
204277 config ["postgres_15_version" ],
205278 config ["postgres_14_version" ],
0 commit comments