)
g_dockerfile = 'Dockerfile.'
+g_run_output = False
# Init Functions
'test PowerDNS repositories.')
parser.add_argument('release', metavar='RELEASE',
choices=[# Authoritative Server
- 'auth-48', 'auth-49', 'auth-50',
+ 'auth-47', 'auth-48', 'auth-49', 'auth-50',
'auth-master',
# Recursor
- 'rec-48', 'rec-49', 'rec-50', 'rec-51', 'rec-52', 'rec-53',
+ 'rec-48', 'rec-49', 'rec-50', 'rec-51', 'rec-52', 'rec-53', 'rec-54',
'rec-master',
# DNSDist
- 'dnsdist-17', 'dnsdist-18', 'dnsdist-19', 'dnsdist-20',
+ 'dnsdist-17', 'dnsdist-18', 'dnsdist-19', 'dnsdist-20', 'dnsdist-21',
'dnsdist-master'],
help='the release to generate Docker files for: ' +
'%(choices)s')
+ parser.add_argument('--run-output', action='store_true',
+ help='always show output from running a container')
parser.add_argument('--test', action='store_true',
help='test the release')
parser.add_argument('--test-aarch64', action='store_true',
pkg = 'dnsdist'
cmd = 'dnsdist'
- with open('{}{}.{}-{}'.format(g_dockerfile, release, os, os_version), 'w') as f:
- # This comment was in the template for the `--nobest` part but that makes
- # the template look even more different than the final output, so:
- #
- # > When should the logic be in the code and when in the template? :shrug:
- # > I prefer it to be in the code but I also do not want to add extra vars
- # > and logic to the code unless necessary.
- f.write(tpl.render({ "os": os,
- "os_image": os_image,
- "os_version": os_version,
- "release": release,
- "cmd": cmd,
- "pkg": pkg }))
+ f = open('{}{}.{}-{}'.format(g_dockerfile, release, os, os_version), 'w')
+
+ # This comment was in the template for the `--nobest` part but that makes
+ # the template look even more different than the final output, so:
+ #
+ # > When should the logic be in the code and when in the template? :shrug:
+ # > I prefer it to be in the code but I also do not want to add extra vars
+ # > and logic to the code unless necessary.
+ f.write(tpl.render({ "os": os,
+ "os_image": os_image,
+ "os_version": os_version,
+ "release": release,
+ "cmd": cmd,
+ "pkg": pkg }))
+ f.close()
def write_list_file (os, os_version, release):
tpl = g_env.get_template('pdns-list.jinja2')
- with open('pdns.list.{}.{}-{}'.format(release, os, os_version), 'w') as f:
- f.write(tpl.render({ "os": os,
- "os_version": os_version,
- "release": release }))
+ f = open('pdns.list.{}.{}-{}'.format(release, os, os_version), 'w')
+ f.write(tpl.render({ "os": os,
+ "os_version": os_version,
+ "release": release }))
+ f.close()
def write_pkg_pin_file (release):
elif release.startswith('dnsdist-'):
pkg = 'dnsdist'
- with open('pkg-pin', 'w') as f:
- f.write(tpl.render({ "pkg": pkg }))
+ f = open('pkg-pin', 'w')
+ f.write(tpl.render({ "pkg": pkg }))
+ f.close()
def write_release_files (release):
if g_verbose:
print("Writing release files...")
- if release in ['auth-48', 'auth-49', 'auth-50', 'auth-master',
- 'rec-48', 'rec-49', 'rec-50', 'rec-51', 'rec-52', 'rec-53', 'rec-master',
- 'dnsdist-17', 'dnsdist-18', 'dnsdist-19', 'dnsdist-20', 'dnsdist-master']:
+ if release in ['auth-47', 'auth-48', 'auth-49', 'auth-50', 'auth-master',
+ 'rec-48', 'rec-49', 'rec-50', 'rec-51', 'rec-52', 'rec-53', 'rec-54', 'rec-master',
+ 'dnsdist-17', 'dnsdist-18', 'dnsdist-19', 'dnsdist-20', 'dnsdist-21', 'dnsdist-master']:
write_pkg_pin_file(release)
write_dockerfile('el', '8', release)
write_dockerfile('el', '9', release)
write_dockerfile('debian', 'bullseye', release)
write_list_file('debian', 'bullseye', release)
- if release != 'auth-50' and release != 'rec-53' and release != 'dnsdist-20':
+ if release != 'auth-50' and release != 'rec-54' and release != 'rec-53' and release != 'dnsdist-20' and release != 'dnsdist-21':
write_dockerfile('ubuntu', 'focal', release)
write_list_file('ubuntu', 'focal', release)
write_dockerfile('ubuntu', 'jammy', release)
write_list_file('ubuntu', 'jammy', release)
- if release in ['rec-53', 'rec-master',
- 'dnsdist-20', 'dnsdist-master']:
+ if release in ['auth-50', 'auth-master',
+ 'rec-53', 'rec-54', 'rec-master',
+ 'dnsdist-20', 'dnsdist-21', 'dnsdist-master']:
write_dockerfile('el', '10', release)
if release in ['auth-48', 'auth-49', 'auth-50', 'auth-master',
- 'rec-48', 'rec-49', 'rec-50', 'rec-51', 'rec-52', 'rec-53', 'rec-master',
- 'dnsdist-19', 'dnsdist-20', 'dnsdist-master']:
+ 'rec-48', 'rec-49', 'rec-50', 'rec-51', 'rec-52', 'rec-53', 'rec-54', 'rec-master',
+ 'dnsdist-19', 'dnsdist-20', 'dnsdist-21', 'dnsdist-master']:
write_dockerfile('debian', 'bookworm', release)
write_list_file('debian', 'bookworm', release)
if release in ['auth-49', 'auth-50', 'auth-master',
- 'rec-53', 'rec-master',
- 'dnsdist-20', 'dnsdist-master']:
+ 'rec-53', 'rec-54', 'rec-master',
+ 'dnsdist-20', 'dnsdist-21', 'dnsdist-master']:
write_dockerfile('debian', 'trixie', release)
write_list_file('debian', 'trixie', release)
if release in ['auth-49', 'auth-50', 'auth-master',
- 'rec-50', 'rec-51', 'rec-52', 'rec-53', 'rec-master',
- 'dnsdist-19', 'dnsdist-20', 'dnsdist-master']:
+ 'rec-50', 'rec-51', 'rec-52', 'rec-53', 'rec-54', 'rec-master',
+ 'dnsdist-19', 'dnsdist-20', 'dnsdist-21', 'dnsdist-master']:
write_dockerfile('ubuntu', 'noble', release)
write_list_file('ubuntu', 'noble', release)
def run (tag, arch='x86_64'):
+ if g_run_output:
+ capture_run_output = False
+ else:
+ capture_run_output = not(g_verbose)
print('Running Docker container tagged {}...'.format(tag))
if arch == 'x86_64':
cp = subprocess.run(['docker', 'run', tag],
returned_versions = []
print('=== testing {} ({}) ==='.format(release, arch))
for df in dockerfiles:
- if arch == 'aarch64' and not release in ['auth-50', 'auth-49', 'rec-49', 'rec-50', 'rec-51', 'rec-52', 'rec-53', 'rec-master',
- 'dnsdist-19', 'dnsdist-20', 'dnsdist-master']:
+ if arch == 'aarch64' and not release in ['auth-50', 'auth-49', 'rec-49', 'rec-50', 'rec-51', 'rec-52', 'rec-53', 'rec-54', 'rec-master',
+ 'dnsdist-19', 'dnsdist-20', 'dnsdist-21', 'dnsdist-master']:
continue
if g_verbose:
print('--- {} ---'.format(df))
if args.verbose:
g_verbose = True
+if args.run_output:
+ g_run_output = True
+
write_release_files(args.release)
if args.test: