Skip to content
Snippets Groups Projects
publish_images.py 1.19 KiB
Newer Older
Tamas Gal's avatar
Tamas Gal committed
#!/usr/bin/env python
from glob import glob
import subprocess as sp
import sys
import time

import git

Tamas Gal's avatar
Tamas Gal committed
REGISTRY_URL = 'docker.km3net.de'


def main():
Tamas Gal's avatar
Tamas Gal committed
    changed_dockerfiles = [
        f.a_path for f in git.Repo('.').index.diff("HEAD~1")
        if f.a_path.startswith("base/")
    ]
    n_files = len(changed_dockerfiles)

    if n_files == 0:
        print("Nothing to do!")
        exit(0)

Tamas Gal's avatar
Tamas Gal committed
    print("Processing {} dockerfile{}...".format(n_files,
                                                 's' if n_files else ''))
    for idx, fname in enumerate(changed_dockerfiles):
Tamas Gal's avatar
Tamas Gal committed
        progress = "({}/{})".format(idx + 1, n_files)

        steps = [("Building",
Tamas Gal's avatar
Tamas Gal committed
                  "docker build --pull -t {0}/{1} -f {1} . ".format(
                      REGISTRY_URL, fname)),
                 ("Pushing", "docker push {0}/{1}".format(REGISTRY_URL,
                                                          fname))]
Tamas Gal's avatar
Tamas Gal committed
        print('-' * 79)

        for step, cmd in steps:
            print("{} {} '{}'".format(progress, step, fname))
            child = sp.Popen(
                cmd, shell=True, stdout=sys.stdout, stderr=sys.stderr)
            child.communicate()
Tamas Gal's avatar
Tamas Gal committed

Tamas Gal's avatar
Tamas Gal committed
if __name__ == '__main__':
    main()