diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0a3103c18054f844b2d4640365ed1757bc2c7971..91337acb5fdf9e155692c7b4a749d40700bf3ad0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -17,7 +17,7 @@ before_script: test: stage: test script: - - git diff-tree --no-commit-id --name-only -r HEAD + - git --no-pager diff --name-only origin/master - python publish_images.py -q tags: - docker diff --git a/publish_images.py b/publish_images.py index bf8d27c35c7d7f4223935eb0059d0dc4b3444be5..95e93b29eabfc1d3c801f88d891f843cf6c76b26 100755 --- a/publish_images.py +++ b/publish_images.py @@ -5,12 +5,15 @@ import sys import time REGISTRY_URL = 'docker.km3net.de' -SKIP_PUSH = '-q' in sys.argv +IS_TEST_BRANCH = '-t' in sys.argv -def get_changed_dockerfiles(): +def get_changed_dockerfiles(vs_master=False): """Checks the last Git commit and returns a list of changed Dockefiles""" - diff_cmd = "git diff-tree --no-commit-id --name-only -r HEAD" + if vs_master: + diff_cmd = "git --no-pager diff --name-only master" + else: + diff_cmd = "git diff-tree --no-commit-id --name-only -r HEAD" child = sp.Popen(diff_cmd, shell=True, stdout=sp.PIPE, stderr=sp.PIPE) out, _ = child.communicate() @@ -20,7 +23,7 @@ def get_changed_dockerfiles(): def main(): - changed_dockerfiles = get_changed_dockerfiles() + changed_dockerfiles = get_changed_dockerfiles(vs_master=IS_TEST_BRANCH) n_files = len(changed_dockerfiles) if n_files == 0: @@ -35,9 +38,9 @@ def main(): steps = [("Building", "docker build --pull -t {0}/{1} -f {1} . ".format( REGISTRY_URL, fname))] - if not SKIP_PUSH: - steps.append(("Pushing", "docker push {0}/{1}".format(REGISTRY_URL, - fname))) + if not IS_TEST_BRANCH: + steps.append( + ("Pushing", "docker push {0}/{1}".format(REGISTRY_URL, fname))) else: print("Skiping push...") @@ -45,8 +48,10 @@ def main(): for step, cmd in steps: print("{} {} '{}'".format(progress, step, fname)) - child = sp.Popen( - cmd, shell=True, stdout=sys.stdout, stderr=sys.stderr) + child = sp.Popen(cmd, + shell=True, + stdout=sys.stdout, + stderr=sys.stderr) child.communicate()