Browse Source

Fix Travis PR testing to not overwrite the "master" that Travis creates with our "upstream master", and to also ignore commits with no content (like a Merge commit - there's no need to sign off on literally nothing)

Docker-DCO-1.0-Signed-off-by: Andrew Page <admwiggin@gmail.com> (github: tianon)
Tianon Gravi 11 years ago
parent
commit
7c4e5fbd46
2 changed files with 10 additions and 1 deletions
  1. 2 1
      .travis.yml
  2. 8 0
      hack/travis/dco.py

+ 2 - 1
.travis.yml

@@ -13,7 +13,8 @@ before_script:
   - sudo apt-get update -qq
   - sudo apt-get install -qq python-yaml
   - git remote add upstream git://github.com/dotcloud/docker.git
-  - git fetch upstream +refs/heads/master:refs/remotes/upstream/master
+  - git fetch --append --no-tags upstream refs/heads/master:refs/remotes/upstream/master
+# sometimes we have upstream master already as origin/master (PRs), but other times we don't, so let's just make sure we have a completely unambiguous way to specify "upstream master" from here out
 
 script:
   - hack/travis/dco.py

+ 8 - 0
hack/travis/dco.py

@@ -24,6 +24,14 @@ p = re.compile(r'^{0} ([^<]+) <([^<>@]+@[^<>]+)> \(github: (\S+)\)$'.format(re.e
 failed_commits = 0
 
 for commit in commits:
+	commit['stat'] = subprocess.check_output([
+		'git', 'log', '--format=format:', '--max-count=1',
+		'--name-status', commit['hash'], '--',
+	])
+	if commit['stat'] == '':
+		print 'Commit {0} has no actual changed content, skipping.'.format(commit['hash'])
+		continue
+	
 	m = p.search(commit['message'])
 	if not m:
 		print 'Commit {1} does not have a properly formatted "{0}" marker.'.format(DCO, commit['hash'])