1
1
#!/usr/bin/env python3
2
- # -*- coding: utf-8 -*-
3
2
4
3
"""
5
4
***************************************************************************
18
17
***************************************************************************
19
18
"""
20
19
21
- __author__ = ' Denis Rouzaud'
22
- __date__ = ' April 2018'
23
- __copyright__ = ' (C) 2018,Denis Rouzaud'
20
+ __author__ = " Denis Rouzaud"
21
+ __date__ = " April 2018"
22
+ __copyright__ = " (C) 2018,Denis Rouzaud"
24
23
# This will get replaced with a git SHA1 when you do a git archive
25
- __revision__ = ' $Format:%H$'
24
+ __revision__ = " $Format:%H$"
26
25
27
26
28
- import http .client
29
27
import os
30
- import json
31
28
import subprocess
32
29
33
30
@@ -56,7 +53,9 @@ def files_description(version):
56
53
57
54
* If you plan to **use QGEP for production**, it is more likely you will be using the plain SQL `qgep_{version}_structure_with_value_lists.sql`.
58
55
* If you want to **give a try at QGEP**, you will likely restore the `qgep_{version}_structure_and_demo_data.backup` backup file.
59
- """ .format (version = version )
56
+ """ .format (
57
+ version = version
58
+ )
60
59
61
60
62
61
def create_dumps ():
@@ -76,43 +75,54 @@ def create_plain_structure_only():
76
75
Create a plain SQL dump of data structure of all schemas and the content of pum_sys.inf
77
76
:return: the file name of the dump
78
77
"""
79
- print (' ::group::plain SQL structure only' )
78
+ print (" ::group::plain SQL structure only" )
80
79
81
80
# structure
82
- dump_s = 'qgep_{version}_structure.sql' .format (
83
- version = os .environ ['CI_TAG' ])
84
-
85
- print ('Creating dump {}' .format (dump_s ))
86
- dump_file_s = 'artifacts/{dump}' .format (dump = dump_s )
87
- _cmd (['pg_dump' ,
88
- '--format' , 'plain' ,
89
- '--schema-only' ,
90
- '--file' , dump_file_s ,
91
- '--exclude-schema' , 'public' ,
92
- '--no-owner' ,
93
- 'qgep_prod' ]
94
- )
81
+ dump_s = "qgep_{version}_structure.sql" .format (version = os .environ ["CI_TAG" ])
82
+
83
+ print (f"Creating dump { dump_s } " )
84
+ dump_file_s = f"artifacts/{ dump_s } "
85
+ _cmd (
86
+ [
87
+ "pg_dump" ,
88
+ "--format" ,
89
+ "plain" ,
90
+ "--schema-only" ,
91
+ "--file" ,
92
+ dump_file_s ,
93
+ "--exclude-schema" ,
94
+ "public" ,
95
+ "--no-owner" ,
96
+ "qgep_prod" ,
97
+ ]
98
+ )
95
99
96
100
# dump all from qgep_sys except logged_actions
97
- dump_i = 'qgep_{version}_pum_info.sql' .format (
98
- version = os .environ ['CI_TAG' ])
99
- print ('Creating dump {}' .format (dump_i ))
100
- dump_file_i = 'artifacts/{dump}' .format (dump = dump_i )
101
- _cmd (['pg_dump' ,
102
- '--format' , 'plain' ,
103
- '--data-only' ,
104
- '--file' , dump_file_i ,
105
- '--schema' , 'qgep_sys' ,
106
- '--exclude-table' , 'qgep_sys.logged_actions' ,
107
- 'qgep_prod' ]
108
- )
109
- print ('Concatenating the 2 dumps' )
101
+ dump_i = "qgep_{version}_pum_info.sql" .format (version = os .environ ["CI_TAG" ])
102
+ print (f"Creating dump { dump_i } " )
103
+ dump_file_i = f"artifacts/{ dump_i } "
104
+ _cmd (
105
+ [
106
+ "pg_dump" ,
107
+ "--format" ,
108
+ "plain" ,
109
+ "--data-only" ,
110
+ "--file" ,
111
+ dump_file_i ,
112
+ "--schema" ,
113
+ "qgep_sys" ,
114
+ "--exclude-table" ,
115
+ "qgep_sys.logged_actions" ,
116
+ "qgep_prod" ,
117
+ ]
118
+ )
119
+ print ("Concatenating the 2 dumps" )
110
120
with open (dump_file_i ) as f :
111
121
dump_data = f .read ()
112
122
with open (dump_file_s , "a" ) as f :
113
123
f .write (dump_data )
114
124
115
- print (' ::endgroup::' )
125
+ print (" ::endgroup::" )
116
126
117
127
return dump_file_s
118
128
@@ -123,35 +133,40 @@ def create_plain_value_list(structure_dump_file):
123
133
with value list content
124
134
:return: the file name of the dump
125
135
"""
126
- print ('::group::value lists dump' )
127
-
128
- dump = 'qgep_{version}_structure_with_value_lists.sql' .format (
129
- version = os .environ ['CI_TAG' ])
130
-
131
- print ('Creating dump {}' .format (dump ))
132
- dump_file = 'artifacts/{dump}' .format (dump = dump )
133
-
134
- _cmd (['pg_dump' ,
135
- '--format' , 'plain' ,
136
- '--blobs' ,
137
- '--data-only' ,
138
- '--file' , dump_file ,
139
- '--schema' , 'qgep_vl' ,
140
- 'qgep_prod' ]
141
- )
142
-
143
- print ('Concatenating the 2 dumps' )
136
+ print ("::group::value lists dump" )
137
+
138
+ dump = "qgep_{version}_structure_with_value_lists.sql" .format (version = os .environ ["CI_TAG" ])
139
+
140
+ print (f"Creating dump { dump } " )
141
+ dump_file = f"artifacts/{ dump } "
142
+
143
+ _cmd (
144
+ [
145
+ "pg_dump" ,
146
+ "--format" ,
147
+ "plain" ,
148
+ "--blobs" ,
149
+ "--data-only" ,
150
+ "--file" ,
151
+ dump_file ,
152
+ "--schema" ,
153
+ "qgep_vl" ,
154
+ "qgep_prod" ,
155
+ ]
156
+ )
157
+
158
+ print ("Concatenating the 2 dumps" )
144
159
with open (dump_file ) as f :
145
160
dump_data = f .read ()
146
161
with open (structure_dump_file ) as f :
147
162
structure_dump_data = f .read ()
148
- with open (dump_file , 'w' ) as f :
163
+ with open (dump_file , "w" ) as f :
149
164
f .write (structure_dump_data )
150
- f .write (' \n \n \n -- Value lists dump --\n \n ' )
165
+ f .write (" \n \n \n -- Value lists dump --\n \n " )
151
166
f .write (dump_data )
152
167
153
- print (' ::endgroup::' )
154
-
168
+ print (" ::endgroup::" )
169
+
155
170
return dump_file
156
171
157
172
@@ -161,22 +176,29 @@ def create_backup_data():
161
176
:return: the file name
162
177
"""
163
178
# Create data-only dumps (with sample data)
164
- dump = 'qgep_{version}_demo_data.backup' .format (
165
- version = os .environ ['CI_TAG' ])
166
- print ('::group::{}' .format (dump ))
167
- print ('Creating dump {}' .format (dump ))
168
- dump_file = 'artifacts/{dump}' .format (dump = dump )
169
- _cmd (['pg_dump' ,
170
- '--format' , 'custom' ,
171
- '--blobs' ,
172
- '--data-only' ,
173
- '--compress' , '5' ,
174
- '--file' , dump_file ,
175
- '--table' , 'qgep_od.*' ,
176
- '--table' , 'qgep_sys.logged_actions' ,
177
- 'qgep_prod' ]
178
- )
179
- print ('::endgroup::' )
179
+ dump = "qgep_{version}_demo_data.backup" .format (version = os .environ ["CI_TAG" ])
180
+ print (f"::group::{ dump } " )
181
+ print (f"Creating dump { dump } " )
182
+ dump_file = f"artifacts/{ dump } "
183
+ _cmd (
184
+ [
185
+ "pg_dump" ,
186
+ "--format" ,
187
+ "custom" ,
188
+ "--blobs" ,
189
+ "--data-only" ,
190
+ "--compress" ,
191
+ "5" ,
192
+ "--file" ,
193
+ dump_file ,
194
+ "--table" ,
195
+ "qgep_od.*" ,
196
+ "--table" ,
197
+ "qgep_sys.logged_actions" ,
198
+ "qgep_prod" ,
199
+ ]
200
+ )
201
+ print ("::endgroup::" )
180
202
return dump_file
181
203
182
204
@@ -186,20 +208,26 @@ def create_backup_complete():
186
208
:return: the file name
187
209
"""
188
210
# Create data + structure dumps (with sample data)
189
- dump = 'qgep_{version}_structure_and_demo_data.backup' .format (
190
- version = os .environ ['CI_TAG' ])
191
- print ('::group::{}' .format (dump ))
192
- print ('Creating dump {}' .format (dump ))
193
- dump_file = 'artifacts/{dump}' .format (dump = dump )
194
- _cmd (['pg_dump' ,
195
- '--format' , 'custom' ,
196
- '--blobs' ,
197
- '--compress' , '5' ,
198
- '--file' , dump_file ,
199
- '-N' , 'public' ,
200
- 'qgep_prod' ]
201
- )
202
- print ('::endgroup::' )
211
+ dump = "qgep_{version}_structure_and_demo_data.backup" .format (version = os .environ ["CI_TAG" ])
212
+ print (f"::group::{ dump } " )
213
+ print (f"Creating dump { dump } " )
214
+ dump_file = f"artifacts/{ dump } "
215
+ _cmd (
216
+ [
217
+ "pg_dump" ,
218
+ "--format" ,
219
+ "custom" ,
220
+ "--blobs" ,
221
+ "--compress" ,
222
+ "5" ,
223
+ "--file" ,
224
+ dump_file ,
225
+ "-N" ,
226
+ "public" ,
227
+ "qgep_prod" ,
228
+ ]
229
+ )
230
+ print ("::endgroup::" )
203
231
204
232
return dump_file
205
233
@@ -208,15 +236,16 @@ def main():
208
236
"""
209
237
Creates dumps to be attached to releases.
210
238
"""
211
- if ' CI_TAG' not in os .environ or not os .environ [' CI_TAG' ]:
212
- print (' No git tag: not deploying anything' )
239
+ if " CI_TAG" not in os .environ or not os .environ [" CI_TAG" ]:
240
+ print (" No git tag: not deploying anything" )
213
241
return
214
242
else :
215
- print (' Creating release from tag {}' .format (os .environ [' CI_TAG' ]))
243
+ print (" Creating release from tag {}" .format (os .environ [" CI_TAG" ]))
216
244
217
- os .mkdir (' artifacts' )
245
+ os .mkdir (" artifacts" )
218
246
files = create_dumps ()
219
- print ('Dumps created: {}' .format (', ' .join (files )))
247
+ print ("Dumps created: {}" .format (", " .join (files )))
248
+
220
249
221
250
if __name__ == "__main__" :
222
251
main ()
0 commit comments